On Sun, Jun 11, 2023 at 6:34 PM Leon Romanovsky <leon@xxxxxxxxxx> wrote: > > On Thu, Jun 01, 2023 at 04:10:34AM -0700, Selvin Xavier wrote: > > Query Function capabilities to enable advanced features. > > > > Signed-off-by: Selvin Xavier <selvin.xavier@xxxxxxxxxxxx> > > --- > > drivers/infiniband/hw/bnxt_re/main.c | 23 +++++++++++++++++++++++ > > 1 file changed, 23 insertions(+) > > > > diff --git a/drivers/infiniband/hw/bnxt_re/main.c b/drivers/infiniband/hw/bnxt_re/main.c > > index 9cc652e..da99f69 100644 > > --- a/drivers/infiniband/hw/bnxt_re/main.c > > +++ b/drivers/infiniband/hw/bnxt_re/main.c > > @@ -83,6 +83,7 @@ static int bnxt_re_netdev_event(struct notifier_block *notifier, > > unsigned long event, void *ptr); > > static struct bnxt_re_dev *bnxt_re_from_netdev(struct net_device *netdev); > > static void bnxt_re_dev_uninit(struct bnxt_re_dev *rdev); > > +static int bnxt_re_hwrm_qcaps(struct bnxt_re_dev *rdev); > > > > static void bnxt_re_set_drv_mode(struct bnxt_re_dev *rdev, u8 mode) > > { > > @@ -91,6 +92,9 @@ static void bnxt_re_set_drv_mode(struct bnxt_re_dev *rdev, u8 mode) > > cctx = rdev->chip_ctx; > > cctx->modes.wqe_mode = bnxt_qplib_is_chip_gen_p5(rdev->chip_ctx) ? > > mode : BNXT_QPLIB_WQE_MODE_STATIC; > > + if (bnxt_re_hwrm_qcaps(rdev)) > > + dev_err(rdev_to_dev(rdev), > > + "Failed to query hwrm qcaps\n"); > > } > > > > static void bnxt_re_destroy_chip_ctx(struct bnxt_re_dev *rdev) > > @@ -340,6 +344,25 @@ static void bnxt_re_fill_fw_msg(struct bnxt_fw_msg *fw_msg, void *msg, > > fw_msg->timeout = timeout; > > } > > > > +/* Query function capabilities using common hwrm */ > > +int bnxt_re_hwrm_qcaps(struct bnxt_re_dev *rdev) > > +{ > > + struct bnxt_en_dev *en_dev = rdev->en_dev; > > + struct hwrm_func_qcaps_output resp = {0}; > > + struct hwrm_func_qcaps_input req = {0}; > > There is no need in 0 here, just use {} > > > + struct bnxt_qplib_chip_ctx *cctx; > > + struct bnxt_fw_msg fw_msg; > > Initialize it to zero from the beginning and remove memset() There are other functions that also uses bnxt_re_init_hwrm_hdr which uses the extra memset. I will add a separate patch to this series which removes the memset code and the extra parameters to bnxt_re_init_hwrm_hdr and prepare this patch on top of that. Will post a v5 soon. > > > + > > + cctx = rdev->chip_ctx; > > + memset(&fw_msg, 0, sizeof(fw_msg)); > > + bnxt_re_init_hwrm_hdr(rdev, (void *)&req, > > + HWRM_FUNC_QCAPS, -1, -1); > > All callers to bnxt_re_init_hwrm_hdr() provide "-1, -1" and rdev is not > used at all. -1 > > > + req.fid = cpu_to_le16(0xffff); > > + bnxt_re_fill_fw_msg(&fw_msg, (void *)&req, sizeof(req), (void *)&resp, > > + sizeof(resp), DFLT_HWRM_CMD_TIMEOUT); > > + return bnxt_send_msg(en_dev, &fw_msg); > > +} > > + > > static int bnxt_re_net_ring_free(struct bnxt_re_dev *rdev, > > u16 fw_ring_id, int type) > > { > > -- > > 2.5.5 > > > >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature