2017-03-08 12:48:36

by SF Markus Elfring

[permalink] [raw]
Subject: [PATCH 03/26] IB/ocrdma: Improve size determinations in ocrdma_mbx_get_dcbx_config()

From: Markus Elfring <[email protected]>
Date: Tue, 7 Mar 2017 19:09:20 +0100

Replace the specification of data structures by references for variables
as the parameter for the operator "sizeof" to make the corresponding size
determinations a bit safer according to the Linux coding style convention.

Signed-off-by: Markus Elfring <[email protected]>
---
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
index d5a3127b6df8..85bebb887c5c 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
@@ -2901,9 +2901,8 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
struct pci_dev *pdev = dev->nic_info.pdev;
struct ocrdma_mqe_sge *mqe_sge = cmd.u.nonemb_req.sge;

- memset(&cmd, 0, sizeof(struct ocrdma_mqe));
- cmd.hdr.pyld_len = max_t (u32, sizeof(struct ocrdma_get_dcbx_cfg_rsp),
- sizeof(struct ocrdma_get_dcbx_cfg_req));
+ memset(&cmd, 0, sizeof(cmd));
+ cmd.hdr.pyld_len = max_t(u32, sizeof(*rsp), sizeof(*req));
req = dma_alloc_coherent(&pdev->dev, cmd.hdr.pyld_len, &pa, GFP_KERNEL);
if (!req) {
status = -ENOMEM;
@@ -2915,8 +2914,7 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
mqe_sge->pa_lo = (u32) (pa & 0xFFFFFFFFUL);
mqe_sge->pa_hi = (u32) upper_32_bits(pa);
mqe_sge->len = cmd.hdr.pyld_len;
-
- memset(req, 0, sizeof(struct ocrdma_get_dcbx_cfg_req));
+ memset(req, 0, sizeof(*req));
ocrdma_init_mch(&req->hdr, OCRDMA_CMD_GET_DCBX_CONFIG,
OCRDMA_SUBSYS_DCBX, cmd.hdr.pyld_len);
req->param_type = ptype;
@@ -2926,9 +2924,8 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
goto mbx_err;

rsp = (struct ocrdma_get_dcbx_cfg_rsp *)req;
- ocrdma_le32_to_cpu(rsp, sizeof(struct ocrdma_get_dcbx_cfg_rsp));
- memcpy(dcbxcfg, &rsp->cfg, sizeof(struct ocrdma_dcbx_cfg));
-
+ ocrdma_le32_to_cpu(rsp, sizeof(*rsp));
+ memcpy(dcbxcfg, &rsp->cfg, sizeof(*dcbxcfg));
mbx_err:
dma_free_coherent(&pdev->dev, cmd.hdr.pyld_len, req, pa);
mem_err:
--
2.12.0


2017-03-08 14:54:39

by Devesh Sharma

[permalink] [raw]
Subject: Re: [PATCH 03/26] IB/ocrdma: Improve size determinations in ocrdma_mbx_get_dcbx_config()

Acked-By: Devesh Sharma <[email protected]>

On Wed, Mar 8, 2017 at 7:24 PM, Yuval Shaia <[email protected]> wrote:
> On Wed, Mar 08, 2017 at 01:45:43PM +0100, SF Markus Elfring wrote:
>> From: Markus Elfring <[email protected]>
>> Date: Tue, 7 Mar 2017 19:09:20 +0100
>>
>> Replace the specification of data structures by references for variables
>> as the parameter for the operator "sizeof" to make the corresponding size
>> determinations a bit safer according to the Linux coding style convention.
>>
>> Signed-off-by: Markus Elfring <[email protected]>
>> ---
>> drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 13 +++++--------
>> 1 file changed, 5 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
>> index d5a3127b6df8..85bebb887c5c 100644
>> --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
>> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
>> @@ -2901,9 +2901,8 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
>> struct pci_dev *pdev = dev->nic_info.pdev;
>> struct ocrdma_mqe_sge *mqe_sge = cmd.u.nonemb_req.sge;
>>
>> - memset(&cmd, 0, sizeof(struct ocrdma_mqe));
>> - cmd.hdr.pyld_len = max_t (u32, sizeof(struct ocrdma_get_dcbx_cfg_rsp),
>> - sizeof(struct ocrdma_get_dcbx_cfg_req));
>> + memset(&cmd, 0, sizeof(cmd));
>> + cmd.hdr.pyld_len = max_t(u32, sizeof(*rsp), sizeof(*req));
>> req = dma_alloc_coherent(&pdev->dev, cmd.hdr.pyld_len, &pa, GFP_KERNEL);
>> if (!req) {
>> status = -ENOMEM;
>> @@ -2915,8 +2914,7 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
>> mqe_sge->pa_lo = (u32) (pa & 0xFFFFFFFFUL);
>> mqe_sge->pa_hi = (u32) upper_32_bits(pa);
>> mqe_sge->len = cmd.hdr.pyld_len;
>> -
>> - memset(req, 0, sizeof(struct ocrdma_get_dcbx_cfg_req));
>> + memset(req, 0, sizeof(*req));
>> ocrdma_init_mch(&req->hdr, OCRDMA_CMD_GET_DCBX_CONFIG,
>> OCRDMA_SUBSYS_DCBX, cmd.hdr.pyld_len);
>> req->param_type = ptype;
>> @@ -2926,9 +2924,8 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
>> goto mbx_err;
>>
>> rsp = (struct ocrdma_get_dcbx_cfg_rsp *)req;
>> - ocrdma_le32_to_cpu(rsp, sizeof(struct ocrdma_get_dcbx_cfg_rsp));
>> - memcpy(dcbxcfg, &rsp->cfg, sizeof(struct ocrdma_dcbx_cfg));
>> -
>> + ocrdma_le32_to_cpu(rsp, sizeof(*rsp));
>> + memcpy(dcbxcfg, &rsp->cfg, sizeof(*dcbxcfg));
>> mbx_err:
>> dma_free_coherent(&pdev->dev, cmd.hdr.pyld_len, req, pa);
>> mem_err:
>
> Reviewed-by: Yuval Shaia <[email protected]>
>
>> --
>> 2.12.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html

2017-03-08 13:55:23

by Yuval Shaia

[permalink] [raw]
Subject: Re: [PATCH 03/26] IB/ocrdma: Improve size determinations in ocrdma_mbx_get_dcbx_config()

On Wed, Mar 08, 2017 at 01:45:43PM +0100, SF Markus Elfring wrote:
> From: Markus Elfring <[email protected]>
> Date: Tue, 7 Mar 2017 19:09:20 +0100
>
> Replace the specification of data structures by references for variables
> as the parameter for the operator "sizeof" to make the corresponding size
> determinations a bit safer according to the Linux coding style convention.
>
> Signed-off-by: Markus Elfring <[email protected]>
> ---
> drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> index d5a3127b6df8..85bebb887c5c 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_hw.c
> @@ -2901,9 +2901,8 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
> struct pci_dev *pdev = dev->nic_info.pdev;
> struct ocrdma_mqe_sge *mqe_sge = cmd.u.nonemb_req.sge;
>
> - memset(&cmd, 0, sizeof(struct ocrdma_mqe));
> - cmd.hdr.pyld_len = max_t (u32, sizeof(struct ocrdma_get_dcbx_cfg_rsp),
> - sizeof(struct ocrdma_get_dcbx_cfg_req));
> + memset(&cmd, 0, sizeof(cmd));
> + cmd.hdr.pyld_len = max_t(u32, sizeof(*rsp), sizeof(*req));
> req = dma_alloc_coherent(&pdev->dev, cmd.hdr.pyld_len, &pa, GFP_KERNEL);
> if (!req) {
> status = -ENOMEM;
> @@ -2915,8 +2914,7 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
> mqe_sge->pa_lo = (u32) (pa & 0xFFFFFFFFUL);
> mqe_sge->pa_hi = (u32) upper_32_bits(pa);
> mqe_sge->len = cmd.hdr.pyld_len;
> -
> - memset(req, 0, sizeof(struct ocrdma_get_dcbx_cfg_req));
> + memset(req, 0, sizeof(*req));
> ocrdma_init_mch(&req->hdr, OCRDMA_CMD_GET_DCBX_CONFIG,
> OCRDMA_SUBSYS_DCBX, cmd.hdr.pyld_len);
> req->param_type = ptype;
> @@ -2926,9 +2924,8 @@ static int ocrdma_mbx_get_dcbx_config(struct ocrdma_dev *dev, u32 ptype,
> goto mbx_err;
>
> rsp = (struct ocrdma_get_dcbx_cfg_rsp *)req;
> - ocrdma_le32_to_cpu(rsp, sizeof(struct ocrdma_get_dcbx_cfg_rsp));
> - memcpy(dcbxcfg, &rsp->cfg, sizeof(struct ocrdma_dcbx_cfg));
> -
> + ocrdma_le32_to_cpu(rsp, sizeof(*rsp));
> + memcpy(dcbxcfg, &rsp->cfg, sizeof(*dcbxcfg));
> mbx_err:
> dma_free_coherent(&pdev->dev, cmd.hdr.pyld_len, req, pa);
> mem_err:

Reviewed-by: Yuval Shaia <[email protected]>

> --
> 2.12.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html