[PATCH] xen/blkfront: fix bug in backported patch

Juergen Gross posted 1 patch 2 years, 4 months ago
Failed in applying to current master (apply log)
drivers/block/xen-blkfront.c | 4 ----
1 file changed, 4 deletions(-)
[PATCH] xen/blkfront: fix bug in backported patch
Posted by Juergen Gross 2 years, 4 months ago
The backport of commit 8f5a695d99000fc ("xen/blkfront: don't take local
copy of a request from the ring page") to stable 4.4 kernel introduced
a bug when adding the needed blkif_ring_get_request() function, as
info->ring.req_prod_pvt was incremented twice now.

Fix that be deleting the now superfluous increments after calling that
function.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 drivers/block/xen-blkfront.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 1e44b7880200..ae2c47e99c88 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -493,8 +493,6 @@ static int blkif_queue_discard_req(struct request *req)
 	else
 		ring_req->u.discard.flag = 0;
 
-	info->ring.req_prod_pvt++;
-
 	/* Copy the request to the ring page. */
 	*final_ring_req = *ring_req;
 	info->shadow[id].inflight = true;
@@ -711,8 +709,6 @@ static int blkif_queue_rw_req(struct request *req)
 	if (setup.segments)
 		kunmap_atomic(setup.segments);
 
-	info->ring.req_prod_pvt++;
-
 	/* Copy request(s) to the ring page. */
 	*final_ring_req = *ring_req;
 	info->shadow[id].inflight = true;
-- 
2.26.2


Re: [PATCH] xen/blkfront: fix bug in backported patch
Posted by Greg KH 2 years, 4 months ago
On Thu, Dec 23, 2021 at 11:53:08AM +0100, Juergen Gross wrote:
> The backport of commit 8f5a695d99000fc ("xen/blkfront: don't take local
> copy of a request from the ring page") to stable 4.4 kernel introduced
> a bug when adding the needed blkif_ring_get_request() function, as
> info->ring.req_prod_pvt was incremented twice now.
> 
> Fix that be deleting the now superfluous increments after calling that
> function.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  drivers/block/xen-blkfront.c | 4 ----
>  1 file changed, 4 deletions(-)

So this is only needed in 4.4.y?  No other backports were incorrect?

thanks,

greg k-h

Re: [PATCH] xen/blkfront: fix bug in backported patch
Posted by Juergen Gross 2 years, 4 months ago
On 23.12.21 11:57, Greg KH wrote:
> On Thu, Dec 23, 2021 at 11:53:08AM +0100, Juergen Gross wrote:
>> The backport of commit 8f5a695d99000fc ("xen/blkfront: don't take local
>> copy of a request from the ring page") to stable 4.4 kernel introduced
>> a bug when adding the needed blkif_ring_get_request() function, as
>> info->ring.req_prod_pvt was incremented twice now.
>>
>> Fix that be deleting the now superfluous increments after calling that
>> function.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>   drivers/block/xen-blkfront.c | 4 ----
>>   1 file changed, 4 deletions(-)
> 
> So this is only needed in 4.4.y?  No other backports were incorrect?

Yes. 4.4 only.


Juergen
Patch "xen/blkfront: fix bug in backported patch" has been added to the 4.4-stable tree
Posted by gregkh@linuxfoundation.org 2 years, 4 months ago

This is a note to let you know that I've just added the patch titled

    xen/blkfront: fix bug in backported patch

to the 4.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     xen-blkfront-fix-bug-in-backported-patch.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


From jgross@suse.com  Mon Dec 27 13:38:43 2021
From: Juergen Gross <jgross@suse.com>
Date: Thu, 23 Dec 2021 11:53:08 +0100
Subject: xen/blkfront: fix bug in backported patch
To: stable@vger.kernel.org
Cc: xen-devel@lists.xenproject.org, Juergen Gross <jgross@suse.com>
Message-ID: <20211223105308.17077-1-jgross@suse.com>

From: Juergen Gross <jgross@suse.com>

The backport of commit 8f5a695d99000fc ("xen/blkfront: don't take local
copy of a request from the ring page") to stable 4.4 kernel introduced
a bug when adding the needed blkif_ring_get_request() function, as
info->ring.req_prod_pvt was incremented twice now.

Fix that be deleting the now superfluous increments after calling that
function.

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/block/xen-blkfront.c |    4 ----
 1 file changed, 4 deletions(-)

--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -493,8 +493,6 @@ static int blkif_queue_discard_req(struc
 	else
 		ring_req->u.discard.flag = 0;
 
-	info->ring.req_prod_pvt++;
-
 	/* Copy the request to the ring page. */
 	*final_ring_req = *ring_req;
 	info->shadow[id].inflight = true;
@@ -711,8 +709,6 @@ static int blkif_queue_rw_req(struct req
 	if (setup.segments)
 		kunmap_atomic(setup.segments);
 
-	info->ring.req_prod_pvt++;
-
 	/* Copy request(s) to the ring page. */
 	*final_ring_req = *ring_req;
 	info->shadow[id].inflight = true;


Patches currently in stable-queue which might be from jgross@suse.com are

queue-4.4/xen-blkfront-fix-bug-in-backported-patch.patch