Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'Wimplicit-fallthrough-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux

Pull Wimplicit-fallthrough enablement from Gustavo A. R. Silva:
"This marks switch cases where we are expecting to fall through, and
globally enables the -Wimplicit-fallthrough option in the main
Makefile.

Finally, some missing-break fixes that have been tagged for -stable:

- drm/amdkfd: Fix missing break in switch statement

- drm/amdgpu/gfx10: Fix missing break in switch statement

With these changes, we completely get rid of all the fall-through
warnings in the kernel"

* tag 'Wimplicit-fallthrough-5.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
Makefile: Globally enable fall-through warning
drm/i915: Mark expected switch fall-throughs
drm/amd/display: Mark expected switch fall-throughs
drm/amdkfd/kfd_mqd_manager_v10: Avoid fall-through warning
drm/amdgpu/gfx10: Fix missing break in switch statement
drm/amdkfd: Fix missing break in switch statement
perf/x86/intel: Mark expected switch fall-throughs
mtd: onenand_base: Mark expected switch fall-through
afs: fsclient: Mark expected switch fall-throughs
afs: yfsclient: Mark expected switch fall-throughs
can: mark expected switch fall-throughs
firewire: mark expected switch fall-throughs

+111 -49
+14
Documentation/process/deprecated.rst
··· 119 119 lead to a crash, possible overwriting sensitive contents at the end of the 120 120 stack (when built without `CONFIG_THREAD_INFO_IN_TASK=y`), or overwriting 121 121 memory adjacent to the stack (when built without `CONFIG_VMAP_STACK=y`) 122 + 123 + Implicit switch case fall-through 124 + --------------------------------- 125 + The C language allows switch cases to "fall through" when 126 + a "break" statement is missing at the end of a case. This, 127 + however, introduces ambiguity in the code, as it's not always 128 + clear if the missing break is intentional or a bug. As there 129 + have been a long list of flaws `due to missing "break" statements 130 + <https://cwe.mitre.org/data/definitions/484.html>`_, we no longer allow 131 + "implicit fall-through". In order to identify an intentional fall-through 132 + case, we have adopted the marking used by static analyzers: a comment 133 + saying `/* Fall through */`. Once the C++17 `__attribute__((fallthrough))` 134 + is more widely handled by C compilers, static analyzers, and IDEs, we can 135 + switch to using that instead.
+3
Makefile
··· 843 843 # warn about C99 declaration after statement 844 844 KBUILD_CFLAGS += -Wdeclaration-after-statement 845 845 846 + # Warn about unmarked fall-throughs in switch statement. 847 + KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough=3,) 848 + 846 849 # Variable Length Arrays (VLAs) should not be used anywhere in the kernel 847 850 KBUILD_CFLAGS += -Wvla 848 851
+2
arch/x86/events/intel/core.c
··· 4955 4955 4956 4956 case INTEL_FAM6_SKYLAKE_X: 4957 4957 pmem = true; 4958 + /* fall through */ 4958 4959 case INTEL_FAM6_SKYLAKE_MOBILE: 4959 4960 case INTEL_FAM6_SKYLAKE_DESKTOP: 4960 4961 case INTEL_FAM6_KABYLAKE_MOBILE: ··· 5005 5004 case INTEL_FAM6_ICELAKE_X: 5006 5005 case INTEL_FAM6_ICELAKE_XEON_D: 5007 5006 pmem = true; 5007 + /* fall through */ 5008 5008 case INTEL_FAM6_ICELAKE_MOBILE: 5009 5009 case INTEL_FAM6_ICELAKE_DESKTOP: 5010 5010 x86_pmu.late_ack = true;
+1 -1
drivers/firewire/core-device.c
··· 957 957 device->bc_implemented = BC_IMPLEMENTED; 958 958 break; 959 959 } 960 - /* else fall through to case address error */ 960 + /* else, fall through - to case address error */ 961 961 case RCODE_ADDRESS_ERROR: 962 962 device->bc_implemented = BC_UNIMPLEMENTED; 963 963 }
+1 -1
drivers/firewire/core-iso.c
··· 284 284 if ((data[0] & bit) == (data[1] & bit)) 285 285 continue; 286 286 287 - /* 1394-1995 IRM, fall through to retry. */ 287 + /* fall through - It's a 1394-1995 IRM, retry. */ 288 288 default: 289 289 if (retry) { 290 290 retry--;
+1
drivers/firewire/core-topology.c
··· 54 54 switch (port_type) { 55 55 case SELFID_PORT_CHILD: 56 56 (*child_port_count)++; 57 + /* fall through */ 57 58 case SELFID_PORT_PARENT: 58 59 case SELFID_PORT_NCONN: 59 60 (*total_port_count)++;
+1
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
··· 4620 4620 cp_int_cntl = REG_SET_FIELD(cp_int_cntl, CP_INT_CNTL_RING0, 4621 4621 TIME_STAMP_INT_ENABLE, 0); 4622 4622 WREG32(cp_int_cntl_reg, cp_int_cntl); 4623 + break; 4623 4624 case AMDGPU_IRQ_STATE_ENABLE: 4624 4625 cp_int_cntl = RREG32(cp_int_cntl_reg); 4625 4626 cp_int_cntl = REG_SET_FIELD(cp_int_cntl, CP_INT_CNTL_RING0,
+1
drivers/gpu/drm/amd/amdkfd/kfd_crat.c
··· 668 668 case CHIP_RAVEN: 669 669 pcache_info = raven_cache_info; 670 670 num_of_cache_types = ARRAY_SIZE(raven_cache_info); 671 + break; 671 672 case CHIP_NAVI10: 672 673 pcache_info = navi10_cache_info; 673 674 num_of_cache_types = ARRAY_SIZE(navi10_cache_info);
-1
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v10.c
··· 429 429 430 430 switch (type) { 431 431 case KFD_MQD_TYPE_CP: 432 - pr_debug("%s@%i\n", __func__, __LINE__); 433 432 case KFD_MQD_TYPE_COMPUTE: 434 433 pr_debug("%s@%i\n", __func__, __LINE__); 435 434 mqd->allocate_mqd = allocate_mqd;
+5
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dccg.c
··· 102 102 switch (dccg_dcn->base.ctx->dc->res_pool->pipe_count) { 103 103 case 6: 104 104 REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[5], 1); 105 + /* Fall through */ 105 106 case 5: 106 107 REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[4], 1); 108 + /* Fall through */ 107 109 case 4: 108 110 REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[3], 1); 111 + /* Fall through */ 109 112 case 3: 110 113 REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[2], 1); 114 + /* Fall through */ 111 115 case 2: 112 116 REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[1], 1); 117 + /* Fall through */ 113 118 case 1: 114 119 REG_UPDATE(DPPCLK_DTO_CTRL, DPPCLK_DTO_DB_EN[0], 1); 115 120 break;
-1
drivers/gpu/drm/i915/Makefile
··· 16 16 subdir-ccflags-y += $(call cc-disable-warning, unused-parameter) 17 17 subdir-ccflags-y += $(call cc-disable-warning, type-limits) 18 18 subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers) 19 - subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough) 20 19 subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable) 21 20 # clang warnings 22 21 subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
+1 -1
drivers/gpu/drm/i915/display/intel_display.c
··· 12042 12042 case INTEL_OUTPUT_DDI: 12043 12043 if (WARN_ON(!HAS_DDI(to_i915(dev)))) 12044 12044 break; 12045 - /* else: fall through */ 12045 + /* else, fall through */ 12046 12046 case INTEL_OUTPUT_DP: 12047 12047 case INTEL_OUTPUT_HDMI: 12048 12048 case INTEL_OUTPUT_EDP:
+1
drivers/gpu/drm/i915/display/intel_dp.c
··· 231 231 switch (lane_info) { 232 232 default: 233 233 MISSING_CASE(lane_info); 234 + /* fall through */ 234 235 case 1: 235 236 case 2: 236 237 case 4:
+1 -1
drivers/gpu/drm/i915/gem/i915_gem_mman.c
··· 341 341 */ 342 342 if (!i915_terminally_wedged(i915)) 343 343 return VM_FAULT_SIGBUS; 344 - /* else: fall through */ 344 + /* else, fall through */ 345 345 case -EAGAIN: 346 346 /* 347 347 * EAGAIN means the gpu is hung and we'll wait for the error
+1 -1
drivers/gpu/drm/i915/gem/i915_gem_pages.c
··· 268 268 switch (type) { 269 269 default: 270 270 MISSING_CASE(type); 271 - /* fallthrough to use PAGE_KERNEL anyway */ 271 + /* fallthrough - to use PAGE_KERNEL anyway */ 272 272 case I915_MAP_WB: 273 273 pgprot = PAGE_KERNEL; 274 274 break;
+1
drivers/gpu/drm/i915/i915_gpu_error.c
··· 1194 1194 switch (engine->id) { 1195 1195 default: 1196 1196 MISSING_CASE(engine->id); 1197 + /* fall through */ 1197 1198 case RCS0: 1198 1199 mmio = RENDER_HWS_PGA_GEN7; 1199 1200 break;
+1
drivers/mtd/nand/onenand/onenand_base.c
··· 3259 3259 switch (density) { 3260 3260 case ONENAND_DEVICE_DENSITY_8Gb: 3261 3261 this->options |= ONENAND_HAS_NOP_1; 3262 + /* fall through */ 3262 3263 case ONENAND_DEVICE_DENSITY_4Gb: 3263 3264 if (ONENAND_IS_DDP(this)) 3264 3265 this->options |= ONENAND_HAS_2PLANE;
+4 -2
drivers/net/can/at91_can.c
··· 898 898 CAN_ERR_CRTL_TX_WARNING : 899 899 CAN_ERR_CRTL_RX_WARNING; 900 900 } 901 - case CAN_STATE_ERROR_WARNING: /* fallthrough */ 901 + /* fall through */ 902 + case CAN_STATE_ERROR_WARNING: 902 903 /* 903 904 * from: ERROR_ACTIVE, ERROR_WARNING 904 905 * to : ERROR_PASSIVE, BUS_OFF ··· 948 947 netdev_dbg(dev, "Error Active\n"); 949 948 cf->can_id |= CAN_ERR_PROT; 950 949 cf->data[2] = CAN_ERR_PROT_ACTIVE; 951 - case CAN_STATE_ERROR_WARNING: /* fallthrough */ 950 + /* fall through */ 951 + case CAN_STATE_ERROR_WARNING: 952 952 reg_idr = AT91_IRQ_ERRA | AT91_IRQ_WARN | AT91_IRQ_BOFF; 953 953 reg_ier = AT91_IRQ_ERRP; 954 954 break;
+1 -1
drivers/net/can/peak_canfd/peak_pciefd_main.c
··· 660 660 pciefd_can_writereg(priv, CANFD_CLK_SEL_80MHZ, 661 661 PCIEFD_REG_CAN_CLK_SEL); 662 662 663 - /* fallthough */ 663 + /* fall through */ 664 664 case CANFD_CLK_SEL_80MHZ: 665 665 priv->ucan.can.clock.freq = 80 * 1000 * 1000; 666 666 break;
+2 -1
drivers/net/can/spi/mcp251x.c
··· 860 860 if (new_state >= CAN_STATE_ERROR_WARNING && 861 861 new_state <= CAN_STATE_BUS_OFF) 862 862 priv->can.can_stats.error_warning++; 863 - case CAN_STATE_ERROR_WARNING: /* fallthrough */ 863 + /* fall through */ 864 + case CAN_STATE_ERROR_WARNING: 864 865 if (new_state >= CAN_STATE_ERROR_PASSIVE && 865 866 new_state <= CAN_STATE_BUS_OFF) 866 867 priv->can.can_stats.error_passive++;
+1 -1
drivers/net/can/usb/peak_usb/pcan_usb.c
··· 415 415 new_state = CAN_STATE_ERROR_WARNING; 416 416 break; 417 417 } 418 - /* else: fall through */ 418 + /* fall through */ 419 419 420 420 case CAN_STATE_ERROR_WARNING: 421 421 if (n & PCAN_USB_ERROR_BUS_HEAVY) {
+33 -18
fs/afs/fsclient.c
··· 339 339 call->tmp_u = htonl(0); 340 340 afs_extract_to_tmp(call); 341 341 } 342 + /* Fall through */ 342 343 343 - /* Fall through - and extract the returned data length */ 344 + /* extract the returned data length */ 344 345 case 1: 345 346 _debug("extract data length"); 346 347 ret = afs_extract_data(call, true); ··· 367 366 call->bvec[0].bv_page = req->pages[req->index]; 368 367 iov_iter_bvec(&call->iter, READ, call->bvec, 1, size); 369 368 ASSERTCMP(size, <=, PAGE_SIZE); 369 + /* Fall through */ 370 370 371 - /* Fall through - and extract the returned data */ 371 + /* extract the returned data */ 372 372 case 2: 373 373 _debug("extract data %zu/%llu", 374 374 iov_iter_count(&call->iter), req->remain); ··· 396 394 /* Discard any excess data the server gave us */ 397 395 iov_iter_discard(&call->iter, READ, req->actual_len - req->len); 398 396 call->unmarshall = 3; 399 - 400 397 /* Fall through */ 398 + 401 399 case 3: 402 400 _debug("extract discard %zu/%llu", 403 401 iov_iter_count(&call->iter), req->actual_len - req->len); ··· 409 407 no_more_data: 410 408 call->unmarshall = 4; 411 409 afs_extract_to_buf(call, (21 + 3 + 6) * 4); 410 + /* Fall through */ 412 411 413 - /* Fall through - and extract the metadata */ 412 + /* extract the metadata */ 414 413 case 4: 415 414 ret = afs_extract_data(call, false); 416 415 if (ret < 0) ··· 1474 1471 case 0: 1475 1472 call->unmarshall++; 1476 1473 afs_extract_to_buf(call, 12 * 4); 1474 + /* Fall through */ 1477 1475 1478 - /* Fall through - and extract the returned status record */ 1476 + /* extract the returned status record */ 1479 1477 case 1: 1480 1478 _debug("extract status"); 1481 1479 ret = afs_extract_data(call, true); ··· 1487 1483 xdr_decode_AFSFetchVolumeStatus(&bp, call->out_volstatus); 1488 1484 call->unmarshall++; 1489 1485 afs_extract_to_tmp(call); 1486 + /* Fall through */ 1490 1487 1491 - /* Fall through - and extract the volume name length */ 1488 + /* extract the volume name length */ 1492 1489 case 2: 1493 1490 ret = afs_extract_data(call, true); 1494 1491 if (ret < 0) ··· 1503 1498 size = (call->count + 3) & ~3; /* It's padded */ 1504 1499 afs_extract_to_buf(call, size); 1505 1500 call->unmarshall++; 1501 + /* Fall through */ 1506 1502 1507 - /* Fall through - and extract the volume name */ 1503 + /* extract the volume name */ 1508 1504 case 3: 1509 1505 _debug("extract volname"); 1510 1506 ret = afs_extract_data(call, true); ··· 1517 1511 _debug("volname '%s'", p); 1518 1512 afs_extract_to_tmp(call); 1519 1513 call->unmarshall++; 1514 + /* Fall through */ 1520 1515 1521 - /* Fall through - and extract the offline message length */ 1516 + /* extract the offline message length */ 1522 1517 case 4: 1523 1518 ret = afs_extract_data(call, true); 1524 1519 if (ret < 0) ··· 1533 1526 size = (call->count + 3) & ~3; /* It's padded */ 1534 1527 afs_extract_to_buf(call, size); 1535 1528 call->unmarshall++; 1529 + /* Fall through */ 1536 1530 1537 - /* Fall through - and extract the offline message */ 1531 + /* extract the offline message */ 1538 1532 case 5: 1539 1533 _debug("extract offline"); 1540 1534 ret = afs_extract_data(call, true); ··· 1548 1540 1549 1541 afs_extract_to_tmp(call); 1550 1542 call->unmarshall++; 1543 + /* Fall through */ 1551 1544 1552 - /* Fall through - and extract the message of the day length */ 1545 + /* extract the message of the day length */ 1553 1546 case 6: 1554 1547 ret = afs_extract_data(call, true); 1555 1548 if (ret < 0) ··· 1564 1555 size = (call->count + 3) & ~3; /* It's padded */ 1565 1556 afs_extract_to_buf(call, size); 1566 1557 call->unmarshall++; 1558 + /* Fall through */ 1567 1559 1568 - /* Fall through - and extract the message of the day */ 1560 + /* extract the message of the day */ 1569 1561 case 7: 1570 1562 _debug("extract motd"); 1571 1563 ret = afs_extract_data(call, false); ··· 1860 1850 case 0: 1861 1851 afs_extract_to_tmp(call); 1862 1852 call->unmarshall++; 1853 + /* Fall through */ 1863 1854 1864 - /* Fall through - and extract the capabilities word count */ 1855 + /* Extract the capabilities word count */ 1865 1856 case 1: 1866 1857 ret = afs_extract_data(call, true); 1867 1858 if (ret < 0) ··· 1874 1863 call->count2 = count; 1875 1864 iov_iter_discard(&call->iter, READ, count * sizeof(__be32)); 1876 1865 call->unmarshall++; 1866 + /* Fall through */ 1877 1867 1878 - /* Fall through - and extract capabilities words */ 1868 + /* Extract capabilities words */ 1879 1869 case 2: 1880 1870 ret = afs_extract_data(call, false); 1881 1871 if (ret < 0) ··· 2032 2020 case 0: 2033 2021 afs_extract_to_tmp(call); 2034 2022 call->unmarshall++; 2023 + /* Fall through */ 2035 2024 2036 2025 /* Extract the file status count and array in two steps */ 2037 - /* Fall through */ 2038 2026 case 1: 2039 2027 _debug("extract status count"); 2040 2028 ret = afs_extract_data(call, true); ··· 2051 2039 call->unmarshall++; 2052 2040 more_counts: 2053 2041 afs_extract_to_buf(call, 21 * sizeof(__be32)); 2054 - 2055 2042 /* Fall through */ 2043 + 2056 2044 case 2: 2057 2045 _debug("extract status array %u", call->count); 2058 2046 ret = afs_extract_data(call, true); ··· 2072 2060 call->count = 0; 2073 2061 call->unmarshall++; 2074 2062 afs_extract_to_tmp(call); 2063 + /* Fall through */ 2075 2064 2076 2065 /* Extract the callback count and array in two steps */ 2077 - /* Fall through */ 2078 2066 case 3: 2079 2067 _debug("extract CB count"); 2080 2068 ret = afs_extract_data(call, true); ··· 2090 2078 call->unmarshall++; 2091 2079 more_cbs: 2092 2080 afs_extract_to_buf(call, 3 * sizeof(__be32)); 2093 - 2094 2081 /* Fall through */ 2082 + 2095 2083 case 4: 2096 2084 _debug("extract CB array"); 2097 2085 ret = afs_extract_data(call, true); ··· 2108 2096 2109 2097 afs_extract_to_buf(call, 6 * sizeof(__be32)); 2110 2098 call->unmarshall++; 2111 - 2112 2099 /* Fall through */ 2100 + 2113 2101 case 5: 2114 2102 ret = afs_extract_data(call, false); 2115 2103 if (ret < 0) ··· 2205 2193 case 0: 2206 2194 afs_extract_to_tmp(call); 2207 2195 call->unmarshall++; 2196 + /* Fall through */ 2208 2197 2209 2198 /* extract the returned data length */ 2210 2199 case 1: ··· 2223 2210 acl->size = call->count2; 2224 2211 afs_extract_begin(call, acl->data, size); 2225 2212 call->unmarshall++; 2213 + /* Fall through */ 2226 2214 2227 2215 /* extract the returned data */ 2228 2216 case 2: ··· 2233 2219 2234 2220 afs_extract_to_buf(call, (21 + 6) * 4); 2235 2221 call->unmarshall++; 2222 + /* Fall through */ 2236 2223 2237 2224 /* extract the metadata */ 2238 2225 case 3:
+35 -19
fs/afs/yfsclient.c
··· 450 450 req->offset = req->pos & (PAGE_SIZE - 1); 451 451 afs_extract_to_tmp64(call); 452 452 call->unmarshall++; 453 + /* Fall through */ 453 454 454 - /* Fall through - and extract the returned data length */ 455 + /* extract the returned data length */ 455 456 case 1: 456 457 _debug("extract data length"); 457 458 ret = afs_extract_data(call, true); ··· 478 477 call->bvec[0].bv_page = req->pages[req->index]; 479 478 iov_iter_bvec(&call->iter, READ, call->bvec, 1, size); 480 479 ASSERTCMP(size, <=, PAGE_SIZE); 480 + /* Fall through */ 481 481 482 - /* Fall through - and extract the returned data */ 482 + /* extract the returned data */ 483 483 case 2: 484 484 _debug("extract data %zu/%llu", 485 485 iov_iter_count(&call->iter), req->remain); ··· 507 505 /* Discard any excess data the server gave us */ 508 506 iov_iter_discard(&call->iter, READ, req->actual_len - req->len); 509 507 call->unmarshall = 3; 510 - 511 508 /* Fall through */ 509 + 512 510 case 3: 513 511 _debug("extract discard %zu/%llu", 514 512 iov_iter_count(&call->iter), req->actual_len - req->len); ··· 523 521 sizeof(struct yfs_xdr_YFSFetchStatus) + 524 522 sizeof(struct yfs_xdr_YFSCallBack) + 525 523 sizeof(struct yfs_xdr_YFSVolSync)); 524 + /* Fall through */ 526 525 527 - /* Fall through - and extract the metadata */ 526 + /* extract the metadata */ 528 527 case 4: 529 528 ret = afs_extract_data(call, false); 530 529 if (ret < 0) ··· 542 539 req->file_size = call->out_scb->status.size; 543 540 544 541 call->unmarshall++; 545 - 546 542 /* Fall through */ 543 + 547 544 case 5: 548 545 break; 549 546 } ··· 1432 1429 case 0: 1433 1430 call->unmarshall++; 1434 1431 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchVolumeStatus)); 1432 + /* Fall through */ 1435 1433 1436 - /* Fall through - and extract the returned status record */ 1434 + /* extract the returned status record */ 1437 1435 case 1: 1438 1436 _debug("extract status"); 1439 1437 ret = afs_extract_data(call, true); ··· 1445 1441 xdr_decode_YFSFetchVolumeStatus(&bp, call->out_volstatus); 1446 1442 call->unmarshall++; 1447 1443 afs_extract_to_tmp(call); 1444 + /* Fall through */ 1448 1445 1449 - /* Fall through - and extract the volume name length */ 1446 + /* extract the volume name length */ 1450 1447 case 2: 1451 1448 ret = afs_extract_data(call, true); 1452 1449 if (ret < 0) ··· 1461 1456 size = (call->count + 3) & ~3; /* It's padded */ 1462 1457 afs_extract_to_buf(call, size); 1463 1458 call->unmarshall++; 1459 + /* Fall through */ 1464 1460 1465 - /* Fall through - and extract the volume name */ 1461 + /* extract the volume name */ 1466 1462 case 3: 1467 1463 _debug("extract volname"); 1468 1464 ret = afs_extract_data(call, true); ··· 1475 1469 _debug("volname '%s'", p); 1476 1470 afs_extract_to_tmp(call); 1477 1471 call->unmarshall++; 1472 + /* Fall through */ 1478 1473 1479 - /* Fall through - and extract the offline message length */ 1474 + /* extract the offline message length */ 1480 1475 case 4: 1481 1476 ret = afs_extract_data(call, true); 1482 1477 if (ret < 0) ··· 1491 1484 size = (call->count + 3) & ~3; /* It's padded */ 1492 1485 afs_extract_to_buf(call, size); 1493 1486 call->unmarshall++; 1487 + /* Fall through */ 1494 1488 1495 - /* Fall through - and extract the offline message */ 1489 + /* extract the offline message */ 1496 1490 case 5: 1497 1491 _debug("extract offline"); 1498 1492 ret = afs_extract_data(call, true); ··· 1506 1498 1507 1499 afs_extract_to_tmp(call); 1508 1500 call->unmarshall++; 1501 + /* Fall through */ 1509 1502 1510 - /* Fall through - and extract the message of the day length */ 1503 + /* extract the message of the day length */ 1511 1504 case 6: 1512 1505 ret = afs_extract_data(call, true); 1513 1506 if (ret < 0) ··· 1522 1513 size = (call->count + 3) & ~3; /* It's padded */ 1523 1514 afs_extract_to_buf(call, size); 1524 1515 call->unmarshall++; 1516 + /* Fall through */ 1525 1517 1526 - /* Fall through - and extract the message of the day */ 1518 + /* extract the message of the day */ 1527 1519 case 7: 1528 1520 _debug("extract motd"); 1529 1521 ret = afs_extract_data(call, false); ··· 1536 1526 _debug("motd '%s'", p); 1537 1527 1538 1528 call->unmarshall++; 1539 - 1540 1529 /* Fall through */ 1530 + 1541 1531 case 8: 1542 1532 break; 1543 1533 } ··· 1815 1805 case 0: 1816 1806 afs_extract_to_tmp(call); 1817 1807 call->unmarshall++; 1808 + /* Fall through */ 1818 1809 1819 1810 /* Extract the file status count and array in two steps */ 1820 - /* Fall through */ 1821 1811 case 1: 1822 1812 _debug("extract status count"); 1823 1813 ret = afs_extract_data(call, true); ··· 1834 1824 call->unmarshall++; 1835 1825 more_counts: 1836 1826 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchStatus)); 1837 - 1838 1827 /* Fall through */ 1828 + 1839 1829 case 2: 1840 1830 _debug("extract status array %u", call->count); 1841 1831 ret = afs_extract_data(call, true); ··· 1855 1845 call->count = 0; 1856 1846 call->unmarshall++; 1857 1847 afs_extract_to_tmp(call); 1848 + /* Fall through */ 1858 1849 1859 1850 /* Extract the callback count and array in two steps */ 1860 - /* Fall through */ 1861 1851 case 3: 1862 1852 _debug("extract CB count"); 1863 1853 ret = afs_extract_data(call, true); ··· 1873 1863 call->unmarshall++; 1874 1864 more_cbs: 1875 1865 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSCallBack)); 1876 - 1877 1866 /* Fall through */ 1867 + 1878 1868 case 4: 1879 1869 _debug("extract CB array"); 1880 1870 ret = afs_extract_data(call, true); ··· 1891 1881 1892 1882 afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSVolSync)); 1893 1883 call->unmarshall++; 1894 - 1895 1884 /* Fall through */ 1885 + 1896 1886 case 5: 1897 1887 ret = afs_extract_data(call, false); 1898 1888 if (ret < 0) ··· 1902 1892 xdr_decode_YFSVolSync(&bp, call->out_volsync); 1903 1893 1904 1894 call->unmarshall++; 1905 - 1906 1895 /* Fall through */ 1896 + 1907 1897 case 6: 1908 1898 break; 1909 1899 } ··· 1988 1978 case 0: 1989 1979 afs_extract_to_tmp(call); 1990 1980 call->unmarshall++; 1981 + /* Fall through */ 1991 1982 1992 1983 /* Extract the file ACL length */ 1993 1984 case 1: ··· 2010 1999 iov_iter_discard(&call->iter, READ, size); 2011 2000 } 2012 2001 call->unmarshall++; 2002 + /* Fall through */ 2013 2003 2014 2004 /* Extract the file ACL */ 2015 2005 case 2: ··· 2020 2008 2021 2009 afs_extract_to_tmp(call); 2022 2010 call->unmarshall++; 2011 + /* Fall through */ 2023 2012 2024 2013 /* Extract the volume ACL length */ 2025 2014 case 3: ··· 2042 2029 iov_iter_discard(&call->iter, READ, size); 2043 2030 } 2044 2031 call->unmarshall++; 2032 + /* Fall through */ 2045 2033 2046 2034 /* Extract the volume ACL */ 2047 2035 case 4: ··· 2055 2041 sizeof(struct yfs_xdr_YFSFetchStatus) + 2056 2042 sizeof(struct yfs_xdr_YFSVolSync)); 2057 2043 call->unmarshall++; 2044 + /* Fall through */ 2058 2045 2059 2046 /* extract the metadata */ 2060 2047 case 5: ··· 2072 2057 xdr_decode_YFSVolSync(&bp, call->out_volsync); 2073 2058 2074 2059 call->unmarshall++; 2060 + /* Fall through */ 2075 2061 2076 2062 case 6: 2077 2063 break;