Skip to content

Commit 18e7e3e

Browse files
Kamalheibjgunthorpe
authored andcommitted
RDMA/bnxt_re: Fix reporting active_{speed,width} attributes
After commit 6d75814 ("RDMA/bnxt_re: Use auxiliary driver interface") the active_{speed, width} attributes are reported incorrectly, This is happening because ib_get_eth_speed() is called only once from bnxt_re_ib_init() - Fix this issue by calling ib_get_eth_speed() from bnxt_re_query_port(). Fixes: 6d75814 ("RDMA/bnxt_re: Use auxiliary driver interface") Link: https://lore.kernel.org/r/20230529153525.87254-1-kheib@redhat.com Signed-off-by: Kamal Heib <kheib@redhat.com> Acked-by: Selvin Xavier <selvin.xavier@broadcom.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent b006834 commit 18e7e3e

3 files changed

Lines changed: 4 additions & 7 deletions

File tree

drivers/infiniband/hw/bnxt_re/bnxt_re.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,6 @@ struct bnxt_re_dev {
135135

136136
struct delayed_work worker;
137137
u8 cur_prio_map;
138-
u16 active_speed;
139-
u8 active_width;
140138

141139
/* FP Notification Queue (CQ & SRQ) */
142140
struct tasklet_struct nq_task;

drivers/infiniband/hw/bnxt_re/ib_verbs.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ int bnxt_re_query_port(struct ib_device *ibdev, u32 port_num,
199199
{
200200
struct bnxt_re_dev *rdev = to_bnxt_re_dev(ibdev, ibdev);
201201
struct bnxt_qplib_dev_attr *dev_attr = &rdev->dev_attr;
202+
int rc;
202203

203204
memset(port_attr, 0, sizeof(*port_attr));
204205

@@ -228,10 +229,10 @@ int bnxt_re_query_port(struct ib_device *ibdev, u32 port_num,
228229
port_attr->sm_sl = 0;
229230
port_attr->subnet_timeout = 0;
230231
port_attr->init_type_reply = 0;
231-
port_attr->active_speed = rdev->active_speed;
232-
port_attr->active_width = rdev->active_width;
232+
rc = ib_get_eth_speed(&rdev->ibdev, port_num, &port_attr->active_speed,
233+
&port_attr->active_width);
233234

234-
return 0;
235+
return rc;
235236
}
236237

237238
int bnxt_re_get_port_immutable(struct ib_device *ibdev, u32 port_num,

drivers/infiniband/hw/bnxt_re/main.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,8 +1077,6 @@ static int bnxt_re_ib_init(struct bnxt_re_dev *rdev)
10771077
return rc;
10781078
}
10791079
dev_info(rdev_to_dev(rdev), "Device registered with IB successfully");
1080-
ib_get_eth_speed(&rdev->ibdev, 1, &rdev->active_speed,
1081-
&rdev->active_width);
10821080
set_bit(BNXT_RE_FLAG_ISSUE_ROCE_STATS, &rdev->flags);
10831081

10841082
event = netif_running(rdev->netdev) && netif_carrier_ok(rdev->netdev) ?

0 commit comments

Comments
 (0)