[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH Linux-2.6.18] scsifront: avoid aquiring same lock twice if ring is full
On 01/13/2015 07:53 PM, Pasi Kärkkäinen wrote: 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 ? No, especially this part of the code was reorganized and doesn't have that issue. Juergen Thanks, -- PasiSigned-off-by: Juergen Gross <jgross@xxxxxxxx> --- 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@xxxxxxxxxxxxx http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |