There's no reason to request physically contiguous memory for those allocations.
Reported-by: Ian Jackson ian.jackson@citrix.com Signed-off-by: Roger Pau Monné roger.pau@citrix.com --- Cc: Boris Ostrovsky boris.ostrovsky@oracle.com Cc: Juergen Gross jgross@suse.com Cc: Stefano Stabellini sstabellini@kernel.org Cc: Konrad Rzeszutek Wilk konrad.wilk@oracle.com Cc: Jens Axboe axboe@kernel.dk Cc: xen-devel@lists.xenproject.org Cc: linux-block@vger.kernel.org Cc: stable@vger.kernel.org --- drivers/block/xen-blkfront.c | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index d43a5677ccbc..a74d03913822 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -1310,11 +1310,11 @@ static void blkif_free_ring(struct blkfront_ring_info *rinfo) }
free_shadow: - kfree(rinfo->shadow[i].grants_used); + kvfree(rinfo->shadow[i].grants_used); rinfo->shadow[i].grants_used = NULL; - kfree(rinfo->shadow[i].indirect_grants); + kvfree(rinfo->shadow[i].indirect_grants); rinfo->shadow[i].indirect_grants = NULL; - kfree(rinfo->shadow[i].sg); + kvfree(rinfo->shadow[i].sg); rinfo->shadow[i].sg = NULL; }
@@ -1353,7 +1353,7 @@ static void blkif_free(struct blkfront_info *info, int suspend) for (i = 0; i < info->nr_rings; i++) blkif_free_ring(&info->rinfo[i]);
- kfree(info->rinfo); + kvfree(info->rinfo); info->rinfo = NULL; info->nr_rings = 0; } @@ -1914,9 +1914,9 @@ static int negotiate_mq(struct blkfront_info *info) if (!info->nr_rings) info->nr_rings = 1;
- info->rinfo = kcalloc(info->nr_rings, - sizeof(struct blkfront_ring_info), - GFP_KERNEL); + info->rinfo = kvcalloc(info->nr_rings, + sizeof(struct blkfront_ring_info), + GFP_KERNEL); if (!info->rinfo) { xenbus_dev_fatal(info->xbdev, -ENOMEM, "allocating ring_info structure"); info->nr_rings = 0; @@ -2232,17 +2232,17 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
for (i = 0; i < BLK_RING_SIZE(info); i++) { rinfo->shadow[i].grants_used = - kcalloc(grants, - sizeof(rinfo->shadow[i].grants_used[0]), - GFP_NOIO); - rinfo->shadow[i].sg = kcalloc(psegs, - sizeof(rinfo->shadow[i].sg[0]), - GFP_NOIO); + kvcalloc(grants, + sizeof(rinfo->shadow[i].grants_used[0]), + GFP_NOIO); + rinfo->shadow[i].sg = kvcalloc(psegs, + sizeof(rinfo->shadow[i].sg[0]), + GFP_NOIO); if (info->max_indirect_segments) rinfo->shadow[i].indirect_grants = - kcalloc(INDIRECT_GREFS(grants), - sizeof(rinfo->shadow[i].indirect_grants[0]), - GFP_NOIO); + kvcalloc(INDIRECT_GREFS(grants), + sizeof(rinfo->shadow[i].indirect_grants[0]), + GFP_NOIO); if ((rinfo->shadow[i].grants_used == NULL) || (rinfo->shadow[i].sg == NULL) || (info->max_indirect_segments && @@ -2256,11 +2256,11 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
out_of_memory: for (i = 0; i < BLK_RING_SIZE(info); i++) { - kfree(rinfo->shadow[i].grants_used); + kvfree(rinfo->shadow[i].grants_used); rinfo->shadow[i].grants_used = NULL; - kfree(rinfo->shadow[i].sg); + kvfree(rinfo->shadow[i].sg); rinfo->shadow[i].sg = NULL; - kfree(rinfo->shadow[i].indirect_grants); + kvfree(rinfo->shadow[i].indirect_grants); rinfo->shadow[i].indirect_grants = NULL; } if (!list_empty(&rinfo->indirect_pages)) {
On Fri, May 03, 2019 at 05:04:01PM +0200, Roger Pau Monne wrote:
There's no reason to request physically contiguous memory for those allocations.
Reported-by: Ian Jackson ian.jackson@citrix.com Signed-off-by: Roger Pau Monné roger.pau@citrix.com
You really don't want this scissor line here, git will trim all your message content below it.
-- Thanks, Sasha
Cc: Boris Ostrovsky boris.ostrovsky@oracle.com Cc: Juergen Gross jgross@suse.com Cc: Stefano Stabellini sstabellini@kernel.org Cc: Konrad Rzeszutek Wilk konrad.wilk@oracle.com Cc: Jens Axboe axboe@kernel.dk Cc: xen-devel@lists.xenproject.org Cc: linux-block@vger.kernel.org Cc: stable@vger.kernel.org
On 03/05/2019 17:04, Roger Pau Monne wrote:
There's no reason to request physically contiguous memory for those allocations.
Reported-by: Ian Jackson ian.jackson@citrix.com Signed-off-by: Roger Pau Monné roger.pau@citrix.com
Reviewed-by: Juergen Gross jgross@suse.com
Juergen
On 06/05/2019 10:11, Juergen Gross wrote:
On 03/05/2019 17:04, Roger Pau Monne wrote:
There's no reason to request physically contiguous memory for those allocations.
Reported-by: Ian Jackson ian.jackson@citrix.com Signed-off-by: Roger Pau Monné roger.pau@citrix.com
Reviewed-by: Juergen Gross jgross@suse.com
Jens, are you going to tkae this patch or should I carry it through the Xen tree?
Juergen
On May 31, 2019 10:41:16 AM EDT, Juergen Gross jgross@suse.com wrote:
On 06/05/2019 10:11, Juergen Gross wrote:
On 03/05/2019 17:04, Roger Pau Monne wrote:
There's no reason to request physically contiguous memory for those allocations.
Reported-by: Ian Jackson ian.jackson@citrix.com Signed-off-by: Roger Pau Monné roger.pau@citrix.com
Reviewed-by: Juergen Gross jgross@suse.com
Jens, are you going to tkae this patch or should I carry it through the Xen tree?
Usually I ended up picking them (and then asking Jens to git pull into his branch) but if you want to handle them that would be much easier!
(And if so, please add Acked-by on them from me).
Juergen
On 5/31/19 10:44 AM, Konrad Rzeszutek Wilk wrote:
On May 31, 2019 10:41:16 AM EDT, Juergen Gross jgross@suse.com wrote:
On 06/05/2019 10:11, Juergen Gross wrote:
On 03/05/2019 17:04, Roger Pau Monne wrote:
There's no reason to request physically contiguous memory for those allocations.
Reported-by: Ian Jackson ian.jackson@citrix.com Signed-off-by: Roger Pau Monné roger.pau@citrix.com
Reviewed-by: Juergen Gross jgross@suse.com
Jens, are you going to tkae this patch or should I carry it through the Xen tree?
Usually I ended up picking them (and then asking Jens to git pull into his branch) but if you want to handle them that would be much easier!
(And if so, please add Acked-by on them from me).
Applied to for-linus-5.2b
-boris
linux-stable-mirror@lists.linaro.org