| .. | .. |
|---|
| 433 | 433 | /* Bad mkey not a violation below level 2 */ |
|---|
| 434 | 434 | if (ibp->rvp.mkeyprot < 2) |
|---|
| 435 | 435 | break; |
|---|
| 436 | | - /* fall through */ |
|---|
| 436 | + fallthrough; |
|---|
| 437 | 437 | case IB_MGMT_METHOD_SET: |
|---|
| 438 | 438 | case IB_MGMT_METHOD_TRAP_REPRESS: |
|---|
| 439 | 439 | if (ibp->rvp.mkey_violations != 0xFFFF) |
|---|
| .. | .. |
|---|
| 828 | 828 | case IB_PORT_NOP: |
|---|
| 829 | 829 | if (lstate == 0) |
|---|
| 830 | 830 | break; |
|---|
| 831 | | - /* FALLTHROUGH */ |
|---|
| 831 | + fallthrough; |
|---|
| 832 | 832 | case IB_PORT_DOWN: |
|---|
| 833 | 833 | if (lstate == 0) |
|---|
| 834 | 834 | lstate = QIB_IB_LINKDOWN_ONLY; |
|---|
| .. | .. |
|---|
| 1928 | 1928 | ret = IB_MAD_RESULT_SUCCESS; |
|---|
| 1929 | 1929 | goto bail; |
|---|
| 1930 | 1930 | } |
|---|
| 1931 | | - /* FALLTHROUGH */ |
|---|
| 1931 | + fallthrough; |
|---|
| 1932 | 1932 | default: |
|---|
| 1933 | 1933 | smp->status |= IB_SMP_UNSUP_METH_ATTR; |
|---|
| 1934 | 1934 | ret = reply(smp); |
|---|
| .. | .. |
|---|
| 1962 | 1962 | ret = IB_MAD_RESULT_SUCCESS; |
|---|
| 1963 | 1963 | goto bail; |
|---|
| 1964 | 1964 | } |
|---|
| 1965 | | - /* FALLTHROUGH */ |
|---|
| 1965 | + fallthrough; |
|---|
| 1966 | 1966 | default: |
|---|
| 1967 | 1967 | smp->status |= IB_SMP_UNSUP_METH_ATTR; |
|---|
| 1968 | 1968 | ret = reply(smp); |
|---|
| .. | .. |
|---|
| 2098 | 2098 | struct ib_cc_classportinfo_attr *p = |
|---|
| 2099 | 2099 | (struct ib_cc_classportinfo_attr *)ccp->mgmt_data; |
|---|
| 2100 | 2100 | |
|---|
| 2101 | | - memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data)); |
|---|
| 2102 | | - |
|---|
| 2103 | 2101 | p->base_version = 1; |
|---|
| 2104 | 2102 | p->class_version = 1; |
|---|
| 2105 | 2103 | p->cap_mask = 0; |
|---|
| .. | .. |
|---|
| 2120 | 2118 | struct qib_ibport *ibp = to_iport(ibdev, port); |
|---|
| 2121 | 2119 | struct qib_pportdata *ppd = ppd_from_ibp(ibp); |
|---|
| 2122 | 2120 | |
|---|
| 2123 | | - memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data)); |
|---|
| 2124 | | - |
|---|
| 2125 | 2121 | p->congestion_info = 0; |
|---|
| 2126 | 2122 | p->control_table_cap = ppd->cc_max_table_entries; |
|---|
| 2127 | 2123 | |
|---|
| .. | .. |
|---|
| 2137 | 2133 | struct qib_ibport *ibp = to_iport(ibdev, port); |
|---|
| 2138 | 2134 | struct qib_pportdata *ppd = ppd_from_ibp(ibp); |
|---|
| 2139 | 2135 | struct ib_cc_congestion_entry_shadow *entries; |
|---|
| 2140 | | - |
|---|
| 2141 | | - memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data)); |
|---|
| 2142 | 2136 | |
|---|
| 2143 | 2137 | spin_lock(&ppd->cc_shadow_lock); |
|---|
| 2144 | 2138 | |
|---|
| .. | .. |
|---|
| 2175 | 2169 | /* Is the table index more than what is supported? */ |
|---|
| 2176 | 2170 | if (cct_block_index > IB_CC_TABLE_CAP_DEFAULT - 1) |
|---|
| 2177 | 2171 | goto bail; |
|---|
| 2178 | | - |
|---|
| 2179 | | - memset(ccp->mgmt_data, 0, sizeof(ccp->mgmt_data)); |
|---|
| 2180 | 2172 | |
|---|
| 2181 | 2173 | spin_lock(&ppd->cc_shadow_lock); |
|---|
| 2182 | 2174 | |
|---|
| .. | .. |
|---|
| 2296 | 2288 | return reply_failure((struct ib_smp *) ccp); |
|---|
| 2297 | 2289 | } |
|---|
| 2298 | 2290 | |
|---|
| 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 | | - |
|---|
| 2305 | 2291 | static int process_cc(struct ib_device *ibdev, int mad_flags, |
|---|
| 2306 | 2292 | u8 port, const struct ib_mad *in_mad, |
|---|
| 2307 | 2293 | struct ib_mad *out_mad) |
|---|
| 2308 | 2294 | { |
|---|
| 2309 | 2295 | struct ib_cc_mad *ccp = (struct ib_cc_mad *)out_mad; |
|---|
| 2310 | | - struct qib_ibport *ibp = to_iport(ibdev, port); |
|---|
| 2311 | | - int ret; |
|---|
| 2312 | | - |
|---|
| 2313 | 2296 | *out_mad = *in_mad; |
|---|
| 2314 | 2297 | |
|---|
| 2315 | 2298 | if (ccp->class_version != 2) { |
|---|
| 2316 | 2299 | ccp->status |= IB_SMP_UNSUP_VERSION; |
|---|
| 2317 | | - ret = reply((struct ib_smp *)ccp); |
|---|
| 2318 | | - goto bail; |
|---|
| 2300 | + return reply((struct ib_smp *)ccp); |
|---|
| 2319 | 2301 | } |
|---|
| 2320 | | - |
|---|
| 2321 | | - ret = check_cc_key(ibp, ccp, mad_flags); |
|---|
| 2322 | | - if (ret) |
|---|
| 2323 | | - goto bail; |
|---|
| 2324 | 2302 | |
|---|
| 2325 | 2303 | switch (ccp->method) { |
|---|
| 2326 | 2304 | case IB_MGMT_METHOD_GET: |
|---|
| 2327 | 2305 | switch (ccp->attr_id) { |
|---|
| 2328 | 2306 | case IB_CC_ATTR_CLASSPORTINFO: |
|---|
| 2329 | | - ret = cc_get_classportinfo(ccp, ibdev); |
|---|
| 2330 | | - goto bail; |
|---|
| 2331 | | - |
|---|
| 2307 | + return cc_get_classportinfo(ccp, ibdev); |
|---|
| 2332 | 2308 | 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); |
|---|
| 2336 | 2310 | 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); |
|---|
| 2340 | 2312 | 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); |
|---|
| 2345 | 2314 | default: |
|---|
| 2346 | 2315 | ccp->status |= IB_SMP_UNSUP_METH_ATTR; |
|---|
| 2347 | | - ret = reply((struct ib_smp *) ccp); |
|---|
| 2348 | | - goto bail; |
|---|
| 2316 | + return reply((struct ib_smp *) ccp); |
|---|
| 2349 | 2317 | } |
|---|
| 2350 | | - |
|---|
| 2351 | 2318 | case IB_MGMT_METHOD_SET: |
|---|
| 2352 | 2319 | switch (ccp->attr_id) { |
|---|
| 2353 | 2320 | 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); |
|---|
| 2357 | 2322 | 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); |
|---|
| 2362 | 2324 | default: |
|---|
| 2363 | 2325 | ccp->status |= IB_SMP_UNSUP_METH_ATTR; |
|---|
| 2364 | | - ret = reply((struct ib_smp *) ccp); |
|---|
| 2365 | | - goto bail; |
|---|
| 2326 | + return reply((struct ib_smp *) ccp); |
|---|
| 2366 | 2327 | } |
|---|
| 2367 | | - |
|---|
| 2368 | 2328 | case IB_MGMT_METHOD_GET_RESP: |
|---|
| 2369 | 2329 | /* |
|---|
| 2370 | 2330 | * The ib_mad module will call us to process responses |
|---|
| 2371 | 2331 | * before checking for other consumers. |
|---|
| 2372 | 2332 | * Just tell the caller to process it normally. |
|---|
| 2373 | 2333 | */ |
|---|
| 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; |
|---|
| 2381 | 2335 | } |
|---|
| 2382 | 2336 | |
|---|
| 2383 | | -bail: |
|---|
| 2384 | | - return ret; |
|---|
| 2337 | + /* method is unsupported */ |
|---|
| 2338 | + ccp->status |= IB_SMP_UNSUP_METHOD; |
|---|
| 2339 | + return reply((struct ib_smp *) ccp); |
|---|
| 2385 | 2340 | } |
|---|
| 2386 | 2341 | |
|---|
| 2387 | 2342 | /** |
|---|
| .. | .. |
|---|
| 2405 | 2360 | */ |
|---|
| 2406 | 2361 | int qib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port, |
|---|
| 2407 | 2362 | 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) |
|---|
| 2411 | 2365 | { |
|---|
| 2412 | 2366 | int ret; |
|---|
| 2413 | 2367 | struct qib_ibport *ibp = to_iport(ibdev, port); |
|---|
| 2414 | 2368 | 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; |
|---|
| 2417 | 2369 | |
|---|
| 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) { |
|---|
| 2423 | 2371 | case IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE: |
|---|
| 2424 | 2372 | 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); |
|---|
| 2426 | 2374 | goto bail; |
|---|
| 2427 | 2375 | |
|---|
| 2428 | 2376 | case IB_MGMT_CLASS_PERF_MGMT: |
|---|
| 2429 | | - ret = process_perf(ibdev, port, in_mad, out_mad); |
|---|
| 2377 | + ret = process_perf(ibdev, port, in, out); |
|---|
| 2430 | 2378 | goto bail; |
|---|
| 2431 | 2379 | |
|---|
| 2432 | 2380 | case IB_MGMT_CLASS_CONG_MGMT: |
|---|
| .. | .. |
|---|
| 2435 | 2383 | ret = IB_MAD_RESULT_SUCCESS; |
|---|
| 2436 | 2384 | goto bail; |
|---|
| 2437 | 2385 | } |
|---|
| 2438 | | - ret = process_cc(ibdev, mad_flags, port, in_mad, out_mad); |
|---|
| 2386 | + ret = process_cc(ibdev, mad_flags, port, in, out); |
|---|
| 2439 | 2387 | goto bail; |
|---|
| 2440 | 2388 | |
|---|
| 2441 | 2389 | default: |
|---|
| .. | .. |
|---|
| 2494 | 2442 | del_timer_sync(&dd->pport[port_idx].cong_stats.timer); |
|---|
| 2495 | 2443 | |
|---|
| 2496 | 2444 | 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); |
|---|
| 2498 | 2447 | } |
|---|