Hi,

On Tue, Jan 13, 2015 at 05:22:58PM +0100, Juergen Gross wrote:
> The locking in scsifront_dev_reset_handler() is obviously wrong. In
> case of a full ring the host lock is aquired twice.
> 
> Fixing this issue enables to get rid of the endless fo loop with an
> explicit break statement.
> 

Is this patch needed in upstream Linux kernel aswell, now that Xen PVSCSI 
drivers are in upstream Linux ?


Thanks,

-- Pasi


> Signed-off-by: Juergen Gross <jgr...@suse.com>
> ---
> 
> diff -r 078f1bb69ea5 drivers/xen/scsifront/scsifront.c
> --- a/drivers/xen/scsifront/scsifront.c       Wed Dec 10 10:22:39 2014 +0100
> +++ b/drivers/xen/scsifront/scsifront.c       Tue Jan 13 14:32:33 2015 +0100
> @@ -447,12 +447,10 @@ static int scsifront_dev_reset_handler(s
>       uint16_t rqid;
>       int err = 0;
>  
> -     for (;;) {
>  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
> -             spin_lock_irq(host->host_lock);
> +     spin_lock_irq(host->host_lock);
>  #endif
> -             if (!RING_FULL(&info->ring))
> -                     break;
> +     while (RING_FULL(&info->ring)) {
>               if (err) {
>  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
>                       spin_unlock_irq(host->host_lock);
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to