hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/infiniband/hw/hfi1/mad.c
....@@ -305,7 +305,7 @@
305305 rcu_read_lock();
306306 qp0 = rcu_dereference(ibp->rvp.qp[0]);
307307 if (qp0)
308
- ah = rdma_create_ah(qp0->ibqp.pd, &attr);
308
+ ah = rdma_create_ah(qp0->ibqp.pd, &attr, 0);
309309 rcu_read_unlock();
310310 return ah;
311311 }
....@@ -721,7 +721,7 @@
721721 /* Bad mkey not a violation below level 2 */
722722 if (ibp->rvp.mkeyprot < 2)
723723 break;
724
- /* fall through */
724
+ fallthrough;
725725 case IB_MGMT_METHOD_SET:
726726 case IB_MGMT_METHOD_TRAP_REPRESS:
727727 if (ibp->rvp.mkey_violations != 0xFFFF)
....@@ -1272,7 +1272,7 @@
12721272 case IB_PORT_NOP:
12731273 if (phys_state == IB_PORTPHYSSTATE_NOP)
12741274 break;
1275
- /* FALLTHROUGH */
1275
+ fallthrough;
12761276 case IB_PORT_DOWN:
12771277 if (phys_state == IB_PORTPHYSSTATE_NOP) {
12781278 link_state = HLS_DN_DOWNDEF;
....@@ -2300,7 +2300,6 @@
23002300 * can be changed from the default values
23012301 */
23022302 case OPA_VLARB_PREEMPT_ELEMENTS:
2303
- /* FALLTHROUGH */
23042303 case OPA_VLARB_PREEMPT_MATRIX:
23052304 smp->status |= IB_SMP_UNSUP_METH_ATTR;
23062305 break;
....@@ -2381,7 +2380,7 @@
23812380 __be64 port_vl_rcv_bubble;
23822381 __be64 port_vl_mark_fecn;
23832382 __be64 port_vl_xmit_discards;
2384
- } vls[0]; /* real array size defined by # bits set in vl_select_mask */
2383
+ } vls[]; /* real array size defined by # bits set in vl_select_mask */
23852384 };
23862385
23872386 enum counter_selects {
....@@ -2423,7 +2422,7 @@
24232422 __be16 attr_id;
24242423 __be16 err_reqlength; /* 1 bit, 8 res, 7 bit */
24252424 __be32 attr_mod;
2426
- u8 data[0];
2425
+ u8 data[];
24272426 };
24282427
24292428 #define MSK_LLI 0x000000f0
....@@ -2743,8 +2742,7 @@
27432742 u16 link_width;
27442743 u16 link_speed;
27452744
2746
- response_data_size = sizeof(struct opa_port_status_rsp) +
2747
- num_vls * sizeof(struct _vls_pctrs);
2745
+ response_data_size = struct_size(rsp, vls, num_vls);
27482746 if (response_data_size > sizeof(pmp->data)) {
27492747 pmp->mad_hdr.status |= OPA_PM_STATUS_REQUEST_TOO_LARGE;
27502748 return reply((struct ib_mad_hdr *)pmp);
....@@ -3010,8 +3008,7 @@
30103008 }
30113009
30123010 /* Sanity check */
3013
- response_data_size = sizeof(struct opa_port_data_counters_msg) +
3014
- num_vls * sizeof(struct _vls_dctrs);
3011
+ response_data_size = struct_size(req, port[0].vls, num_vls);
30153012
30163013 if (response_data_size > sizeof(pmp->data)) {
30173014 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
....@@ -3227,8 +3224,7 @@
32273224 return reply((struct ib_mad_hdr *)pmp);
32283225 }
32293226
3230
- response_data_size = sizeof(struct opa_port_error_counters64_msg) +
3231
- num_vls * sizeof(struct _vls_ectrs);
3227
+ response_data_size = struct_size(req, port[0].vls, num_vls);
32323228
32333229 if (response_data_size > sizeof(pmp->data)) {
32343230 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
....@@ -4173,7 +4169,7 @@
41734169 return IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED;
41744170 if (ibp->rvp.port_cap_flags & IB_PORT_SM)
41754171 return IB_MAD_RESULT_SUCCESS;
4176
- /* FALLTHROUGH */
4172
+ fallthrough;
41774173 default:
41784174 smp->status |= IB_SMP_UNSUP_METH_ATTR;
41794175 ret = reply((struct ib_mad_hdr *)smp);
....@@ -4243,7 +4239,7 @@
42434239 return IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED;
42444240 if (ibp->rvp.port_cap_flags & IB_PORT_SM)
42454241 return IB_MAD_RESULT_SUCCESS;
4246
- /* FALLTHROUGH */
4242
+ fallthrough;
42474243 default:
42484244 smp->status |= IB_SMP_UNSUP_METH_ATTR;
42494245 ret = reply((struct ib_mad_hdr *)smp);
....@@ -4918,16 +4914,11 @@
49184914 */
49194915 int hfi1_process_mad(struct ib_device *ibdev, int mad_flags, u8 port,
49204916 const struct ib_wc *in_wc, const struct ib_grh *in_grh,
4921
- const struct ib_mad_hdr *in_mad, size_t in_mad_size,
4922
- struct ib_mad_hdr *out_mad, size_t *out_mad_size,
4923
- u16 *out_mad_pkey_index)
4917
+ const struct ib_mad *in_mad, struct ib_mad *out_mad,
4918
+ size_t *out_mad_size, u16 *out_mad_pkey_index)
49244919 {
4925
- switch (in_mad->base_version) {
4920
+ switch (in_mad->mad_hdr.base_version) {
49264921 case OPA_MGMT_BASE_VERSION:
4927
- if (unlikely(in_mad_size != sizeof(struct opa_mad))) {
4928
- dev_err(ibdev->dev.parent, "invalid in_mad_size\n");
4929
- return IB_MAD_RESULT_FAILURE;
4930
- }
49314922 return hfi1_process_opa_mad(ibdev, mad_flags, port,
49324923 in_wc, in_grh,
49334924 (struct opa_mad *)in_mad,
....@@ -4935,10 +4926,8 @@
49354926 out_mad_size,
49364927 out_mad_pkey_index);
49374928 case IB_MGMT_BASE_VERSION:
4938
- return hfi1_process_ib_mad(ibdev, mad_flags, port,
4939
- in_wc, in_grh,
4940
- (const struct ib_mad *)in_mad,
4941
- (struct ib_mad *)out_mad);
4929
+ return hfi1_process_ib_mad(ibdev, mad_flags, port, in_wc,
4930
+ in_grh, in_mad, out_mad);
49424931 default:
49434932 break;
49444933 }