Re: [PATCH] sbitmap: Fix sbitmap_put()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 15, 2021 at 08:54:20PM -0700, Bart Van Assche wrote:
> This patch fixes the following kernel warning:
> 
> BUG: using smp_processor_id() in preemptible [00000000] code: scsi_eh_0/152
> caller is debug_smp_processor_id+0x17/0x20
> CPU: 1 PID: 152 Comm: scsi_eh_0 Tainted: G        W         5.12.0-rc1-dbg+ #6
> Call Trace:
>  show_stack+0x52/0x58
>  dump_stack+0xaf/0xf3
>  check_preemption_disabled+0xce/0xd0
>  debug_smp_processor_id+0x17/0x20
>  scsi_device_unbusy+0x13a/0x1c0 [scsi_mod]
>  scsi_finish_command+0x4d/0x290 [scsi_mod]
>  scsi_eh_flush_done_q+0x1e7/0x280 [scsi_mod]
>  ata_scsi_port_error_handler+0x592/0x750 [libata]
>  ata_scsi_error+0x1a0/0x1f0 [libata]
>  scsi_error_handler+0x19e/0x330 [scsi_mod]
>  kthread+0x222/0x250
>  ret_from_fork+0x1f/0x30
> 
> Cc: Ming Lei <ming.lei@xxxxxxxxxx>
> Cc: Hannes Reinecke <hare@xxxxxxx>
> Cc: Omar Sandoval <osandov@xxxxxx>
> Fixes: c548e62bcf6a ("scsi: sbitmap: Move allocation hint into sbitmap")
> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>
> ---
>  include/linux/sbitmap.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/sbitmap.h b/include/linux/sbitmap.h
> index 3087e1f15fdd..2713e689ad66 100644
> --- a/include/linux/sbitmap.h
> +++ b/include/linux/sbitmap.h
> @@ -324,7 +324,7 @@ static inline void sbitmap_put(struct sbitmap *sb, unsigned int bitnr)
>  	sbitmap_deferred_clear_bit(sb, bitnr);
>  
>  	if (likely(sb->alloc_hint && !sb->round_robin && bitnr < sb->depth))
> -		*this_cpu_ptr(sb->alloc_hint) = bitnr;
> +		*raw_cpu_ptr(sb->alloc_hint) = bitnr;
>  }
>  
>  static inline int sbitmap_test_bit(struct sbitmap *sb, unsigned int bitnr)
> 

Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx>

-- 
Ming




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux