forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/infiniband/hw/qib/qib_mad.c
....@@ -433,7 +433,7 @@
433433 /* Bad mkey not a violation below level 2 */
434434 if (ibp->rvp.mkeyprot < 2)
435435 break;
436
- /* fall through */
436
+ fallthrough;
437437 case IB_MGMT_METHOD_SET:
438438 case IB_MGMT_METHOD_TRAP_REPRESS:
439439 if (ibp->rvp.mkey_violations != 0xFFFF)
....@@ -828,7 +828,7 @@
828828 case IB_PORT_NOP:
829829 if (lstate == 0)
830830 break;
831
- /* FALLTHROUGH */
831
+ fallthrough;
832832 case IB_PORT_DOWN:
833833 if (lstate == 0)
834834 lstate = QIB_IB_LINKDOWN_ONLY;
....@@ -1928,7 +1928,7 @@
19281928 ret = IB_MAD_RESULT_SUCCESS;
19291929 goto bail;
19301930 }
1931
- /* FALLTHROUGH */
1931
+ fallthrough;
19321932 default:
19331933 smp->status |= IB_SMP_UNSUP_METH_ATTR;
19341934 ret = reply(smp);
....@@ -1962,7 +1962,7 @@
19621962 ret = IB_MAD_RESULT_SUCCESS;
19631963 goto bail;
19641964 }
1965
- /* FALLTHROUGH */
1965
+ fallthrough;
19661966 default:
19671967 smp->status |= IB_SMP_UNSUP_METH_ATTR;
19681968 ret = reply(smp);
....@@ -2098,8 +2098,6 @@
20982098 struct ib_cc_classportinfo_attr *p =
20992099 (struct ib_cc_classportinfo_attr *)ccp->mgmt_data;
21002100
2101
- memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data));
2102
-
21032101 p->base_version = 1;
21042102 p->class_version = 1;
21052103 p->cap_mask = 0;
....@@ -2120,8 +2118,6 @@
21202118 struct qib_ibport *ibp = to_iport(ibdev, port);
21212119 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
21222120
2123
- memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data));
2124
-
21252121 p->congestion_info = 0;
21262122 p->control_table_cap = ppd->cc_max_table_entries;
21272123
....@@ -2137,8 +2133,6 @@
21372133 struct qib_ibport *ibp = to_iport(ibdev, port);
21382134 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
21392135 struct ib_cc_congestion_entry_shadow *entries;
2140
-
2141
- memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data));
21422136
21432137 spin_lock(&ppd->cc_shadow_lock);
21442138
....@@ -2175,8 +2169,6 @@
21752169 /* Is the table index more than what is supported? */
21762170 if (cct_block_index > IB_CC_TABLE_CAP_DEFAULT - 1)
21772171 goto bail;
2178
-
2179
- memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data));
21802172
21812173 spin_lock(&ppd->cc_shadow_lock);
21822174
....@@ -2296,92 +2288,55 @@
22962288 return reply_failure((struct ib_smp *) ccp);
22972289 }
22982290
2299
-static int check_cc_key(struct qib_ibport *ibp,
2300
- struct ib_cc_mad *ccp, int mad_flags)
2301
-{
2302
- return 0;
2303
-}
2304
-
23052291 static int process_cc(struct ib_device *ibdev, int mad_flags,
23062292 u8 port, const struct ib_mad *in_mad,
23072293 struct ib_mad *out_mad)
23082294 {
23092295 struct ib_cc_mad *ccp = (struct ib_cc_mad *)out_mad;
2310
- struct qib_ibport *ibp = to_iport(ibdev, port);
2311
- int ret;
2312
-
23132296 *out_mad = *in_mad;
23142297
23152298 if (ccp->class_version != 2) {
23162299 ccp->status |= IB_SMP_UNSUP_VERSION;
2317
- ret = reply((struct ib_smp *)ccp);
2318
- goto bail;
2300
+ return reply((struct ib_smp *)ccp);
23192301 }
2320
-
2321
- ret = check_cc_key(ibp, ccp, mad_flags);
2322
- if (ret)
2323
- goto bail;
23242302
23252303 switch (ccp->method) {
23262304 case IB_MGMT_METHOD_GET:
23272305 switch (ccp->attr_id) {
23282306 case IB_CC_ATTR_CLASSPORTINFO:
2329
- ret = cc_get_classportinfo(ccp, ibdev);
2330
- goto bail;
2331
-
2307
+ return cc_get_classportinfo(ccp, ibdev);
23322308 case IB_CC_ATTR_CONGESTION_INFO:
2333
- ret = cc_get_congestion_info(ccp, ibdev, port);
2334
- goto bail;
2335
-
2309
+ return cc_get_congestion_info(ccp, ibdev, port);
23362310 case IB_CC_ATTR_CA_CONGESTION_SETTING:
2337
- ret = cc_get_congestion_setting(ccp, ibdev, port);
2338
- goto bail;
2339
-
2311
+ return cc_get_congestion_setting(ccp, ibdev, port);
23402312 case IB_CC_ATTR_CONGESTION_CONTROL_TABLE:
2341
- ret = cc_get_congestion_control_table(ccp, ibdev, port);
2342
- goto bail;
2343
-
2344
- /* FALLTHROUGH */
2313
+ return cc_get_congestion_control_table(ccp, ibdev, port);
23452314 default:
23462315 ccp->status |= IB_SMP_UNSUP_METH_ATTR;
2347
- ret = reply((struct ib_smp *) ccp);
2348
- goto bail;
2316
+ return reply((struct ib_smp *) ccp);
23492317 }
2350
-
23512318 case IB_MGMT_METHOD_SET:
23522319 switch (ccp->attr_id) {
23532320 case IB_CC_ATTR_CA_CONGESTION_SETTING:
2354
- ret = cc_set_congestion_setting(ccp, ibdev, port);
2355
- goto bail;
2356
-
2321
+ return cc_set_congestion_setting(ccp, ibdev, port);
23572322 case IB_CC_ATTR_CONGESTION_CONTROL_TABLE:
2358
- ret = cc_set_congestion_control_table(ccp, ibdev, port);
2359
- goto bail;
2360
-
2361
- /* FALLTHROUGH */
2323
+ return cc_set_congestion_control_table(ccp, ibdev, port);
23622324 default:
23632325 ccp->status |= IB_SMP_UNSUP_METH_ATTR;
2364
- ret = reply((struct ib_smp *) ccp);
2365
- goto bail;
2326
+ return reply((struct ib_smp *) ccp);
23662327 }
2367
-
23682328 case IB_MGMT_METHOD_GET_RESP:
23692329 /*
23702330 * The ib_mad module will call us to process responses
23712331 * before checking for other consumers.
23722332 * Just tell the caller to process it normally.
23732333 */
2374
- ret = IB_MAD_RESULT_SUCCESS;
2375
- goto bail;
2376
-
2377
- case IB_MGMT_METHOD_TRAP:
2378
- default:
2379
- ccp->status |= IB_SMP_UNSUP_METHOD;
2380
- ret = reply((struct ib_smp *) ccp);
2334
+ return IB_MAD_RESULT_SUCCESS;
23812335 }
23822336
2383
-bail:
2384
- return ret;
2337
+ /* method is unsupported */
2338
+ ccp->status |= IB_SMP_UNSUP_METHOD;
2339
+ return reply((struct ib_smp *) ccp);
23852340 }
23862341
23872342 /**
....@@ -2405,28 +2360,21 @@
24052360 */
24062361 int qib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port,
24072362 const struct ib_wc *in_wc, const struct ib_grh *in_grh,
2408
- const struct ib_mad_hdr *in, size_t in_mad_size,
2409
- struct ib_mad_hdr *out, size_t *out_mad_size,
2410
- u16 *out_mad_pkey_index)
2363
+ const struct ib_mad *in, struct ib_mad *out,
2364
+ size_t *out_mad_size, u16 *out_mad_pkey_index)
24112365 {
24122366 int ret;
24132367 struct qib_ibport *ibp = to_iport(ibdev, port);
24142368 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
2415
- const struct ib_mad *in_mad = (const struct ib_mad *)in;
2416
- struct ib_mad *out_mad = (struct ib_mad *)out;
24172369
2418
- if (WARN_ON_ONCE(in_mad_size != sizeof(*in_mad) ||
2419
- *out_mad_size != sizeof(*out_mad)))
2420
- return IB_MAD_RESULT_FAILURE;
2421
-
2422
- switch (in_mad->mad_hdr.mgmt_class) {
2370
+ switch (in->mad_hdr.mgmt_class) {
24232371 case IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE:
24242372 case IB_MGMT_CLASS_SUBN_LID_ROUTED:
2425
- ret = process_subn(ibdev, mad_flags, port, in_mad, out_mad);
2373
+ ret = process_subn(ibdev, mad_flags, port, in, out);
24262374 goto bail;
24272375
24282376 case IB_MGMT_CLASS_PERF_MGMT:
2429
- ret = process_perf(ibdev, port, in_mad, out_mad);
2377
+ ret = process_perf(ibdev, port, in, out);
24302378 goto bail;
24312379
24322380 case IB_MGMT_CLASS_CONG_MGMT:
....@@ -2435,7 +2383,7 @@
24352383 ret = IB_MAD_RESULT_SUCCESS;
24362384 goto bail;
24372385 }
2438
- ret = process_cc(ibdev, mad_flags, port, in_mad, out_mad);
2386
+ ret = process_cc(ibdev, mad_flags, port, in, out);
24392387 goto bail;
24402388
24412389 default:
....@@ -2494,5 +2442,6 @@
24942442 del_timer_sync(&dd->pport[port_idx].cong_stats.timer);
24952443
24962444 if (dd->pport[port_idx].ibport_data.smi_ah)
2497
- rdma_destroy_ah(&dd->pport[port_idx].ibport_data.smi_ah->ibah);
2445
+ rdma_destroy_ah(&dd->pport[port_idx].ibport_data.smi_ah->ibah,
2446
+ RDMA_DESTROY_AH_SLEEPABLE);
24982447 }