[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d77c0967-d879-14cc-bf75-c38ad8879b76@linux.com>
Date: Thu, 27 Aug 2020 18:13:13 +0300
From: Denis Efremov <efremov@...ux.com>
To: "Martin K. Petersen" <martin.petersen@...cle.com>,
"James E.J. Bottomley" <jejb@...ux.ibm.com>
Cc: linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org,
Joe Perches <joe@...ches.com>
Subject: Re: [PATCH v2] scsi: libcxgbi: use kvzalloc instead of opencoded
kzalloc/vzalloc
Ping?
On 8/1/20 4:31 PM, Denis Efremov wrote:
> Remove cxgbi_alloc_big_mem(), cxgbi_free_big_mem() functions
> and use kvzalloc/kvfree instead. __GFP_NOWARN added to kvzalloc()
> call because we already print a warning in case of allocation fail.
>
> Signed-off-by: Denis Efremov <efremov@...ux.com>
> ---
> drivers/scsi/cxgbi/libcxgbi.c | 8 ++++----
> drivers/scsi/cxgbi/libcxgbi.h | 16 ----------------
> 2 files changed, 4 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
> index 4bc794d2f51c..51f4d34da73f 100644
> --- a/drivers/scsi/cxgbi/libcxgbi.c
> +++ b/drivers/scsi/cxgbi/libcxgbi.c
> @@ -77,9 +77,9 @@ int cxgbi_device_portmap_create(struct cxgbi_device *cdev, unsigned int base,
> {
> struct cxgbi_ports_map *pmap = &cdev->pmap;
>
> - pmap->port_csk = cxgbi_alloc_big_mem(max_conn *
> - sizeof(struct cxgbi_sock *),
> - GFP_KERNEL);
> + pmap->port_csk = kvzalloc(array_size(max_conn,
> + sizeof(struct cxgbi_sock *)),
> + GFP_KERNEL | __GFP_NOWARN);
> if (!pmap->port_csk) {
> pr_warn("cdev 0x%p, portmap OOM %u.\n", cdev, max_conn);
> return -ENOMEM;
> @@ -124,7 +124,7 @@ static inline void cxgbi_device_destroy(struct cxgbi_device *cdev)
> if (cdev->cdev2ppm)
> cxgbi_ppm_release(cdev->cdev2ppm(cdev));
> if (cdev->pmap.max_connect)
> - cxgbi_free_big_mem(cdev->pmap.port_csk);
> + kvfree(cdev->pmap.port_csk);
> kfree(cdev);
> }
>
> diff --git a/drivers/scsi/cxgbi/libcxgbi.h b/drivers/scsi/cxgbi/libcxgbi.h
> index 84b96af52655..321426242be4 100644
> --- a/drivers/scsi/cxgbi/libcxgbi.h
> +++ b/drivers/scsi/cxgbi/libcxgbi.h
> @@ -537,22 +537,6 @@ struct cxgbi_task_data {
> #define iscsi_task_cxgbi_data(task) \
> ((task)->dd_data + sizeof(struct iscsi_tcp_task))
>
> -static inline void *cxgbi_alloc_big_mem(unsigned int size,
> - gfp_t gfp)
> -{
> - void *p = kzalloc(size, gfp | __GFP_NOWARN);
> -
> - if (!p)
> - p = vzalloc(size);
> -
> - return p;
> -}
> -
> -static inline void cxgbi_free_big_mem(void *addr)
> -{
> - kvfree(addr);
> -}
> -
> static inline void cxgbi_set_iscsi_ipv4(struct cxgbi_hba *chba, __be32 ipaddr)
> {
> if (chba->cdev->flags & CXGBI_FLAG_IPV4_SET)
>
Powered by blists - more mailing lists