netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 000/141] Fix fall-through warnings for Clang
@ 2020-11-20 18:21 Gustavo A. R. Silva
  2020-11-20 18:25 ` [PATCH 009/141] igb: " Gustavo A. R. Silva
                   ` (56 more replies)
  0 siblings, 57 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, linux-arm-kernel,
	linux-arm-msm, linux-atm-general, linux-block, linux-can,
	linux-cifs, linux-crypto, linux-decnet-user, linux-ext4,
	linux-fbdev, linux-geode, linux-gpio, linux-hams, linux-hwmon,
	linux-i3c, linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, linux-media, linux-mmc, linux-mm, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook, Gustavo A. R. Silva

Hi all,

This series aims to fix almost all remaining fall-through warnings in
order to enable -Wimplicit-fallthrough for Clang.

In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
add multiple break/goto/return/fallthrough statements instead of just
letting the code fall through to the next case.

Notice that in order to enable -Wimplicit-fallthrough for Clang, this
change[1] is meant to be reverted at some point. So, this patch helps
to move in that direction.

Something important to mention is that there is currently a discrepancy
between GCC and Clang when dealing with switch fall-through to empty case
statements or to cases that only contain a break/continue/return
statement[2][3][4].

Now that the -Wimplicit-fallthrough option has been globally enabled[5],
any compiler should really warn on missing either a fallthrough annotation
or any of the other case-terminating statements (break/continue/return/
goto) when falling through to the next case statement. Making exceptions
to this introduces variation in case handling which may continue to lead
to bugs, misunderstandings, and a general lack of robustness. The point
of enabling options like -Wimplicit-fallthrough is to prevent human error
and aid developers in spotting bugs before their code is even built/
submitted/committed, therefore eliminating classes of bugs. So, in order
to really accomplish this, we should, and can, move in the direction of
addressing any error-prone scenarios and get rid of the unintentional
fallthrough bug-class in the kernel, entirely, even if there is some minor
redundancy. Better to have explicit case-ending statements than continue to
have exceptions where one must guess as to the right result. The compiler
will eliminate any actual redundancy.

Note that there is already a patch in mainline that addresses almost
40,000 of these issues[6].

I'm happy to carry this whole series in my own tree if people are OK
with it. :)

[1] commit e2079e93f562c ("kbuild: Do not enable -Wimplicit-fallthrough for clang for now")
[2] ClangBuiltLinux#636
[3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91432
[4] https://godbolt.org/z/xgkvIh
[5] commit a035d552a93b ("Makefile: Globally enable fall-through warning")
[6] commit 4169e889e588 ("include: jhash/signal: Fix fall-through warnings for Clang")

Thanks!

Gustavo A. R. Silva (141):
  afs: Fix fall-through warnings for Clang
  ASoC: codecs: Fix fall-through warnings for Clang
  cifs: Fix fall-through warnings for Clang
  drm/amdgpu: Fix fall-through warnings for Clang
  drm/radeon: Fix fall-through warnings for Clang
  gfs2: Fix fall-through warnings for Clang
  gpio: Fix fall-through warnings for Clang
  IB/hfi1: Fix fall-through warnings for Clang
  igb: Fix fall-through warnings for Clang
  ima: Fix fall-through warnings for Clang
  ipv4: Fix fall-through warnings for Clang
  ixgbe: Fix fall-through warnings for Clang
  media: dvb-frontends: Fix fall-through warnings for Clang
  media: usb: dvb-usb-v2: Fix fall-through warnings for Clang
  netfilter: Fix fall-through warnings for Clang
  nfsd: Fix fall-through warnings for Clang
  nfs: Fix fall-through warnings for Clang
  qed: Fix fall-through warnings for Clang
  qlcnic: Fix fall-through warnings for Clang
  scsi: aic7xxx: Fix fall-through warnings for Clang
  scsi: aic94xx: Fix fall-through warnings for Clang
  scsi: bfa: Fix fall-through warnings for Clang
  staging: rtl8723bs: core: Fix fall-through warnings for Clang
  staging: vt6655: Fix fall-through warnings for Clang
  bnxt_en: Fix fall-through warnings for Clang
  ceph: Fix fall-through warnings for Clang
  drbd: Fix fall-through warnings for Clang
  drm/amd/display: Fix fall-through warnings for Clang
  e1000: Fix fall-through warnings for Clang
  ext2: Fix fall-through warnings for Clang
  ext4: Fix fall-through warnings for Clang
  floppy: Fix fall-through warnings for Clang
  fm10k: Fix fall-through warnings for Clang
  IB/mlx4: Fix fall-through warnings for Clang
  IB/qedr: Fix fall-through warnings for Clang
  ice: Fix fall-through warnings for Clang
  Input: pcspkr - Fix fall-through warnings for Clang
  isofs: Fix fall-through warnings for Clang
  ixgbevf: Fix fall-through warnings for Clang
  kprobes/x86: Fix fall-through warnings for Clang
  mm: Fix fall-through warnings for Clang
  net: 3c509: Fix fall-through warnings for Clang
  net: cassini: Fix fall-through warnings for Clang
  net/mlx4: Fix fall-through warnings for Clang
  net: mscc: ocelot: Fix fall-through warnings for Clang
  netxen_nic: Fix fall-through warnings for Clang
  nfp: Fix fall-through warnings for Clang
  perf/x86: Fix fall-through warnings for Clang
  pinctrl: Fix fall-through warnings for Clang
  RDMA/mlx5: Fix fall-through warnings for Clang
  reiserfs: Fix fall-through warnings for Clang
  security: keys: Fix fall-through warnings for Clang
  selinux: Fix fall-through warnings for Clang
  target: Fix fall-through warnings for Clang
  uprobes/x86: Fix fall-through warnings for Clang
  vxge: Fix fall-through warnings for Clang
  watchdog: Fix fall-through warnings for Clang
  xen-blkfront: Fix fall-through warnings for Clang
  regulator: as3722: Fix fall-through warnings for Clang
  habanalabs: Fix fall-through warnings for Clang
  tee: Fix fall-through warnings for Clang
  HID: usbhid: Fix fall-through warnings for Clang
  HID: input: Fix fall-through warnings for Clang
  ACPI: Fix fall-through warnings for Clang
  airo: Fix fall-through warnings for Clang
  ALSA: hdspm: Fix fall-through warnings for Clang
  ALSA: pcsp: Fix fall-through warnings for Clang
  ALSA: sb: Fix fall-through warnings for Clang
  ath5k: Fix fall-through warnings for Clang
  atm: fore200e: Fix fall-through warnings for Clang
  braille_console: Fix fall-through warnings for Clang
  can: peak_usb: Fix fall-through warnings for Clang
  carl9170: Fix fall-through warnings for Clang
  cfg80211: Fix fall-through warnings for Clang
  crypto: ccree - Fix fall-through warnings for Clang
  decnet: Fix fall-through warnings for Clang
  dm raid: Fix fall-through warnings for Clang
  drm/amd/pm: Fix fall-through warnings for Clang
  drm: Fix fall-through warnings for Clang
  drm/i915/gem: Fix fall-through warnings for Clang
  drm/nouveau/clk: Fix fall-through warnings for Clang
  drm/nouveau: Fix fall-through warnings for Clang
  drm/nouveau/therm: Fix fall-through warnings for Clang
  drm/via: Fix fall-through warnings for Clang
  firewire: core: Fix fall-through warnings for Clang
  hwmon: (corsair-cpro) Fix fall-through warnings for Clang
  hwmon: (max6621) Fix fall-through warnings for Clang
  i3c: master: cdns: Fix fall-through warnings for Clang
  ide: Fix fall-through warnings for Clang
  iio: adc: cpcap: Fix fall-through warnings for Clang
  iwlwifi: iwl-drv: Fix fall-through warnings for Clang
  libata: Fix fall-through warnings for Clang
  mac80211: Fix fall-through warnings for Clang
  media: atomisp: Fix fall-through warnings for Clang
  media: dvb_frontend: Fix fall-through warnings for Clang
  media: rcar_jpu: Fix fall-through warnings for Clang
  media: saa7134: Fix fall-through warnings for Clang
  mmc: sdhci-of-arasan: Fix fall-through warnings for Clang
  mt76: mt7615: Fix fall-through warnings for Clang
  mtd: cfi: Fix fall-through warnings for Clang
  mtd: mtdchar: Fix fall-through warnings for Clang
  mtd: onenand: Fix fall-through warnings for Clang
  mtd: rawnand: fsmc: Fix fall-through warnings for Clang
  mtd: rawnand: stm32_fmc2: Fix fall-through warnings for Clang
  net: ax25: Fix fall-through warnings for Clang
  net: bridge: Fix fall-through warnings for Clang
  net: core: Fix fall-through warnings for Clang
  netfilter: ipt_REJECT: Fix fall-through warnings for Clang
  net: netrom: Fix fall-through warnings for Clang
  net/packet: Fix fall-through warnings for Clang
  net: plip: Fix fall-through warnings for Clang
  net: rose: Fix fall-through warnings for Clang
  nl80211: Fix fall-through warnings for Clang
  phy: qcom-usb-hs: Fix fall-through warnings for Clang
  rds: Fix fall-through warnings for Clang
  rt2x00: Fix fall-through warnings for Clang
  rtl8xxxu: Fix fall-through warnings for Clang
  rtw88: Fix fall-through warnings for Clang
  rxrpc: Fix fall-through warnings for Clang
  scsi: aacraid: Fix fall-through warnings for Clang
  scsi: aha1740: Fix fall-through warnings for Clang
  scsi: csiostor: Fix fall-through warnings for Clang
  scsi: lpfc: Fix fall-through warnings for Clang
  scsi: stex: Fix fall-through warnings for Clang
  sctp: Fix fall-through warnings for Clang
  slimbus: messaging: Fix fall-through warnings for Clang
  staging: qlge: Fix fall-through warnings for Clang
  staging: vt6656: Fix fall-through warnings for Clang
  SUNRPC: Fix fall-through warnings for Clang
  tipc: Fix fall-through warnings for Clang
  tpm: Fix fall-through warnings for Clang
  ubi: Fix fall-through warnings for Clang
  usb: Fix fall-through warnings for Clang
  video: fbdev: lxfb_ops: Fix fall-through warnings for Clang
  video: fbdev: pm2fb: Fix fall-through warnings for Clang
  virtio_net: Fix fall-through warnings for Clang
  wcn36xx: Fix fall-through warnings for Clang
  xen/manage: Fix fall-through warnings for Clang
  xfrm: Fix fall-through warnings for Clang
  zd1201: Fix fall-through warnings for Clang
  Input: libps2 - Fix fall-through warnings for Clang

 arch/x86/events/core.c                                    | 2 +-
 arch/x86/kernel/kprobes/core.c                            | 1 +
 arch/x86/kernel/uprobes.c                                 | 2 ++
 drivers/accessibility/braille/braille_console.c           | 1 +
 drivers/acpi/sbshc.c                                      | 1 +
 drivers/ata/libata-eh.c                                   | 1 +
 drivers/atm/fore200e.c                                    | 1 +
 drivers/block/drbd/drbd_receiver.c                        | 1 +
 drivers/block/drbd/drbd_req.c                             | 1 +
 drivers/block/floppy.c                                    | 1 +
 drivers/block/xen-blkfront.c                              | 1 +
 drivers/char/tpm/eventlog/tpm1.c                          | 1 +
 drivers/crypto/ccree/cc_cipher.c                          | 3 +++
 drivers/firewire/core-topology.c                          | 1 +
 drivers/gpio/gpio-ath79.c                                 | 1 +
 drivers/gpio/gpiolib-acpi.c                               | 1 +
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c                    | 1 +
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c                     | 1 +
 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c                     | 1 +
 drivers/gpu/drm/amd/amdgpu/vi.c                           | 1 +
 drivers/gpu/drm/amd/display/dc/bios/bios_parser.c         | 1 +
 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c        | 2 ++
 drivers/gpu/drm/amd/display/dc/core/dc_link.c             | 1 +
 drivers/gpu/drm/amd/pm/powerplay/si_dpm.c                 | 2 +-
 .../gpu/drm/amd/pm/powerplay/smumgr/polaris10_smumgr.c    | 1 +
 drivers/gpu/drm/drm_bufs.c                                | 1 +
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c              | 1 +
 drivers/gpu/drm/nouveau/nouveau_bo.c                      | 1 +
 drivers/gpu/drm/nouveau/nouveau_connector.c               | 1 +
 drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c            | 1 +
 drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.c         | 1 +
 drivers/gpu/drm/radeon/ci_dpm.c                           | 2 +-
 drivers/gpu/drm/radeon/r300.c                             | 1 +
 drivers/gpu/drm/radeon/si_dpm.c                           | 2 +-
 drivers/gpu/drm/via/via_irq.c                             | 1 +
 drivers/hid/hid-input.c                                   | 1 +
 drivers/hid/usbhid/hid-core.c                             | 2 ++
 drivers/hwmon/corsair-cpro.c                              | 1 +
 drivers/hwmon/max6621.c                                   | 2 +-
 drivers/i3c/master/i3c-master-cdns.c                      | 2 ++
 drivers/ide/siimage.c                                     | 1 +
 drivers/iio/adc/cpcap-adc.c                               | 1 +
 drivers/infiniband/hw/hfi1/qp.c                           | 1 +
 drivers/infiniband/hw/hfi1/tid_rdma.c                     | 5 +++++
 drivers/infiniband/hw/mlx4/mad.c                          | 1 +
 drivers/infiniband/hw/mlx5/qp.c                           | 1 +
 drivers/infiniband/hw/qedr/main.c                         | 1 +
 drivers/input/misc/pcspkr.c                               | 1 +
 drivers/input/serio/libps2.c                              | 2 +-
 drivers/md/dm-raid.c                                      | 1 +
 drivers/media/dvb-core/dvb_frontend.c                     | 1 +
 drivers/media/dvb-frontends/cx24120.c                     | 1 +
 drivers/media/dvb-frontends/dib0090.c                     | 2 ++
 drivers/media/dvb-frontends/drxk_hard.c                   | 1 +
 drivers/media/dvb-frontends/m88rs2000.c                   | 1 +
 drivers/media/pci/saa7134/saa7134-tvaudio.c               | 1 +
 drivers/media/platform/rcar_jpu.c                         | 1 +
 drivers/media/usb/dvb-usb-v2/af9015.c                     | 1 +
 drivers/media/usb/dvb-usb-v2/lmedm04.c                    | 1 +
 drivers/misc/habanalabs/gaudi/gaudi.c                     | 1 +
 drivers/mmc/host/sdhci-of-arasan.c                        | 4 ++++
 drivers/mtd/chips/cfi_cmdset_0001.c                       | 1 +
 drivers/mtd/chips/cfi_cmdset_0002.c                       | 2 ++
 drivers/mtd/chips/cfi_cmdset_0020.c                       | 2 ++
 drivers/mtd/mtdchar.c                                     | 1 +
 drivers/mtd/nand/onenand/onenand_samsung.c                | 1 +
 drivers/mtd/nand/raw/fsmc_nand.c                          | 1 +
 drivers/mtd/nand/raw/stm32_fmc2_nand.c                    | 2 ++
 drivers/mtd/ubi/build.c                                   | 1 +
 drivers/net/can/usb/peak_usb/pcan_usb_core.c              | 2 ++
 drivers/net/ethernet/3com/3c509.c                         | 1 +
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                 | 1 +
 drivers/net/ethernet/intel/e1000/e1000_hw.c               | 1 +
 drivers/net/ethernet/intel/fm10k/fm10k_mbx.c              | 2 ++
 drivers/net/ethernet/intel/ice/ice_txrx_lib.c             | 1 +
 drivers/net/ethernet/intel/igb/e1000_phy.c                | 1 +
 drivers/net/ethernet/intel/igb/igb_ethtool.c              | 1 +
 drivers/net/ethernet/intel/igb/igb_ptp.c                  | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c            | 2 ++
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c           | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c              | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c              | 1 +
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c         | 1 +
 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c     | 1 +
 drivers/net/ethernet/mscc/ocelot_vcap.c                   | 1 +
 drivers/net/ethernet/neterion/vxge/vxge-config.c          | 1 +
 drivers/net/ethernet/netronome/nfp/nfp_net_repr.c         | 1 +
 drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c      | 1 +
 drivers/net/ethernet/qlogic/qed/qed_l2.c                  | 1 +
 drivers/net/ethernet/qlogic/qed/qed_sriov.c               | 1 +
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c            | 1 +
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c          | 1 +
 drivers/net/ethernet/sun/cassini.c                        | 1 +
 drivers/net/plip/plip.c                                   | 2 ++
 drivers/net/virtio_net.c                                  | 1 +
 drivers/net/wireless/ath/ath5k/mac80211-ops.c             | 1 +
 drivers/net/wireless/ath/carl9170/tx.c                    | 1 +
 drivers/net/wireless/ath/wcn36xx/smd.c                    | 2 +-
 drivers/net/wireless/cisco/airo.c                         | 1 +
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c              | 2 +-
 drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c        | 2 +-
 drivers/net/wireless/ralink/rt2x00/rt2x00queue.c          | 1 +
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c     | 8 ++++----
 drivers/net/wireless/realtek/rtw88/fw.c                   | 2 +-
 drivers/net/wireless/zydas/zd1201.c                       | 2 +-
 drivers/phy/qualcomm/phy-qcom-usb-hs.c                    | 1 +
 drivers/pinctrl/renesas/pinctrl-rza1.c                    | 1 +
 drivers/regulator/as3722-regulator.c                      | 3 ++-
 drivers/scsi/aacraid/commsup.c                            | 1 +
 drivers/scsi/aha1740.c                                    | 1 +
 drivers/scsi/aic7xxx/aic79xx_core.c                       | 4 +++-
 drivers/scsi/aic7xxx/aic7xxx_core.c                       | 4 ++--
 drivers/scsi/aic94xx/aic94xx_scb.c                        | 2 ++
 drivers/scsi/aic94xx/aic94xx_task.c                       | 2 ++
 drivers/scsi/bfa/bfa_fcs_lport.c                          | 2 +-
 drivers/scsi/bfa/bfa_ioc.c                                | 6 ++++--
 drivers/scsi/csiostor/csio_wr.c                           | 1 +
 drivers/scsi/lpfc/lpfc_bsg.c                              | 1 +
 drivers/scsi/stex.c                                       | 1 +
 drivers/slimbus/messaging.c                               | 1 +
 drivers/staging/media/atomisp/pci/runtime/isys/src/rx.c   | 1 +
 drivers/staging/qlge/qlge_main.c                          | 1 +
 drivers/staging/rtl8723bs/core/rtw_cmd.c                  | 1 +
 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c             | 1 +
 drivers/staging/rtl8723bs/core/rtw_wlan_util.c            | 1 +
 drivers/staging/vt6655/device_main.c                      | 1 +
 drivers/staging/vt6655/rxtx.c                             | 2 ++
 drivers/staging/vt6656/main_usb.c                         | 1 +
 drivers/target/target_core_iblock.c                       | 1 +
 drivers/target/target_core_pr.c                           | 1 +
 drivers/tee/tee_core.c                                    | 1 +
 drivers/usb/gadget/function/f_fs.c                        | 2 ++
 drivers/usb/gadget/function/f_loopback.c                  | 2 +-
 drivers/usb/gadget/function/f_sourcesink.c                | 1 +
 drivers/usb/gadget/udc/dummy_hcd.c                        | 2 ++
 drivers/usb/host/fotg210-hcd.c                            | 2 +-
 drivers/usb/host/isp116x-hcd.c                            | 1 +
 drivers/usb/host/max3421-hcd.c                            | 1 +
 drivers/usb/host/oxu210hp-hcd.c                           | 1 +
 drivers/usb/misc/yurex.c                                  | 1 +
 drivers/usb/musb/tusb6010.c                               | 1 +
 drivers/usb/storage/ene_ub6250.c                          | 1 +
 drivers/usb/storage/uas.c                                 | 1 +
 drivers/video/fbdev/geode/lxfb_ops.c                      | 1 +
 drivers/video/fbdev/pm2fb.c                               | 1 +
 drivers/watchdog/machzwd.c                                | 1 +
 drivers/xen/manage.c                                      | 1 +
 fs/afs/cmservice.c                                        | 5 +++++
 fs/afs/fsclient.c                                         | 4 ++++
 fs/afs/vlclient.c                                         | 1 +
 fs/ceph/dir.c                                             | 2 ++
 fs/cifs/inode.c                                           | 1 +
 fs/cifs/sess.c                                            | 1 +
 fs/cifs/smbdirect.c                                       | 1 +
 fs/ext2/inode.c                                           | 1 +
 fs/ext4/super.c                                           | 1 +
 fs/gfs2/inode.c                                           | 2 ++
 fs/gfs2/recovery.c                                        | 1 +
 fs/isofs/rock.c                                           | 1 +
 fs/nfs/nfs3acl.c                                          | 1 +
 fs/nfs/nfs4client.c                                       | 1 +
 fs/nfs/nfs4proc.c                                         | 2 ++
 fs/nfs/nfs4state.c                                        | 1 +
 fs/nfs/pnfs.c                                             | 2 ++
 fs/nfsd/nfs4state.c                                       | 1 +
 fs/nfsd/nfsctl.c                                          | 1 +
 fs/reiserfs/namei.c                                       | 1 +
 mm/mm_init.c                                              | 1 +
 mm/vmscan.c                                               | 1 +
 net/ax25/af_ax25.c                                        | 1 +
 net/bridge/br_input.c                                     | 1 +
 net/core/dev.c                                            | 1 +
 net/decnet/dn_route.c                                     | 2 +-
 net/ipv4/ah4.c                                            | 1 +
 net/ipv4/esp4.c                                           | 1 +
 net/ipv4/fib_semantics.c                                  | 1 +
 net/ipv4/ip_vti.c                                         | 1 +
 net/ipv4/ipcomp.c                                         | 1 +
 net/ipv4/netfilter/ipt_REJECT.c                           | 1 +
 net/mac80211/cfg.c                                        | 2 ++
 net/netfilter/nf_conntrack_proto_dccp.c                   | 1 +
 net/netfilter/nf_tables_api.c                             | 1 +
 net/netfilter/nft_ct.c                                    | 1 +
 net/netrom/nr_route.c                                     | 4 ++++
 net/packet/af_packet.c                                    | 1 +
 net/rds/tcp_connect.c                                     | 1 +
 net/rds/threads.c                                         | 2 ++
 net/rose/rose_route.c                                     | 2 ++
 net/rxrpc/af_rxrpc.c                                      | 1 +
 net/sctp/input.c                                          | 3 ++-
 net/sunrpc/rpc_pipe.c                                     | 1 +
 net/sunrpc/xprtsock.c                                     | 1 +
 net/tipc/link.c                                           | 1 +
 net/wireless/nl80211.c                                    | 1 +
 net/wireless/util.c                                       | 1 +
 net/xfrm/xfrm_interface.c                                 | 1 +
 security/integrity/ima/ima_main.c                         | 1 +
 security/integrity/ima/ima_policy.c                       | 2 ++
 security/keys/process_keys.c                              | 1 +
 security/selinux/hooks.c                                  | 1 +
 sound/drivers/pcsp/pcsp_input.c                           | 1 +
 sound/isa/sb/sb8_main.c                                   | 1 +
 sound/pci/rme9652/hdspm.c                                 | 1 +
 sound/soc/codecs/adav80x.c                                | 1 +
 sound/soc/codecs/arizona.c                                | 1 +
 sound/soc/codecs/cs42l52.c                                | 1 +
 sound/soc/codecs/cs42l56.c                                | 1 +
 sound/soc/codecs/cs47l92.c                                | 1 +
 sound/soc/codecs/wm8962.c                                 | 1 +
 209 files changed, 264 insertions(+), 26 deletions(-)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 150+ messages in thread

* [PATCH 009/141] igb: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
@ 2020-11-20 18:25 ` Gustavo A. R. Silva
  2020-11-20 18:25 ` [PATCH 011/141] ipv4: " Gustavo A. R. Silva
                   ` (55 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:25 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: intel-wired-lan, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of just
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/intel/igb/e1000_phy.c   | 1 +
 drivers/net/ethernet/intel/igb/igb_ethtool.c | 1 +
 drivers/net/ethernet/intel/igb/igb_ptp.c     | 1 +
 3 files changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/intel/igb/e1000_phy.c b/drivers/net/ethernet/intel/igb/e1000_phy.c
index 8c8eb82e6272..a018000f7db9 100644
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.c
@@ -836,6 +836,7 @@ s32 igb_copper_link_setup_igp(struct e1000_hw *hw)
 			break;
 		case e1000_ms_auto:
 			data &= ~CR_1000T_MS_ENABLE;
+			break;
 		default:
 			break;
 		}
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 28baf203459a..486d3e67d3a9 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -3022,6 +3022,7 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
 		break;
 	case ETHTOOL_SRXCLSRLDEL:
 		ret = igb_del_ethtool_nfc_entry(adapter, cmd);
+		break;
 	default:
 		break;
 	}
diff --git a/drivers/net/ethernet/intel/igb/igb_ptp.c b/drivers/net/ethernet/intel/igb/igb_ptp.c
index 7cc5428c3b3d..f3ff565da0a1 100644
--- a/drivers/net/ethernet/intel/igb/igb_ptp.c
+++ b/drivers/net/ethernet/intel/igb/igb_ptp.c
@@ -1008,6 +1008,7 @@ static int igb_ptp_set_timestamp_mode(struct igb_adapter *adapter,
 	switch (config->tx_type) {
 	case HWTSTAMP_TX_OFF:
 		tsync_tx_ctl = 0;
+		break;
 	case HWTSTAMP_TX_ON:
 		break;
 	default:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 011/141] ipv4: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
  2020-11-20 18:25 ` [PATCH 009/141] igb: " Gustavo A. R. Silva
@ 2020-11-20 18:25 ` Gustavo A. R. Silva
  2020-11-20 18:26 ` [PATCH 012/141] ixgbe: " Gustavo A. R. Silva
                   ` (54 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:25 UTC (permalink / raw)
  To: Steffen Klassert, Herbert Xu, David S. Miller, Alexey Kuznetsov,
	Hideaki YOSHIFUJI, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of just
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/ipv4/ah4.c           | 1 +
 net/ipv4/esp4.c          | 1 +
 net/ipv4/fib_semantics.c | 1 +
 net/ipv4/ip_vti.c        | 1 +
 net/ipv4/ipcomp.c        | 1 +
 5 files changed, 5 insertions(+)

diff --git a/net/ipv4/ah4.c b/net/ipv4/ah4.c
index d99e1be94019..18d451414601 100644
--- a/net/ipv4/ah4.c
+++ b/net/ipv4/ah4.c
@@ -450,6 +450,7 @@ static int ah4_err(struct sk_buff *skb, u32 info)
 	case ICMP_DEST_UNREACH:
 		if (icmp_hdr(skb)->code != ICMP_FRAG_NEEDED)
 			return 0;
+		break;
 	case ICMP_REDIRECT:
 		break;
 	default:
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index 8b07f3a4f2db..a12ef89e8520 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -987,6 +987,7 @@ static int esp4_err(struct sk_buff *skb, u32 info)
 	case ICMP_DEST_UNREACH:
 		if (icmp_hdr(skb)->code != ICMP_FRAG_NEEDED)
 			return 0;
+		break;
 	case ICMP_REDIRECT:
 		break;
 	default:
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 1f75dc686b6b..647a67516b80 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -1872,6 +1872,7 @@ static int call_fib_nh_notifiers(struct fib_nh *nh,
 		    (nh->fib_nh_flags & RTNH_F_DEAD))
 			return call_fib4_notifiers(dev_net(nh->fib_nh_dev),
 						   event_type, &info.info);
+		break;
 	default:
 		break;
 	}
diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
index b957cbee2cf7..60e0311ec51f 100644
--- a/net/ipv4/ip_vti.c
+++ b/net/ipv4/ip_vti.c
@@ -349,6 +349,7 @@ static int vti4_err(struct sk_buff *skb, u32 info)
 	case ICMP_DEST_UNREACH:
 		if (icmp_hdr(skb)->code != ICMP_FRAG_NEEDED)
 			return 0;
+		break;
 	case ICMP_REDIRECT:
 		break;
 	default:
diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c
index b42683212c65..bbb56f5e06dd 100644
--- a/net/ipv4/ipcomp.c
+++ b/net/ipv4/ipcomp.c
@@ -31,6 +31,7 @@ static int ipcomp4_err(struct sk_buff *skb, u32 info)
 	case ICMP_DEST_UNREACH:
 		if (icmp_hdr(skb)->code != ICMP_FRAG_NEEDED)
 			return 0;
+		break;
 	case ICMP_REDIRECT:
 		break;
 	default:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 012/141] ixgbe: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
  2020-11-20 18:25 ` [PATCH 009/141] igb: " Gustavo A. R. Silva
  2020-11-20 18:25 ` [PATCH 011/141] ipv4: " Gustavo A. R. Silva
@ 2020-11-20 18:26 ` Gustavo A. R. Silva
  2020-11-20 18:26 ` [PATCH 015/141] netfilter: " Gustavo A. R. Silva
                   ` (53 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:26 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: intel-wired-lan, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of just
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c  | 2 ++
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c    | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c    | 1 +
 4 files changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
index 8d3798a32f0e..cdfff510a27b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c
@@ -1542,6 +1542,7 @@ s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw,
 	switch (input_mask->formatted.vm_pool & 0x7F) {
 	case 0x0:
 		fdirm |= IXGBE_FDIRM_POOL;
+		break;
 	case 0x7F:
 		break;
 	default:
@@ -1557,6 +1558,7 @@ s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw,
 			hw_dbg(hw, " Error on src/dst port mask\n");
 			return IXGBE_ERR_CONFIG;
 		}
+		break;
 	case IXGBE_ATR_L4TYPE_MASK:
 		break;
 	default:
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index 62ddb452f862..8d5a01be1d99 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -93,6 +93,7 @@ bool ixgbe_device_supports_autoneg_fc(struct ixgbe_hw *hw)
 		default:
 			break;
 		}
+		break;
 	default:
 		break;
 	}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
index df389a11d3af..0218f6c9b925 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
@@ -132,6 +132,7 @@ static void ixgbe_get_first_reg_idx(struct ixgbe_adapter *adapter, u8 tc,
 			else
 				*tx = (tc + 4) << 4;	/* 96, 112 */
 		}
+		break;
 	default:
 		break;
 	}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
index 22a874eee2e8..23ddfd79fc8b 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
@@ -999,6 +999,7 @@ static int ixgbe_ptp_set_timestamp_mode(struct ixgbe_adapter *adapter,
 	switch (config->tx_type) {
 	case HWTSTAMP_TX_OFF:
 		tsync_tx_ctl = 0;
+		break;
 	case HWTSTAMP_TX_ON:
 		break;
 	default:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 015/141] netfilter: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (2 preceding siblings ...)
  2020-11-20 18:26 ` [PATCH 012/141] ixgbe: " Gustavo A. R. Silva
@ 2020-11-20 18:26 ` Gustavo A. R. Silva
  2020-11-20 22:47   ` Florian Westphal
  2020-11-20 18:26 ` [PATCH 018/141] qed: " Gustavo A. R. Silva
                   ` (52 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:26 UTC (permalink / raw)
  To: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
	David S. Miller, Jakub Kicinski
  Cc: netfilter-devel, coreteam, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of just
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/netfilter/nf_conntrack_proto_dccp.c | 1 +
 net/netfilter/nf_tables_api.c           | 1 +
 net/netfilter/nft_ct.c                  | 1 +
 3 files changed, 3 insertions(+)

diff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c
index b3f4a334f9d7..94001eb51ffe 100644
--- a/net/netfilter/nf_conntrack_proto_dccp.c
+++ b/net/netfilter/nf_conntrack_proto_dccp.c
@@ -397,6 +397,7 @@ dccp_new(struct nf_conn *ct, const struct sk_buff *skb,
 			msg = "not picking up existing connection ";
 			goto out_invalid;
 		}
+		break;
 	case CT_DCCP_REQUEST:
 		break;
 	case CT_DCCP_INVALID:
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 0f58e98542be..78d0bbc8868c 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -8342,6 +8342,7 @@ static int nf_tables_check_loops(const struct nft_ctx *ctx,
 							data->verdict.chain);
 				if (err < 0)
 					return err;
+				break;
 			default:
 				break;
 			}
diff --git a/net/netfilter/nft_ct.c b/net/netfilter/nft_ct.c
index 322bd674963e..fec68b75f39a 100644
--- a/net/netfilter/nft_ct.c
+++ b/net/netfilter/nft_ct.c
@@ -530,6 +530,7 @@ static void __nft_ct_set_destroy(const struct nft_ctx *ctx, struct nft_ct *priv)
 	case NFT_CT_ZONE:
 		if (--nft_ct_pcpu_template_refcnt == 0)
 			nft_ct_tmpl_put_pcpu();
+		break;
 #endif
 	default:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 018/141] qed: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (3 preceding siblings ...)
  2020-11-20 18:26 ` [PATCH 015/141] netfilter: " Gustavo A. R. Silva
@ 2020-11-20 18:26 ` Gustavo A. R. Silva
  2020-11-20 18:50   ` [EXT] " Igor Russkikh
  2020-11-20 18:27 ` [PATCH 019/141] qlcnic: " Gustavo A. R. Silva
                   ` (51 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:26 UTC (permalink / raw)
  To: Ariel Elior, David S. Miller, Jakub Kicinski
  Cc: GR-everest-linux-l2, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding a couple of break statements instead of
just letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/qlogic/qed/qed_l2.c    | 1 +
 drivers/net/ethernet/qlogic/qed/qed_sriov.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c
index 07824bf9d68d..dfaf10edfabf 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_l2.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c
@@ -396,6 +396,7 @@ int qed_sp_eth_vport_start(struct qed_hwfn *p_hwfn,
 		tpa_param->tpa_ipv6_en_flg = 1;
 		tpa_param->tpa_pkt_split_flg = 1;
 		tpa_param->tpa_gro_consistent_flg = 1;
+		break;
 	default:
 		break;
 	}
diff --git a/drivers/net/ethernet/qlogic/qed/qed_sriov.c b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
index b8dc5c4591ef..ed2b6fe5a78d 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_sriov.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_sriov.c
@@ -4734,6 +4734,7 @@ void qed_inform_vf_link_state(struct qed_hwfn *hwfn)
 			 */
 			link.speed = (hwfn->cdev->num_hwfns > 1) ?
 				     100000 : 40000;
+			break;
 		default:
 			/* In auto mode pass PF link image to VF */
 			break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 019/141] qlcnic: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (4 preceding siblings ...)
  2020-11-20 18:26 ` [PATCH 018/141] qed: " Gustavo A. R. Silva
@ 2020-11-20 18:27 ` Gustavo A. R. Silva
  2020-11-20 18:27 ` [PATCH 025/141] bnxt_en: " Gustavo A. R. Silva
                   ` (50 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:27 UTC (permalink / raw)
  To: Shahed Shaikh, Manish Chopra, David S. Miller, Jakub Kicinski
  Cc: GR-Linux-NIC-Dev, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding a break and a goto statements instead of
just letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c   | 1 +
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
index bdf15d2a6431..af4c516a9e7c 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
@@ -1390,6 +1390,7 @@ static int qlcnic_process_rcv_ring(struct qlcnic_host_sds_ring *sds_ring, int ma
 			break;
 		case QLCNIC_RESPONSE_DESC:
 			qlcnic_handle_fw_message(desc_cnt, consumer, sds_ring);
+			goto skip;
 		default:
 			goto skip;
 		}
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 5a7e240fd469..3abbd22e2ed3 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -3456,6 +3456,7 @@ qlcnic_fwinit_work(struct work_struct *work)
 			adapter->fw_wait_cnt = 0;
 			return;
 		}
+		break;
 	case QLCNIC_DEV_FAILED:
 		break;
 	default:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 025/141] bnxt_en: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (5 preceding siblings ...)
  2020-11-20 18:27 ` [PATCH 019/141] qlcnic: " Gustavo A. R. Silva
@ 2020-11-20 18:27 ` Gustavo A. R. Silva
  2020-11-20 18:28 ` [PATCH 029/141] e1000: " Gustavo A. R. Silva
                   ` (49 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:27 UTC (permalink / raw)
  To: Michael Chan, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 7975f59735d6..b593237915e3 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -2137,6 +2137,7 @@ static int bnxt_hwrm_handler(struct bnxt *bp, struct tx_cmp *txcmp)
 	case CMPL_BASE_TYPE_HWRM_ASYNC_EVENT:
 		bnxt_async_event_process(bp,
 					 (struct hwrm_async_event_cmpl *)txcmp);
+		break;
 
 	default:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 029/141] e1000: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (6 preceding siblings ...)
  2020-11-20 18:27 ` [PATCH 025/141] bnxt_en: " Gustavo A. R. Silva
@ 2020-11-20 18:28 ` Gustavo A. R. Silva
  2020-11-20 18:28 ` [PATCH 033/141] fm10k: " Gustavo A. R. Silva
                   ` (48 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:28 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: intel-wired-lan, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/intel/e1000/e1000_hw.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_hw.c b/drivers/net/ethernet/intel/e1000/e1000_hw.c
index 4c0c9433bd60..19cf36360933 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_hw.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_hw.c
@@ -1183,6 +1183,7 @@ static s32 e1000_copper_link_igp_setup(struct e1000_hw *hw)
 			break;
 		case e1000_ms_auto:
 			phy_data &= ~CR_1000T_MS_ENABLE;
+			break;
 		default:
 			break;
 		}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 033/141] fm10k: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (7 preceding siblings ...)
  2020-11-20 18:28 ` [PATCH 029/141] e1000: " Gustavo A. R. Silva
@ 2020-11-20 18:28 ` Gustavo A. R. Silva
  2020-11-20 18:28 ` [PATCH 000/141] " Joe Perches
                   ` (47 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:28 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: intel-wired-lan, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding a couple of break statements instead of
just letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/intel/fm10k/fm10k_mbx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_mbx.c b/drivers/net/ethernet/intel/fm10k/fm10k_mbx.c
index 8e2e92bf3cd4..3e970e20695d 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_mbx.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_mbx.c
@@ -1039,6 +1039,7 @@ static s32 fm10k_mbx_create_reply(struct fm10k_hw *hw,
 	case FM10K_STATE_CLOSED:
 		/* generate new header based on data */
 		fm10k_mbx_create_disconnect_hdr(mbx);
+		break;
 	default:
 		break;
 	}
@@ -2017,6 +2018,7 @@ static s32 fm10k_sm_mbx_process_reset(struct fm10k_hw *hw,
 	case FM10K_STATE_CONNECT:
 		/* Update remote value to match local value */
 		mbx->remote = mbx->local;
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (8 preceding siblings ...)
  2020-11-20 18:28 ` [PATCH 033/141] fm10k: " Gustavo A. R. Silva
@ 2020-11-20 18:28 ` Joe Perches
  2020-11-20 19:02   ` Gustavo A. R. Silva
  2020-11-20 18:29 ` [PATCH 036/141] ice: " Gustavo A. R. Silva
                   ` (46 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Joe Perches @ 2020-11-20 18:28 UTC (permalink / raw)
  To: Gustavo A. R. Silva, linux-kernel
  Cc: alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, linux-arm-kernel,
	linux-arm-msm, linux-atm-general, linux-block, linux-can,
	linux-cifs, linux-crypto, linux-decnet-user, linux-ext4,
	linux-fbdev, linux-geode, linux-gpio, linux-hams, linux-hwmon,
	linux-i3c, linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, linux-media, linux-mmc, linux-mm, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Kees Cook

On Fri, 2020-11-20 at 12:21 -0600, Gustavo A. R. Silva wrote:
> Hi all,
> 
> This series aims to fix almost all remaining fall-through warnings in
> order to enable -Wimplicit-fallthrough for Clang.
> 
> In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> add multiple break/goto/return/fallthrough statements instead of just
> letting the code fall through to the next case.
> 
> Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> change[1] is meant to be reverted at some point. So, this patch helps
> to move in that direction.

This was a bit hard to parse for a second or three.

Thanks Gustavo.

How was this change done?



^ permalink raw reply	[flat|nested] 150+ messages in thread

* [PATCH 036/141] ice: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (9 preceding siblings ...)
  2020-11-20 18:28 ` [PATCH 000/141] " Joe Perches
@ 2020-11-20 18:29 ` Gustavo A. R. Silva
  2020-11-20 18:30 ` [PATCH 039/141] ixgbevf: " Gustavo A. R. Silva
                   ` (45 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:29 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: intel-wired-lan, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
index bc2f4390b51d..c7b47ad36416 100644
--- a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c
@@ -143,6 +143,7 @@ ice_rx_csum(struct ice_ring *ring, struct sk_buff *skb,
 	case ICE_RX_PTYPE_INNER_PROT_UDP:
 	case ICE_RX_PTYPE_INNER_PROT_SCTP:
 		skb->ip_summed = CHECKSUM_UNNECESSARY;
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 039/141] ixgbevf: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (10 preceding siblings ...)
  2020-11-20 18:29 ` [PATCH 036/141] ice: " Gustavo A. R. Silva
@ 2020-11-20 18:30 ` Gustavo A. R. Silva
  2020-11-20 18:30 ` [PATCH 042/141] net: 3c509: " Gustavo A. R. Silva
                   ` (44 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:30 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: intel-wired-lan, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 82fce27f682b..afab78c51be0 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -2639,6 +2639,7 @@ static void ixgbevf_set_num_queues(struct ixgbevf_adapter *adapter)
 			adapter->num_rx_queues = rss;
 			adapter->num_tx_queues = rss;
 			adapter->num_xdp_queues = adapter->xdp_prog ? rss : 0;
+			break;
 		default:
 			break;
 		}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 042/141] net: 3c509: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (11 preceding siblings ...)
  2020-11-20 18:30 ` [PATCH 039/141] ixgbevf: " Gustavo A. R. Silva
@ 2020-11-20 18:30 ` Gustavo A. R. Silva
  2021-03-04 22:50   ` Gustavo A. R. Silva
  2020-11-20 18:31 ` [PATCH 043/141] net: cassini: " Gustavo A. R. Silva
                   ` (43 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:30 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/3com/3c509.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c
index 667f38c9e4c6..676cdc6900b5 100644
--- a/drivers/net/ethernet/3com/3c509.c
+++ b/drivers/net/ethernet/3com/3c509.c
@@ -1052,6 +1052,7 @@ el3_netdev_get_ecmd(struct net_device *dev, struct ethtool_link_ksettings *cmd)
 		break;
 	case 3:
 		cmd->base.port = PORT_BNC;
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 043/141] net: cassini: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (12 preceding siblings ...)
  2020-11-20 18:30 ` [PATCH 042/141] net: 3c509: " Gustavo A. R. Silva
@ 2020-11-20 18:31 ` Gustavo A. R. Silva
  2021-03-04 22:52   ` Gustavo A. R. Silva
  2020-11-20 18:31 ` [PATCH 044/141] net/mlx4: " Gustavo A. R. Silva
                   ` (42 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:31 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/sun/cassini.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index 9ff894ba8d3e..54f45d8c79a7 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -1599,6 +1599,7 @@ static inline int cas_mdio_link_not_up(struct cas *cp)
 			cas_phy_write(cp, MII_BMCR, val);
 			break;
 		}
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 044/141] net/mlx4: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (13 preceding siblings ...)
  2020-11-20 18:31 ` [PATCH 043/141] net: cassini: " Gustavo A. R. Silva
@ 2020-11-20 18:31 ` Gustavo A. R. Silva
  2020-11-22  8:36   ` Tariq Toukan
  2020-11-20 18:31 ` [PATCH 045/141] net: mscc: ocelot: " Gustavo A. R. Silva
                   ` (41 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:31 UTC (permalink / raw)
  To: Tariq Toukan, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-rdma, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
index 1187ef1375e2..e6b8b8dc7894 100644
--- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
+++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
@@ -2660,6 +2660,7 @@ int mlx4_FREE_RES_wrapper(struct mlx4_dev *dev, int slave,
 	case RES_XRCD:
 		err = xrcdn_free_res(dev, slave, vhcr->op_modifier, alop,
 				     vhcr->in_param, &vhcr->out_param);
+		break;
 
 	default:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 045/141] net: mscc: ocelot: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (14 preceding siblings ...)
  2020-11-20 18:31 ` [PATCH 044/141] net/mlx4: " Gustavo A. R. Silva
@ 2020-11-20 18:31 ` Gustavo A. R. Silva
  2021-03-04 22:53   ` Gustavo A. R. Silva
  2020-11-20 18:31 ` [PATCH 046/141] netxen_nic: " Gustavo A. R. Silva
                   ` (40 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:31 UTC (permalink / raw)
  To: Microchip Linux Driver Support, Vladimir Oltean, Claudiu Manoil,
	Alexandre Belloni, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/mscc/ocelot_vcap.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/mscc/ocelot_vcap.c b/drivers/net/ethernet/mscc/ocelot_vcap.c
index d8c778ee6f1b..8f3ed81b9a08 100644
--- a/drivers/net/ethernet/mscc/ocelot_vcap.c
+++ b/drivers/net/ethernet/mscc/ocelot_vcap.c
@@ -761,6 +761,7 @@ static void is1_entry_set(struct ocelot *ocelot, int ix,
 			vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_ETYPE,
 					   etype.value, etype.mask);
 		}
+		break;
 	}
 	default:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 046/141] netxen_nic: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (15 preceding siblings ...)
  2020-11-20 18:31 ` [PATCH 045/141] net: mscc: ocelot: " Gustavo A. R. Silva
@ 2020-11-20 18:31 ` Gustavo A. R. Silva
  2020-11-20 18:31 ` [PATCH 047/141] nfp: " Gustavo A. R. Silva
                   ` (39 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:31 UTC (permalink / raw)
  To: Manish Chopra, Rahul Verma, David S. Miller, Jakub Kicinski
  Cc: GR-Linux-NIC-Dev, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a goto statement instead of just letting the code
fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
index 94546ed5f867..2cd089cca622 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
@@ -1686,6 +1686,7 @@ netxen_process_rcv_ring(struct nx_host_sds_ring *sds_ring, int max)
 			break;
 		case NETXEN_NIC_RESPONSE_DESC:
 			netxen_handle_fw_message(desc_cnt, consumer, sds_ring);
+			goto skip;
 		default:
 			goto skip;
 		}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 047/141] nfp: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (16 preceding siblings ...)
  2020-11-20 18:31 ` [PATCH 046/141] netxen_nic: " Gustavo A. R. Silva
@ 2020-11-20 18:31 ` Gustavo A. R. Silva
  2020-11-20 18:32 ` [PATCH 056/141] vxge: " Gustavo A. R. Silva
                   ` (38 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:31 UTC (permalink / raw)
  To: Simon Horman, Jakub Kicinski, David S. Miller
  Cc: oss-drivers, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
index b3cabc274121..3b8e675087de 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
@@ -103,6 +103,7 @@ nfp_repr_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
 	case NFP_PORT_PF_PORT:
 	case NFP_PORT_VF_PORT:
 		nfp_repr_vnic_get_stats64(repr->port, stats);
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 056/141] vxge: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (17 preceding siblings ...)
  2020-11-20 18:31 ` [PATCH 047/141] nfp: " Gustavo A. R. Silva
@ 2020-11-20 18:32 ` Gustavo A. R. Silva
  2020-11-20 18:33 ` [PATCH 065/141] airo: " Gustavo A. R. Silva
                   ` (37 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:32 UTC (permalink / raw)
  To: Jon Mason, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a return statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/ethernet/neterion/vxge/vxge-config.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c
index f5d48d7c4ce2..34c10ee086eb 100644
--- a/drivers/net/ethernet/neterion/vxge/vxge-config.c
+++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c
@@ -3784,6 +3784,7 @@ vxge_hw_rts_rth_data0_data1_get(u32 j, u64 *data0, u64 *data1,
 			VXGE_HW_RTS_ACCESS_STEER_DATA1_RTH_ITEM1_ENTRY_EN |
 			VXGE_HW_RTS_ACCESS_STEER_DATA1_RTH_ITEM1_BUCKET_DATA(
 			itable[j]);
+		return;
 	default:
 		return;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 065/141] airo: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (18 preceding siblings ...)
  2020-11-20 18:32 ` [PATCH 056/141] vxge: " Gustavo A. R. Silva
@ 2020-11-20 18:33 ` Gustavo A. R. Silva
  2020-12-08  8:08   ` Kalle Valo
  2020-11-20 18:34 ` [PATCH 069/141] ath5k: " Gustavo A. R. Silva
                   ` (36 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:33 UTC (permalink / raw)
  To: Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/cisco/airo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/cisco/airo.c b/drivers/net/wireless/cisco/airo.c
index 87b9398b03fd..41a41e18b956 100644
--- a/drivers/net/wireless/cisco/airo.c
+++ b/drivers/net/wireless/cisco/airo.c
@@ -7067,6 +7067,7 @@ static int airo_set_power(struct net_device *dev,
 			local->config.rmode &= ~RXMODE_MASK;
 			local->config.rmode |= RXMODE_BC_MC_ADDR;
 			set_bit (FLAG_COMMIT, &local->flags);
+			break;
 		case IW_POWER_ON:
 			/* This is broken, fixme ;-) */
 			break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 069/141] ath5k: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (19 preceding siblings ...)
  2020-11-20 18:33 ` [PATCH 065/141] airo: " Gustavo A. R. Silva
@ 2020-11-20 18:34 ` Gustavo A. R. Silva
  2020-12-09  7:03   ` Kalle Valo
  2020-11-20 18:34 ` [PATCH 070/141] atm: fore200e: " Gustavo A. R. Silva
                   ` (35 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:34 UTC (permalink / raw)
  To: Jiri Slaby, Nick Kossifidis, Luis Chamberlain, Kalle Valo,
	David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/ath/ath5k/mac80211-ops.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/ath5k/mac80211-ops.c b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
index 5e866a193ed0..8f2719ff463c 100644
--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
@@ -433,6 +433,7 @@ ath5k_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags,
 	case NL80211_IFTYPE_STATION:
 		if (ah->assoc)
 			rfilt |= AR5K_RX_FILTER_BEACON;
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 070/141] atm: fore200e: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (20 preceding siblings ...)
  2020-11-20 18:34 ` [PATCH 069/141] ath5k: " Gustavo A. R. Silva
@ 2020-11-20 18:34 ` Gustavo A. R. Silva
  2021-04-20 20:17   ` Gustavo A. R. Silva
  2020-11-20 18:34 ` [PATCH 072/141] can: peak_usb: " Gustavo A. R. Silva
                   ` (34 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:34 UTC (permalink / raw)
  To: Chas Williams
  Cc: linux-atm-general, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a fallthrough pseudo-keyword.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/atm/fore200e.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 9a70bee84125..ba3ed1b77bc5 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -423,6 +423,7 @@ fore200e_shutdown(struct fore200e* fore200e)
 	/* XXX shouldn't we *start* by deregistering the device? */
 	atm_dev_deregister(fore200e->atm_dev);
 
+	fallthrough;
     case FORE200E_STATE_BLANK:
 	/* nothing to do for that state */
 	break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 072/141] can: peak_usb: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (21 preceding siblings ...)
  2020-11-20 18:34 ` [PATCH 070/141] atm: fore200e: " Gustavo A. R. Silva
@ 2020-11-20 18:34 ` Gustavo A. R. Silva
  2020-11-21 13:17   ` Marc Kleine-Budde
  2020-11-20 18:34 ` [PATCH 073/141] carl9170: " Gustavo A. R. Silva
                   ` (33 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:34 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, David S. Miller, Jakub Kicinski
  Cc: linux-can, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/can/usb/peak_usb/pcan_usb_core.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
index c2764799f9ef..fd65a155be3b 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_core.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
@@ -299,6 +299,8 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
 		if (net_ratelimit())
 			netdev_err(netdev, "Tx urb aborted (%d)\n",
 				   urb->status);
+		break;
+
 	case -EPROTO:
 	case -ENOENT:
 	case -ECONNRESET:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 073/141] carl9170: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (22 preceding siblings ...)
  2020-11-20 18:34 ` [PATCH 072/141] can: peak_usb: " Gustavo A. R. Silva
@ 2020-11-20 18:34 ` Gustavo A. R. Silva
  2020-11-20 18:34 ` [PATCH 074/141] cfg80211: " Gustavo A. R. Silva
                   ` (32 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:34 UTC (permalink / raw)
  To: Christian Lamparter, Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/ath/carl9170/tx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c
index 235cf77cd60c..6b8446ff48c8 100644
--- a/drivers/net/wireless/ath/carl9170/tx.c
+++ b/drivers/net/wireless/ath/carl9170/tx.c
@@ -840,6 +840,7 @@ static bool carl9170_tx_rts_check(struct ar9170 *ar,
 	case CARL9170_ERP_RTS:
 		if (likely(!multi))
 			return true;
+		break;
 
 	default:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 074/141] cfg80211: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (23 preceding siblings ...)
  2020-11-20 18:34 ` [PATCH 073/141] carl9170: " Gustavo A. R. Silva
@ 2020-11-20 18:34 ` Gustavo A. R. Silva
  2020-11-20 18:35 ` [PATCH 076/141] decnet: " Gustavo A. R. Silva
                   ` (31 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:34 UTC (permalink / raw)
  To: Johannes Berg, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/wireless/util.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/wireless/util.c b/net/wireless/util.c
index f01746894a4e..623a4dfb9877 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -335,6 +335,7 @@ int cfg80211_validate_key_settings(struct cfg80211_registered_device *rdev,
 	case WLAN_CIPHER_SUITE_WEP104:
 		if (key_idx > 3)
 			return -EINVAL;
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 076/141] decnet: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (24 preceding siblings ...)
  2020-11-20 18:34 ` [PATCH 074/141] cfg80211: " Gustavo A. R. Silva
@ 2020-11-20 18:35 ` Gustavo A. R. Silva
  2021-03-04 22:54   ` Gustavo A. R. Silva
  2020-11-20 18:36 ` [PATCH 091/141] iwlwifi: iwl-drv: " Gustavo A. R. Silva
                   ` (30 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:35 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: linux-decnet-user, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/decnet/dn_route.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c
index 4cac31d22a50..2f3e5c49a221 100644
--- a/net/decnet/dn_route.c
+++ b/net/decnet/dn_route.c
@@ -1407,7 +1407,7 @@ static int dn_route_input_slow(struct sk_buff *skb)
 			flags |= RTCF_DOREDIRECT;
 
 		local_src = DN_FIB_RES_PREFSRC(res);
-
+		break;
 	case RTN_BLACKHOLE:
 	case RTN_UNREACHABLE:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 091/141] iwlwifi: iwl-drv: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (25 preceding siblings ...)
  2020-11-20 18:35 ` [PATCH 076/141] decnet: " Gustavo A. R. Silva
@ 2020-11-20 18:36 ` Gustavo A. R. Silva
  2020-12-11 18:22   ` Kalle Valo
  2020-11-20 18:36 ` [PATCH 093/141] mac80211: " Gustavo A. R. Silva
                   ` (29 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:36 UTC (permalink / raw)
  To: Johannes Berg, Emmanuel Grumbach, Luca Coelho,
	Intel Linux Wireless, Kalle Valo, David S. Miller,
	Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a
warning by replacing a /* fall through */ comment with the new
pseudo-keyword macro fallthrough; instead of letting the code fall
through to the next case.

Notice that Clang doesn't recognize /* fall through */ comments as
implicit fall-through markings.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index 9dcd2e990c9c..6a9be73d7661 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -1579,7 +1579,7 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
 		break;
 	default:
 		WARN(1, "Invalid fw type %d\n", fw->type);
-		/* fall through */
+		fallthrough;
 	case IWL_FW_MVM:
 		op = &iwlwifi_opmode_table[MVM_OP_MODE];
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 093/141] mac80211: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (26 preceding siblings ...)
  2020-11-20 18:36 ` [PATCH 091/141] iwlwifi: iwl-drv: " Gustavo A. R. Silva
@ 2020-11-20 18:36 ` Gustavo A. R. Silva
  2020-11-20 18:37 ` [PATCH 099/141] mt76: mt7615: " Gustavo A. R. Silva
                   ` (28 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:36 UTC (permalink / raw)
  To: Johannes Berg, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/mac80211/cfg.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 7276e66ae435..1d1a4f3c8d66 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -405,6 +405,7 @@ static int ieee80211_add_key(struct wiphy *wiphy, struct net_device *dev,
 	case WLAN_CIPHER_SUITE_WEP104:
 		if (WARN_ON_ONCE(fips_enabled))
 			return -EINVAL;
+		break;
 	case WLAN_CIPHER_SUITE_CCMP:
 	case WLAN_CIPHER_SUITE_CCMP_256:
 	case WLAN_CIPHER_SUITE_AES_CMAC:
@@ -3307,6 +3308,7 @@ static int ieee80211_set_csa_beacon(struct ieee80211_sub_if_data *sdata,
 			if (cfg80211_get_chandef_type(&params->chandef) !=
 			    cfg80211_get_chandef_type(&sdata->u.ibss.chandef))
 				return -EINVAL;
+			break;
 		case NL80211_CHAN_WIDTH_5:
 		case NL80211_CHAN_WIDTH_10:
 		case NL80211_CHAN_WIDTH_20_NOHT:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 099/141] mt76: mt7615: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (27 preceding siblings ...)
  2020-11-20 18:36 ` [PATCH 093/141] mac80211: " Gustavo A. R. Silva
@ 2020-11-20 18:37 ` Gustavo A. R. Silva
  2020-11-20 18:37 ` [PATCH 105/141] net: ax25: " Gustavo A. R. Silva
                   ` (27 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:37 UTC (permalink / raw)
  To: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Kalle Valo,
	David S. Miller, Jakub Kicinski, Matthias Brugger
  Cc: linux-wireless, netdev, linux-arm-kernel, linux-mediatek,
	linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a
warning by replacing a /* fall through */ comment with the new
pseudo-keyword macro fallthrough; instead of letting the code fall
through to the next case.

Notice that Clang doesn't recognize /* fall through */ comments as
implicit fall-through markings.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
index f4756bb946c3..9a9685e5ab84 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
@@ -127,7 +127,7 @@ mt7615_eeprom_parse_hw_band_cap(struct mt7615_dev *dev)
 		break;
 	case MT_EE_DBDC:
 		dev->dbdc_support = true;
-		/* fall through */
+		fallthrough;
 	default:
 		dev->mt76.cap.has_2ghz = true;
 		dev->mt76.cap.has_5ghz = true;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 105/141] net: ax25: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (28 preceding siblings ...)
  2020-11-20 18:37 ` [PATCH 099/141] mt76: mt7615: " Gustavo A. R. Silva
@ 2020-11-20 18:37 ` Gustavo A. R. Silva
  2021-03-04 22:54   ` Gustavo A. R. Silva
  2020-11-20 18:37 ` [PATCH 106/141] net: bridge: " Gustavo A. R. Silva
                   ` (26 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:37 UTC (permalink / raw)
  To: Joerg Reuter, Ralf Baechle, David S. Miller, Jakub Kicinski
  Cc: linux-hams, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/ax25/af_ax25.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 269ee89d2c2b..2631efc6e359 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -850,6 +850,7 @@ static int ax25_create(struct net *net, struct socket *sock, int protocol,
 		case AX25_P_ROSE:
 			if (ax25_protocol_is_registered(AX25_P_ROSE))
 				return -ESOCKTNOSUPPORT;
+			break;
 #endif
 		default:
 			break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 106/141] net: bridge: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (29 preceding siblings ...)
  2020-11-20 18:37 ` [PATCH 105/141] net: ax25: " Gustavo A. R. Silva
@ 2020-11-20 18:37 ` Gustavo A. R. Silva
  2021-02-02 14:16   ` Nikolay Aleksandrov
  2020-11-20 18:38 ` [PATCH 107/141] net: core: " Gustavo A. R. Silva
                   ` (25 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:37 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Jakub Kicinski
  Cc: bridge, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/bridge/br_input.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 59a318b9f646..8db219d979c5 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -148,6 +148,7 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb
 		break;
 	case BR_PKT_UNICAST:
 		dst = br_fdb_find_rcu(br, eth_hdr(skb)->h_dest, vid);
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 107/141] net: core: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (30 preceding siblings ...)
  2020-11-20 18:37 ` [PATCH 106/141] net: bridge: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2021-03-04 22:56   ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 108/141] netfilter: ipt_REJECT: " Gustavo A. R. Silva
                   ` (24 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/core/dev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/core/dev.c b/net/core/dev.c
index 82dc6b48e45f..9efb03ce504d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5214,6 +5214,7 @@ static int __netif_receive_skb_core(struct sk_buff **pskb, bool pfmemalloc,
 			goto another_round;
 		case RX_HANDLER_EXACT:
 			deliver_exact = true;
+			break;
 		case RX_HANDLER_PASS:
 			break;
 		default:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 108/141] netfilter: ipt_REJECT: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (31 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 107/141] net: core: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-20 22:49   ` Florian Westphal
  2020-11-20 18:38 ` [PATCH 109/141] net: netrom: " Gustavo A. R. Silva
                   ` (23 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
	David S. Miller, Alexey Kuznetsov, Hideaki YOSHIFUJI,
	Jakub Kicinski
  Cc: netfilter-devel, coreteam, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/ipv4/netfilter/ipt_REJECT.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/ipv4/netfilter/ipt_REJECT.c b/net/ipv4/netfilter/ipt_REJECT.c
index e16b98ee6266..7dbb10bbd0f5 100644
--- a/net/ipv4/netfilter/ipt_REJECT.c
+++ b/net/ipv4/netfilter/ipt_REJECT.c
@@ -57,6 +57,7 @@ reject_tg(struct sk_buff *skb, const struct xt_action_param *par)
 		break;
 	case IPT_TCP_RESET:
 		nf_send_reset(xt_net(par), skb, hook);
+		break;
 	case IPT_ICMP_ECHOREPLY:
 		/* Doesn't happen. */
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 109/141] net: netrom: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (32 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 108/141] netfilter: ipt_REJECT: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-30 12:51   ` Dan Carpenter
  2020-11-20 18:38 ` [PATCH 110/141] net/packet: " Gustavo A. R. Silva
                   ` (22 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Ralf Baechle, David S. Miller, Jakub Kicinski
  Cc: linux-hams, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/netrom/nr_route.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c
index 78da5eab252a..de0456073dc0 100644
--- a/net/netrom/nr_route.c
+++ b/net/netrom/nr_route.c
@@ -266,6 +266,7 @@ static int __must_check nr_add_node(ax25_address *nr, const char *mnemonic,
 		fallthrough;
 	case 2:
 		re_sort_routes(nr_node, 0, 1);
+		break;
 	case 1:
 		break;
 	}
@@ -359,6 +360,7 @@ static int nr_del_node(ax25_address *callsign, ax25_address *neighbour, struct n
 					fallthrough;
 				case 1:
 					nr_node->routes[1] = nr_node->routes[2];
+					fallthrough;
 				case 2:
 					break;
 				}
@@ -482,6 +484,7 @@ static int nr_dec_obs(void)
 					fallthrough;
 				case 1:
 					s->routes[1] = s->routes[2];
+					break;
 				case 2:
 					break;
 				}
@@ -529,6 +532,7 @@ void nr_rt_device_down(struct net_device *dev)
 							fallthrough;
 						case 1:
 							t->routes[1] = t->routes[2];
+							break;
 						case 2:
 							break;
 						}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 110/141] net/packet: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (33 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 109/141] net: netrom: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 111/141] net: plip: " Gustavo A. R. Silva
                   ` (21 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/packet/af_packet.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index cefbd50c1090..217d44ab3325 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1649,6 +1649,7 @@ static int fanout_add(struct sock *sk, u16 id, u16 type_flags)
 	case PACKET_FANOUT_ROLLOVER:
 		if (type_flags & PACKET_FANOUT_FLAG_ROLLOVER)
 			return -EINVAL;
+		break;
 	case PACKET_FANOUT_HASH:
 	case PACKET_FANOUT_LB:
 	case PACKET_FANOUT_CPU:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 111/141] net: plip: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (34 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 110/141] net/packet: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2021-03-04 23:00   ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 112/141] net: rose: " Gustavo A. R. Silva
                   ` (20 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/plip/plip.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/plip/plip.c b/drivers/net/plip/plip.c
index 4406b353123e..e26cf91bdec2 100644
--- a/drivers/net/plip/plip.c
+++ b/drivers/net/plip/plip.c
@@ -516,6 +516,7 @@ plip_receive(unsigned short nibble_timeout, struct net_device *dev,
 		*data_p |= (c0 << 1) & 0xf0;
 		write_data (dev, 0x00); /* send ACK */
 		*ns_p = PLIP_NB_BEGIN;
+		break;
 	case PLIP_NB_2:
 		break;
 	}
@@ -808,6 +809,7 @@ plip_send_packet(struct net_device *dev, struct net_local *nl,
 				return HS_TIMEOUT;
 			}
 		}
+		break;
 
 	case PLIP_PK_LENGTH_LSB:
 		if (plip_send(nibble_timeout, dev,
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 112/141] net: rose: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (35 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 111/141] net: plip: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2021-03-04 23:00   ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 113/141] nl80211: " Gustavo A. R. Silva
                   ` (19 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Ralf Baechle, David S. Miller, Jakub Kicinski
  Cc: linux-hams, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/rose/rose_route.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c
index 6e35703ff353..c0e04c261a15 100644
--- a/net/rose/rose_route.c
+++ b/net/rose/rose_route.c
@@ -347,6 +347,7 @@ static int rose_del_node(struct rose_route_struct *rose_route,
 				case 1:
 					rose_node->neighbour[1] =
 						rose_node->neighbour[2];
+					break;
 				case 2:
 					break;
 				}
@@ -508,6 +509,7 @@ void rose_rt_device_down(struct net_device *dev)
 					fallthrough;
 				case 1:
 					t->neighbour[1] = t->neighbour[2];
+					break;
 				case 2:
 					break;
 				}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 113/141] nl80211: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (36 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 112/141] net: rose: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 115/141] rds: " Gustavo A. R. Silva
                   ` (18 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Johannes Berg, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/wireless/nl80211.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index a77174b99b07..132540a9ac4a 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -11165,6 +11165,7 @@ static int nl80211_tx_mgmt(struct sk_buff *skb, struct genl_info *info)
 	case NL80211_IFTYPE_P2P_DEVICE:
 		if (!info->attrs[NL80211_ATTR_WIPHY_FREQ])
 			return -EINVAL;
+		break;
 	case NL80211_IFTYPE_STATION:
 	case NL80211_IFTYPE_ADHOC:
 	case NL80211_IFTYPE_P2P_CLIENT:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 115/141] rds: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (37 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 113/141] nl80211: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 116/141] rt2x00: " Gustavo A. R. Silva
                   ` (17 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Santosh Shilimkar, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-rdma, rds-devel, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/rds/tcp_connect.c | 1 +
 net/rds/threads.c     | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/net/rds/tcp_connect.c b/net/rds/tcp_connect.c
index 4e64598176b0..5461d77fff4f 100644
--- a/net/rds/tcp_connect.c
+++ b/net/rds/tcp_connect.c
@@ -78,6 +78,7 @@ void rds_tcp_state_change(struct sock *sk)
 	case TCP_CLOSE_WAIT:
 	case TCP_CLOSE:
 		rds_conn_path_drop(cp, false);
+		break;
 	default:
 		break;
 	}
diff --git a/net/rds/threads.c b/net/rds/threads.c
index 32dc50f0a303..1f424cbfcbb4 100644
--- a/net/rds/threads.c
+++ b/net/rds/threads.c
@@ -208,6 +208,7 @@ void rds_send_worker(struct work_struct *work)
 		case -ENOMEM:
 			rds_stats_inc(s_send_delayed_retry);
 			queue_delayed_work(rds_wq, &cp->cp_send_w, 2);
+			break;
 		default:
 			break;
 		}
@@ -232,6 +233,7 @@ void rds_recv_worker(struct work_struct *work)
 		case -ENOMEM:
 			rds_stats_inc(s_recv_delayed_retry);
 			queue_delayed_work(rds_wq, &cp->cp_recv_w, 2);
+			break;
 		default:
 			break;
 		}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 116/141] rt2x00: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (38 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 115/141] rds: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-20 18:38 ` [PATCH 117/141] rtl8xxxu: " Gustavo A. R. Silva
                   ` (16 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Stanislaw Gruszka, Helmut Schaa, Kalle Valo, David S. Miller,
	Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
index 3b6100e6c8f6..d4d389e8f1b4 100644
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00queue.c
@@ -941,6 +941,7 @@ void rt2x00queue_unpause_queue(struct data_queue *queue)
 		 * receive frames.
 		 */
 		queue->rt2x00dev->ops->lib->kick_queue(queue);
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 117/141] rtl8xxxu: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (39 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 116/141] rt2x00: " Gustavo A. R. Silva
@ 2020-11-20 18:38 ` Gustavo A. R. Silva
  2020-11-20 21:39   ` Jes Sorensen
  2020-11-20 18:39 ` [PATCH 118/141] rtw88: " Gustavo A. R. Silva
                   ` (15 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:38 UTC (permalink / raw)
  To: Jes Sorensen, Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix
multiple warnings by replacing /* fall through */ comments with
the new pseudo-keyword macro fallthrough; instead of letting the
code fall through to the next case.

Notice that Clang doesn't recognize /* fall through */ comments as
implicit fall-through markings.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
index 5cd7ef3625c5..afc97958fa4d 100644
--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
@@ -1145,7 +1145,7 @@ void rtl8xxxu_gen1_config_channel(struct ieee80211_hw *hw)
 	switch (hw->conf.chandef.width) {
 	case NL80211_CHAN_WIDTH_20_NOHT:
 		ht = false;
-		/* fall through */
+		fallthrough;
 	case NL80211_CHAN_WIDTH_20:
 		opmode |= BW_OPMODE_20MHZ;
 		rtl8xxxu_write8(priv, REG_BW_OPMODE, opmode);
@@ -1272,7 +1272,7 @@ void rtl8xxxu_gen2_config_channel(struct ieee80211_hw *hw)
 	switch (hw->conf.chandef.width) {
 	case NL80211_CHAN_WIDTH_20_NOHT:
 		ht = false;
-		/* fall through */
+		fallthrough;
 	case NL80211_CHAN_WIDTH_20:
 		rf_mode_bw |= WMAC_TRXPTCL_CTL_BW_20;
 		subchannel = 0;
@@ -1741,11 +1741,11 @@ static int rtl8xxxu_identify_chip(struct rtl8xxxu_priv *priv)
 		case 3:
 			priv->ep_tx_low_queue = 1;
 			priv->ep_tx_count++;
-			/* fall through */
+			fallthrough;
 		case 2:
 			priv->ep_tx_normal_queue = 1;
 			priv->ep_tx_count++;
-			/* fall through */
+			fallthrough;
 		case 1:
 			priv->ep_tx_high_queue = 1;
 			priv->ep_tx_count++;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 118/141] rtw88: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (40 preceding siblings ...)
  2020-11-20 18:38 ` [PATCH 117/141] rtl8xxxu: " Gustavo A. R. Silva
@ 2020-11-20 18:39 ` Gustavo A. R. Silva
  2020-11-20 18:39 ` [PATCH 119/141] rxrpc: " Gustavo A. R. Silva
                   ` (14 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:39 UTC (permalink / raw)
  To: Yan-Hsuan Chuang, Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a
warning by replacing a /* fall through */ comment with the new
pseudo-keyword macro fallthrough; instead of letting the code fall
through to the next case.

Notice that Clang doesn't recognize /* fall through */ comments as
implicit fall-through markings.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/realtek/rtw88/fw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c
index 042015bc8055..e2d4bb180afd 100644
--- a/drivers/net/wireless/realtek/rtw88/fw.c
+++ b/drivers/net/wireless/realtek/rtw88/fw.c
@@ -1473,7 +1473,7 @@ static bool rtw_fw_dump_check_size(struct rtw_dev *rtwdev,
 	case RTW_FW_FIFO_SEL_RX:
 		if ((start_addr + size) > rtwdev->chip->fw_fifo_addr[sel])
 			return false;
-		/*fall through*/
+		fallthrough;
 	default:
 		return true;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 119/141] rxrpc: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (41 preceding siblings ...)
  2020-11-20 18:39 ` [PATCH 118/141] rtw88: " Gustavo A. R. Silva
@ 2020-11-20 18:39 ` Gustavo A. R. Silva
  2020-11-20 18:39 ` [PATCH 125/141] sctp: " Gustavo A. R. Silva
                   ` (13 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:39 UTC (permalink / raw)
  To: David Howells, David S. Miller, Jakub Kicinski
  Cc: linux-afs, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/rxrpc/af_rxrpc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c
index 0a2f4817ec6c..aa43191dbb09 100644
--- a/net/rxrpc/af_rxrpc.c
+++ b/net/rxrpc/af_rxrpc.c
@@ -471,6 +471,7 @@ static int rxrpc_connect(struct socket *sock, struct sockaddr *addr,
 	switch (rx->sk.sk_state) {
 	case RXRPC_UNBOUND:
 		rx->sk.sk_state = RXRPC_CLIENT_UNBOUND;
+		break;
 	case RXRPC_CLIENT_UNBOUND:
 	case RXRPC_CLIENT_BOUND:
 		break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 125/141] sctp: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (42 preceding siblings ...)
  2020-11-20 18:39 ` [PATCH 119/141] rxrpc: " Gustavo A. R. Silva
@ 2020-11-20 18:39 ` Gustavo A. R. Silva
  2020-11-20 18:39 ` [PATCH 127/141] staging: qlge: " Gustavo A. R. Silva
                   ` (12 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:39 UTC (permalink / raw)
  To: Vlad Yasevich, Neil Horman, Marcelo Ricardo Leitner,
	David S. Miller, Jakub Kicinski
  Cc: linux-sctp, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a couple
of warnings by explicitly adding a break statement and replacing a
comment with a goto statement instead of letting the code fall through
to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/sctp/input.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/sctp/input.c b/net/sctp/input.c
index 55d4fc6f371d..5944af035ba0 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -633,7 +633,7 @@ int sctp_v4_err(struct sk_buff *skb, __u32 info)
 		break;
 	case ICMP_REDIRECT:
 		sctp_icmp_redirect(sk, transport, skb);
-		/* Fall through to out_unlock. */
+		goto out_unlock;
 	default:
 		goto out_unlock;
 	}
@@ -1236,6 +1236,7 @@ static struct sctp_association *__sctp_rcv_walk_lookup(struct net *net,
 						net, ch, laddr,
 						sctp_hdr(skb)->source,
 						transportp);
+			break;
 		default:
 			break;
 		}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 127/141] staging: qlge: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (43 preceding siblings ...)
  2020-11-20 18:39 ` [PATCH 125/141] sctp: " Gustavo A. R. Silva
@ 2020-11-20 18:39 ` Gustavo A. R. Silva
  2020-11-25  4:42   ` Benjamin Poirier
  2020-11-20 18:40 ` [PATCH 129/141] SUNRPC: " Gustavo A. R. Silva
                   ` (11 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:39 UTC (permalink / raw)
  To: Manish Chopra, Greg Kroah-Hartman
  Cc: GR-Linux-NIC-Dev, netdev, devel, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/staging/qlge/qlge_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 27da386f9d87..c41b1373dcf8 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -1385,6 +1385,7 @@ static void ql_categorize_rx_err(struct ql_adapter *qdev, u8 rx_err,
 		break;
 	case IB_MAC_IOCB_RSP_ERR_CRC:
 		stats->rx_crc_err++;
+		break;
 	default:
 		break;
 	}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 129/141] SUNRPC: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (44 preceding siblings ...)
  2020-11-20 18:39 ` [PATCH 127/141] staging: qlge: " Gustavo A. R. Silva
@ 2020-11-20 18:40 ` Gustavo A. R. Silva
  2020-11-20 18:40 ` [PATCH 130/141] tipc: " Gustavo A. R. Silva
                   ` (10 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:40 UTC (permalink / raw)
  To: J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker,
	David S. Miller, Jakub Kicinski
  Cc: linux-nfs, netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
warnings by explicitly adding multiple break statements instead of
letting the code fall through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/sunrpc/rpc_pipe.c | 1 +
 net/sunrpc/xprtsock.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index eadc0ede928c..99fcb0bea1d0 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -478,6 +478,7 @@ rpc_get_inode(struct super_block *sb, umode_t mode)
 		inode->i_fop = &simple_dir_operations;
 		inode->i_op = &simple_dir_inode_operations;
 		inc_nlink(inode);
+		break;
 	default:
 		break;
 	}
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 7090bbee0ec5..a785c15804d6 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -1874,6 +1874,7 @@ static int xs_local_setup_socket(struct sock_xprt *transport)
 		xprt->stat.connect_time += (long)jiffies -
 					   xprt->stat.connect_start;
 		xprt_set_connected(xprt);
+		break;
 	case -ENOBUFS:
 		break;
 	case -ENOENT:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 130/141] tipc: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (45 preceding siblings ...)
  2020-11-20 18:40 ` [PATCH 129/141] SUNRPC: " Gustavo A. R. Silva
@ 2020-11-20 18:40 ` Gustavo A. R. Silva
  2020-11-20 18:40 ` [PATCH 136/141] virtio_net: " Gustavo A. R. Silva
                   ` (9 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:40 UTC (permalink / raw)
  To: Jon Maloy, Ying Xue, David S. Miller, Jakub Kicinski
  Cc: netdev, tipc-discussion, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/tipc/link.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/tipc/link.c b/net/tipc/link.c
index 06b880da2a8e..839082cf259e 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -615,6 +615,7 @@ int tipc_link_fsm_evt(struct tipc_link *l, int evt)
 			break;
 		case LINK_FAILOVER_BEGIN_EVT:
 			l->state = LINK_FAILINGOVER;
+			break;
 		case LINK_FAILURE_EVT:
 		case LINK_RESET_EVT:
 		case LINK_ESTABLISH_EVT:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 136/141] virtio_net: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (46 preceding siblings ...)
  2020-11-20 18:40 ` [PATCH 130/141] tipc: " Gustavo A. R. Silva
@ 2020-11-20 18:40 ` Gustavo A. R. Silva
  2020-11-20 18:40 ` [PATCH 137/141] wcn36xx: " Gustavo A. R. Silva
                   ` (8 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:40 UTC (permalink / raw)
  To: Michael S. Tsirkin, Jason Wang, David S. Miller, Jakub Kicinski
  Cc: virtualization, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a goto statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/virtio_net.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 21b71148c532..fd326dc586aa 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -732,6 +732,7 @@ static struct sk_buff *receive_small(struct net_device *dev,
 			fallthrough;
 		case XDP_ABORTED:
 			trace_xdp_exception(vi->dev, xdp_prog, act);
+			goto err_xdp;
 		case XDP_DROP:
 			goto err_xdp;
 		}
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 137/141] wcn36xx: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (47 preceding siblings ...)
  2020-11-20 18:40 ` [PATCH 136/141] virtio_net: " Gustavo A. R. Silva
@ 2020-11-20 18:40 ` Gustavo A. R. Silva
  2020-11-20 18:41 ` [PATCH 139/141] xfrm: " Gustavo A. R. Silva
                   ` (7 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:40 UTC (permalink / raw)
  To: Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: wcn36xx, linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a
warning by replacing a /* fall through */ comment with the new
pseudo-keyword macro fallthrough; instead of letting the code fall
through to the next case.

Notice that Clang doesn't recognize /* fall through */ comments as
implicit fall-through markings.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 766400f7b61c..4c8f4a7e7085 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -2568,7 +2568,7 @@ static int wcn36xx_smd_hw_scan_ind(struct wcn36xx *wcn, void *buf, size_t len)
 	case WCN36XX_HAL_SCAN_IND_FAILED:
 	case WCN36XX_HAL_SCAN_IND_DEQUEUED:
 		scan_info.aborted = true;
-		/* fall through */
+		fallthrough;
 	case WCN36XX_HAL_SCAN_IND_COMPLETED:
 		mutex_lock(&wcn->scan_lock);
 		wcn->scan_req = NULL;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 139/141] xfrm: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (48 preceding siblings ...)
  2020-11-20 18:40 ` [PATCH 137/141] wcn36xx: " Gustavo A. R. Silva
@ 2020-11-20 18:41 ` Gustavo A. R. Silva
  2020-11-20 18:41 ` [PATCH 140/141] zd1201: " Gustavo A. R. Silva
                   ` (6 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:41 UTC (permalink / raw)
  To: Steffen Klassert, Herbert Xu, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening, Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 net/xfrm/xfrm_interface.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c
index 9b8e292a7c6a..8ea705df8e3c 100644
--- a/net/xfrm/xfrm_interface.c
+++ b/net/xfrm/xfrm_interface.c
@@ -433,6 +433,7 @@ static int xfrmi4_err(struct sk_buff *skb, u32 info)
 	case ICMP_DEST_UNREACH:
 		if (icmp_hdr(skb)->code != ICMP_FRAG_NEEDED)
 			return 0;
+		break;
 	case ICMP_REDIRECT:
 		break;
 	default:
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* [PATCH 140/141] zd1201: Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (49 preceding siblings ...)
  2020-11-20 18:41 ` [PATCH 139/141] xfrm: " Gustavo A. R. Silva
@ 2020-11-20 18:41 ` Gustavo A. R. Silva
  2020-11-20 18:53 ` [PATCH 000/141] " Jakub Kicinski
                   ` (5 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 18:41 UTC (permalink / raw)
  To: Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

In preparation to enable -Wimplicit-fallthrough for Clang, fix a
warning by replacing a /* Fall through */ comment with the new
pseudo-keyword macro fallthrough; instead of letting the code fall
through to the next case.

Notice that Clang doesn't recognize /* Fall through */ comments as
implicit fall-through markings.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 drivers/net/wireless/zydas/zd1201.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/zydas/zd1201.c b/drivers/net/wireless/zydas/zd1201.c
index 718c4ee865ba..097805b55c59 100644
--- a/drivers/net/wireless/zydas/zd1201.c
+++ b/drivers/net/wireless/zydas/zd1201.c
@@ -966,7 +966,7 @@ static int zd1201_set_mode(struct net_device *dev,
 			 */
 			zd1201_join(zd, "\0-*#\0", 5);
 			/* Put port in pIBSS */
-			/* Fall through */
+			fallthrough;
 		case 8: /* No pseudo-IBSS in wireless extensions (yet) */
 			porttype = ZD1201_PORTTYPE_PSEUDOIBSS;
 			break;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 150+ messages in thread

* Re: [EXT] [PATCH 018/141] qed: Fix fall-through warnings for Clang
  2020-11-20 18:26 ` [PATCH 018/141] qed: " Gustavo A. R. Silva
@ 2020-11-20 18:50   ` Igor Russkikh
  2020-11-23 22:46     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Igor Russkikh @ 2020-11-20 18:50 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Ariel Elior, David S. Miller, Jakub Kicinski
  Cc: GR-everest-linux-l2, netdev, linux-kernel, linux-hardening



On 20/11/2020 9:26 pm, Gustavo A. R. Silva wrote:
> External Email
> 
> ----------------------------------------------------------------------
> In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> warnings by explicitly adding a couple of break statements instead of
> just letting the code fall through to the next case.
> 
> Link:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_KSPP_linux
> _issues_115&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=GtqbaEwqFLiM6BiwNMdKmpXb5o
> up1VLiSIroUNQwbYA&m=6E7IvGvqcEGj8wEOVoN1BySZhGUVECVTBJCmNiRsHUw&s=J1SWrfEL
> erJOzUlJdD_S5afGaZosmVP8lyKsu9DTULw&e= 
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Igor Russkikh <irusskikh@marvell.com>

Thanks,
  Igor

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (50 preceding siblings ...)
  2020-11-20 18:41 ` [PATCH 140/141] zd1201: " Gustavo A. R. Silva
@ 2020-11-20 18:53 ` Jakub Kicinski
  2020-11-20 19:04   ` Gustavo A. R. Silva
  2020-11-20 19:30   ` Kees Cook
  2020-11-20 22:21 ` Miguel Ojeda
                   ` (4 subsequent siblings)
  56 siblings, 2 replies; 150+ messages in thread
From: Jakub Kicinski @ 2020-11-20 18:53 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook

On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:
> This series aims to fix almost all remaining fall-through warnings in
> order to enable -Wimplicit-fallthrough for Clang.
> 
> In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> add multiple break/goto/return/fallthrough statements instead of just
> letting the code fall through to the next case.
> 
> Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> change[1] is meant to be reverted at some point. So, this patch helps
> to move in that direction.
> 
> Something important to mention is that there is currently a discrepancy
> between GCC and Clang when dealing with switch fall-through to empty case
> statements or to cases that only contain a break/continue/return
> statement[2][3][4].

Are we sure we want to make this change? Was it discussed before?

Are there any bugs Clangs puritanical definition of fallthrough helped
find?

IMVHO compiler warnings are supposed to warn about issues that could
be bugs. Falling through to default: break; can hardly be a bug?!

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:28 ` [PATCH 000/141] " Joe Perches
@ 2020-11-20 19:02   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 19:02 UTC (permalink / raw)
  To: Joe Perches, Gustavo A. R. Silva, linux-kernel
  Cc: alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, linux-arm-kernel,
	linux-arm-msm, linux-atm-general, linux-block, linux-can,
	linux-cifs, linux-crypto, linux-decnet-user, linux-ext4,
	linux-fbdev, linux-geode, linux-gpio, linux-hams, linux-hwmon,
	linux-i3c, linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, linux-media, linux-mmc, linux-mm, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Kees Cook



On 11/20/20 12:28, Joe Perches wrote:
> On Fri, 2020-11-20 at 12:21 -0600, Gustavo A. R. Silva wrote:
>> Hi all,
>>
>> This series aims to fix almost all remaining fall-through warnings in
>> order to enable -Wimplicit-fallthrough for Clang.
>>
>> In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
>> add multiple break/goto/return/fallthrough statements instead of just
>> letting the code fall through to the next case.
>>
>> Notice that in order to enable -Wimplicit-fallthrough for Clang, this
>> change[1] is meant to be reverted at some point. So, this patch helps
>> to move in that direction.
> 
> This was a bit hard to parse for a second or three.
> 
> Thanks Gustavo.
> 
> How was this change done?

I audited case by case in order to determine the best fit for each
situation. Depending on the surrounding logic, sometimes it makes
more sense a goto or a fallthrough rather than merely a break.

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:53 ` [PATCH 000/141] " Jakub Kicinski
@ 2020-11-20 19:04   ` Gustavo A. R. Silva
  2020-11-20 19:30   ` Kees Cook
  1 sibling, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-20 19:04 UTC (permalink / raw)
  To: Jakub Kicinski, Gustavo A. R. Silva
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook


Hi,

On 11/20/20 12:53, Jakub Kicinski wrote:
> On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:
>> This series aims to fix almost all remaining fall-through warnings in
>> order to enable -Wimplicit-fallthrough for Clang.
>>
>> In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
>> add multiple break/goto/return/fallthrough statements instead of just
>> letting the code fall through to the next case.
>>
>> Notice that in order to enable -Wimplicit-fallthrough for Clang, this
>> change[1] is meant to be reverted at some point. So, this patch helps
>> to move in that direction.
>>
>> Something important to mention is that there is currently a discrepancy
>> between GCC and Clang when dealing with switch fall-through to empty case
>> statements or to cases that only contain a break/continue/return
>> statement[2][3][4].
> 
> Are we sure we want to make this change? Was it discussed before?
> 
> Are there any bugs Clangs puritanical definition of fallthrough helped
> find?
> 
> IMVHO compiler warnings are supposed to warn about issues that could
> be bugs. Falling through to default: break; can hardly be a bug?!

The justification for this is explained in this same changelog text:

Now that the -Wimplicit-fallthrough option has been globally enabled[5],
any compiler should really warn on missing either a fallthrough annotation
or any of the other case-terminating statements (break/continue/return/
goto) when falling through to the next case statement. Making exceptions
to this introduces variation in case handling which may continue to lead
to bugs, misunderstandings, and a general lack of robustness. The point
of enabling options like -Wimplicit-fallthrough is to prevent human error
and aid developers in spotting bugs before their code is even built/
submitted/committed, therefore eliminating classes of bugs. So, in order
to really accomplish this, we should, and can, move in the direction of
addressing any error-prone scenarios and get rid of the unintentional
fallthrough bug-class in the kernel, entirely, even if there is some minor
redundancy. Better to have explicit case-ending statements than continue to
have exceptions where one must guess as to the right result. The compiler
will eliminate any actual redundancy.

Note that there is already a patch in mainline that addresses almost
40,000 of these issues[6].

[1] commit e2079e93f562c ("kbuild: Do not enable -Wimplicit-fallthrough for clang for now")
[2] ClangBuiltLinux#636
[3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91432
[4] https://godbolt.org/z/xgkvIh
[5] commit a035d552a93b ("Makefile: Globally enable fall-through warning")
[6] commit 4169e889e588 ("include: jhash/signal: Fix fall-through warnings for Clang")

Thanks
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:53 ` [PATCH 000/141] " Jakub Kicinski
  2020-11-20 19:04   ` Gustavo A. R. Silva
@ 2020-11-20 19:30   ` Kees Cook
  2020-11-20 19:51     ` Jakub Kicinski
  1 sibling, 1 reply; 150+ messages in thread
From: Kees Cook @ 2020-11-20 19:30 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches

On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote:
> On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:
> > This series aims to fix almost all remaining fall-through warnings in
> > order to enable -Wimplicit-fallthrough for Clang.
> > 
> > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> > add multiple break/goto/return/fallthrough statements instead of just
> > letting the code fall through to the next case.
> > 
> > Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> > change[1] is meant to be reverted at some point. So, this patch helps
> > to move in that direction.
> > 
> > Something important to mention is that there is currently a discrepancy
> > between GCC and Clang when dealing with switch fall-through to empty case
> > statements or to cases that only contain a break/continue/return
> > statement[2][3][4].
> 
> Are we sure we want to make this change? Was it discussed before?
> 
> Are there any bugs Clangs puritanical definition of fallthrough helped
> find?
> 
> IMVHO compiler warnings are supposed to warn about issues that could
> be bugs. Falling through to default: break; can hardly be a bug?!

It's certainly a place where the intent is not always clear. I think
this makes all the cases unambiguous, and doesn't impact the machine
code, since the compiler will happily optimize away any behavioral
redundancy.


-- 
Kees Cook

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 19:30   ` Kees Cook
@ 2020-11-20 19:51     ` Jakub Kicinski
  2020-11-20 20:48       ` Kees Cook
  2020-11-22 16:17       ` Kees Cook
  0 siblings, 2 replies; 150+ messages in thread
From: Jakub Kicinski @ 2020-11-20 19:51 UTC (permalink / raw)
  To: Kees Cook
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches

On Fri, 20 Nov 2020 11:30:40 -0800 Kees Cook wrote:
> On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote:
> > On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:  
> > > This series aims to fix almost all remaining fall-through warnings in
> > > order to enable -Wimplicit-fallthrough for Clang.
> > > 
> > > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> > > add multiple break/goto/return/fallthrough statements instead of just
> > > letting the code fall through to the next case.
> > > 
> > > Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> > > change[1] is meant to be reverted at some point. So, this patch helps
> > > to move in that direction.
> > > 
> > > Something important to mention is that there is currently a discrepancy
> > > between GCC and Clang when dealing with switch fall-through to empty case
> > > statements or to cases that only contain a break/continue/return
> > > statement[2][3][4].  
> > 
> > Are we sure we want to make this change? Was it discussed before?
> > 
> > Are there any bugs Clangs puritanical definition of fallthrough helped
> > find?
> > 
> > IMVHO compiler warnings are supposed to warn about issues that could
> > be bugs. Falling through to default: break; can hardly be a bug?!  
> 
> It's certainly a place where the intent is not always clear. I think
> this makes all the cases unambiguous, and doesn't impact the machine
> code, since the compiler will happily optimize away any behavioral
> redundancy.

If none of the 140 patches here fix a real bug, and there is no change
to machine code then it sounds to me like a W=2 kind of a warning.

I think clang is just being annoying here, but if I'm the only one who
feels this way chances are I'm wrong :)

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 19:51     ` Jakub Kicinski
@ 2020-11-20 20:48       ` Kees Cook
  2020-11-22 16:17       ` Kees Cook
  1 sibling, 0 replies; 150+ messages in thread
From: Kees Cook @ 2020-11-20 20:48 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches

On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> On Fri, 20 Nov 2020 11:30:40 -0800 Kees Cook wrote:
> > On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote:
> > > On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:  
> > > > This series aims to fix almost all remaining fall-through warnings in
> > > > order to enable -Wimplicit-fallthrough for Clang.
> > > > 
> > > > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> > > > add multiple break/goto/return/fallthrough statements instead of just
> > > > letting the code fall through to the next case.
> > > > 
> > > > Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> > > > change[1] is meant to be reverted at some point. So, this patch helps
> > > > to move in that direction.
> > > > 
> > > > Something important to mention is that there is currently a discrepancy
> > > > between GCC and Clang when dealing with switch fall-through to empty case
> > > > statements or to cases that only contain a break/continue/return
> > > > statement[2][3][4].  
> > > 
> > > Are we sure we want to make this change? Was it discussed before?
> > > 
> > > Are there any bugs Clangs puritanical definition of fallthrough helped
> > > find?
> > > 
> > > IMVHO compiler warnings are supposed to warn about issues that could
> > > be bugs. Falling through to default: break; can hardly be a bug?!  
> > 
> > It's certainly a place where the intent is not always clear. I think
> > this makes all the cases unambiguous, and doesn't impact the machine
> > code, since the compiler will happily optimize away any behavioral
> > redundancy.
> 
> If none of the 140 patches here fix a real bug, and there is no change
> to machine code then it sounds to me like a W=2 kind of a warning.

I'd like to avoid splitting common -W options between default and W=2
just based on the compiler. Getting -Wimplicit-fallthrough enabled found
plenty of bugs, so making sure it works correctly for both compilers
feels justified to me. (This is just a subset of the same C language
short-coming.)

> I think clang is just being annoying here, but if I'm the only one who
> feels this way chances are I'm wrong :)

It's being pretty pedantic, but I don't think it's unreasonable to
explicitly state how every case ends. GCC's silence for the case of
"fall through to a break" doesn't really seem justified.

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 117/141] rtl8xxxu: Fix fall-through warnings for Clang
  2020-11-20 18:38 ` [PATCH 117/141] rtl8xxxu: " Gustavo A. R. Silva
@ 2020-11-20 21:39   ` Jes Sorensen
  2020-11-24 16:09     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Jes Sorensen @ 2020-11-20 21:39 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: linux-wireless, netdev, linux-kernel, linux-hardening

On 11/20/20 1:38 PM, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix
> multiple warnings by replacing /* fall through */ comments with
> the new pseudo-keyword macro fallthrough; instead of letting the
> code fall through to the next case.
> 
> Notice that Clang doesn't recognize /* fall through */ comments as
> implicit fall-through markings.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

While I wasn't CC'ed on the cover-letter I see Jakub also raised issues
about this unnecessary patch noise.

Quite frankly, this seems to be patch churn for the sake of patch churn.
If clang is broken, fix clang instead.

NACK


Jes

> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> index 5cd7ef3625c5..afc97958fa4d 100644
> --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> @@ -1145,7 +1145,7 @@ void rtl8xxxu_gen1_config_channel(struct ieee80211_hw *hw)
>  	switch (hw->conf.chandef.width) {
>  	case NL80211_CHAN_WIDTH_20_NOHT:
>  		ht = false;
> -		/* fall through */
> +		fallthrough;
>  	case NL80211_CHAN_WIDTH_20:
>  		opmode |= BW_OPMODE_20MHZ;
>  		rtl8xxxu_write8(priv, REG_BW_OPMODE, opmode);
> @@ -1272,7 +1272,7 @@ void rtl8xxxu_gen2_config_channel(struct ieee80211_hw *hw)
>  	switch (hw->conf.chandef.width) {
>  	case NL80211_CHAN_WIDTH_20_NOHT:
>  		ht = false;
> -		/* fall through */
> +		fallthrough;
>  	case NL80211_CHAN_WIDTH_20:
>  		rf_mode_bw |= WMAC_TRXPTCL_CTL_BW_20;
>  		subchannel = 0;
> @@ -1741,11 +1741,11 @@ static int rtl8xxxu_identify_chip(struct rtl8xxxu_priv *priv)
>  		case 3:
>  			priv->ep_tx_low_queue = 1;
>  			priv->ep_tx_count++;
> -			/* fall through */
> +			fallthrough;
>  		case 2:
>  			priv->ep_tx_normal_queue = 1;
>  			priv->ep_tx_count++;
> -			/* fall through */
> +			fallthrough;
>  		case 1:
>  			priv->ep_tx_high_queue = 1;
>  			priv->ep_tx_count++;
> 


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (51 preceding siblings ...)
  2020-11-20 18:53 ` [PATCH 000/141] " Jakub Kicinski
@ 2020-11-20 22:21 ` Miguel Ojeda
  2020-11-23 20:03 ` Jason Gunthorpe
                   ` (3 subsequent siblings)
  56 siblings, 0 replies; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-20 22:21 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches, Kees Cook

Hi Gustavo,

On Fri, Nov 20, 2020 at 7:21 PM Gustavo A. R. Silva
<gustavoars@kernel.org> wrote:
>
> Hi all,
>
> This series aims to fix almost all remaining fall-through warnings in
> order to enable -Wimplicit-fallthrough for Clang.

Thanks for this.

Since this warning is reliable in both/all compilers and we are
eventually getting rid of all the cases, what about going even further
and making it an error right after?

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 015/141] netfilter: Fix fall-through warnings for Clang
  2020-11-20 18:26 ` [PATCH 015/141] netfilter: " Gustavo A. R. Silva
@ 2020-11-20 22:47   ` Florian Westphal
  2020-11-23 22:45     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Florian Westphal @ 2020-11-20 22:47 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
	David S. Miller, Jakub Kicinski, netfilter-devel, coreteam,
	netdev, linux-kernel, linux-hardening

Gustavo A. R. Silva <gustavoars@kernel.org> wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> warnings by explicitly adding multiple break statements instead of just
> letting the code fall through to the next case.

Acked-by: Florian Westphal <fw@strlen.de>

Feel free to carry this in next iteration of series, if any.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 108/141] netfilter: ipt_REJECT: Fix fall-through warnings for Clang
  2020-11-20 18:38 ` [PATCH 108/141] netfilter: ipt_REJECT: " Gustavo A. R. Silva
@ 2020-11-20 22:49   ` Florian Westphal
  2020-11-24 14:37     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Florian Westphal @ 2020-11-20 22:49 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Pablo Neira Ayuso, Jozsef Kadlecsik, Florian Westphal,
	David S. Miller, Alexey Kuznetsov, Hideaki YOSHIFUJI,
	Jakub Kicinski, netfilter-devel, coreteam, netdev, linux-kernel,
	linux-hardening

Gustavo A. R. Silva <gustavoars@kernel.org> wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.

Acked-by: Florian Westphal <fw@strlen.de>

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 072/141] can: peak_usb: Fix fall-through warnings for Clang
  2020-11-20 18:34 ` [PATCH 072/141] can: peak_usb: " Gustavo A. R. Silva
@ 2020-11-21 13:17   ` Marc Kleine-Budde
  2020-11-21 19:50     ` Joe Perches
  0 siblings, 1 reply; 150+ messages in thread
From: Marc Kleine-Budde @ 2020-11-21 13:17 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Wolfgang Grandegger, David S. Miller,
	Jakub Kicinski
  Cc: linux-can, netdev, linux-kernel, linux-hardening


[-- Attachment #1.1: Type: text/plain, Size: 2372 bytes --]

On 11/20/20 7:34 PM, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/can/usb/peak_usb/pcan_usb_core.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> index c2764799f9ef..fd65a155be3b 100644
> --- a/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> +++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> @@ -299,6 +299,8 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
>  		if (net_ratelimit())
>  			netdev_err(netdev, "Tx urb aborted (%d)\n",
>  				   urb->status);
> +		break;
> +
>  	case -EPROTO:
>  	case -ENOENT:
>  	case -ECONNRESET:
> 

What about moving the default to the end if the case, which is more common anyways:

diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
index 204ccb27d6d9..e8977dd10902 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_core.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
@@ -295,16 +295,16 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
                netif_trans_update(netdev);
                break;
 
-       default:
-               if (net_ratelimit())
-                       netdev_err(netdev, "Tx urb aborted (%d)\n",
-                                  urb->status);
        case -EPROTO:
        case -ENOENT:
        case -ECONNRESET:
        case -ESHUTDOWN:
-
                break;
+
+       default:
+               if (net_ratelimit())
+                       netdev_err(netdev, "Tx urb aborted (%d)\n",
+                                  urb->status);
        }
 
        /* should always release echo skb and corresponding context */


Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply related	[flat|nested] 150+ messages in thread

* Re: [PATCH 072/141] can: peak_usb: Fix fall-through warnings for Clang
  2020-11-21 13:17   ` Marc Kleine-Budde
@ 2020-11-21 19:50     ` Joe Perches
  2020-11-21 23:04       ` Marc Kleine-Budde
  0 siblings, 1 reply; 150+ messages in thread
From: Joe Perches @ 2020-11-21 19:50 UTC (permalink / raw)
  To: Marc Kleine-Budde, Gustavo A. R. Silva, Wolfgang Grandegger,
	David S. Miller, Jakub Kicinski
  Cc: linux-can, netdev, linux-kernel, linux-hardening

On Sat, 2020-11-21 at 14:17 +0100, Marc Kleine-Budde wrote:
> On 11/20/20 7:34 PM, Gustavo A. R. Silva wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> > by explicitly adding a break statement instead of letting the code fall
> > through to the next case.
> > 
> > Link: https://github.com/KSPP/linux/issues/115
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
[]
> > diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
[]
> > @@ -299,6 +299,8 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
> >  		if (net_ratelimit())
> >  			netdev_err(netdev, "Tx urb aborted (%d)\n",
> >  				   urb->status);
> > +		break;
> > +
> >  	case -EPROTO:
> >  	case -ENOENT:
> >  	case -ECONNRESET:
> > 
> 
> What about moving the default to the end if the case, which is more common anyways:
> 
> diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
[]
> @@ -295,16 +295,16 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
>                 netif_trans_update(netdev);
>                 break;
>  
> 
> -       default:
> -               if (net_ratelimit())
> -                       netdev_err(netdev, "Tx urb aborted (%d)\n",
> -                                  urb->status);
>         case -EPROTO:
>         case -ENOENT:
>         case -ECONNRESET:
>         case -ESHUTDOWN:
> -
>                 break;
> +
> +       default:
> +               if (net_ratelimit())
> +                       netdev_err(netdev, "Tx urb aborted (%d)\n",
> +                                  urb->status);

That's fine and is more generally used style but this
default: case should IMO also end with a break;

+		break;

>         }



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 072/141] can: peak_usb: Fix fall-through warnings for Clang
  2020-11-21 19:50     ` Joe Perches
@ 2020-11-21 23:04       ` Marc Kleine-Budde
  2020-11-22  2:46         ` Joe Perches
  0 siblings, 1 reply; 150+ messages in thread
From: Marc Kleine-Budde @ 2020-11-21 23:04 UTC (permalink / raw)
  To: Joe Perches, Gustavo A. R. Silva, Wolfgang Grandegger,
	David S. Miller, Jakub Kicinski
  Cc: linux-can, netdev, linux-kernel, linux-hardening


[-- Attachment #1.1: Type: text/plain, Size: 1580 bytes --]

On 11/21/20 8:50 PM, Joe Perches wrote:
>> What about moving the default to the end if the case, which is more common anyways:
>>
>> diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> []
>> @@ -295,16 +295,16 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
>>                 netif_trans_update(netdev);
>>                 break;
>>  
>>
>> -       default:
>> -               if (net_ratelimit())
>> -                       netdev_err(netdev, "Tx urb aborted (%d)\n",
>> -                                  urb->status);
>>         case -EPROTO:
>>         case -ENOENT:
>>         case -ECONNRESET:
>>         case -ESHUTDOWN:
>> -
>>                 break;
>> +
>> +       default:
>> +               if (net_ratelimit())
>> +                       netdev_err(netdev, "Tx urb aborted (%d)\n",
>> +                                  urb->status);
> 
> That's fine and is more generally used style but this
> default: case should IMO also end with a break;
> 
> +		break;

I don't mind.

process/coding-style.rst is not totally clear about the break after the default,
if this is the lase one the switch statement.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 072/141] can: peak_usb: Fix fall-through warnings for Clang
  2020-11-21 23:04       ` Marc Kleine-Budde
@ 2020-11-22  2:46         ` Joe Perches
  0 siblings, 0 replies; 150+ messages in thread
From: Joe Perches @ 2020-11-22  2:46 UTC (permalink / raw)
  To: Marc Kleine-Budde, Gustavo A. R. Silva, Wolfgang Grandegger,
	David S. Miller, Jakub Kicinski
  Cc: linux-can, netdev, linux-kernel, linux-hardening

On Sun, 2020-11-22 at 00:04 +0100, Marc Kleine-Budde wrote:
> On 11/21/20 8:50 PM, Joe Perches wrote:
> > > What about moving the default to the end if the case, which is more common anyways:
> > > 
> > > diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
> > []
> > > @@ -295,16 +295,16 @@ static void peak_usb_write_bulk_callback(struct urb *urb)
> > >                 netif_trans_update(netdev);
> > >                 break;
> > >  
> > > 
> > > -       default:
> > > -               if (net_ratelimit())
> > > -                       netdev_err(netdev, "Tx urb aborted (%d)\n",
> > > -                                  urb->status);
> > >         case -EPROTO:
> > >         case -ENOENT:
> > >         case -ECONNRESET:
> > >         case -ESHUTDOWN:
> > > -
> > >                 break;
> > > +
> > > +       default:
> > > +               if (net_ratelimit())
> > > +                       netdev_err(netdev, "Tx urb aborted (%d)\n",
> > > +                                  urb->status);
> > 
> > That's fine and is more generally used style but this
> > default: case should IMO also end with a break;
> > 
> > +		break;
> 
> I don't mind.
> 
> process/coding-style.rst is not totally clear about the break after the default,
> if this is the lase one the switch statement.

deprecated.rst has:

All switch/case blocks must end in one of:

* break;
* fallthrough;
* continue;
* goto <label>;
* return [expression];

I suppose that could be moved into coding-style along with
maybe a change to "all switch/case/default blocks"


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 044/141] net/mlx4: Fix fall-through warnings for Clang
  2020-11-20 18:31 ` [PATCH 044/141] net/mlx4: " Gustavo A. R. Silva
@ 2020-11-22  8:36   ` Tariq Toukan
  2020-11-23 22:49     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Tariq Toukan @ 2020-11-22  8:36 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Tariq Toukan, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-rdma, linux-kernel, linux-hardening



On 11/20/2020 8:31 PM, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of just letting the code
> fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>   drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
> index 1187ef1375e2..e6b8b8dc7894 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
> @@ -2660,6 +2660,7 @@ int mlx4_FREE_RES_wrapper(struct mlx4_dev *dev, int slave,
>   	case RES_XRCD:
>   		err = xrcdn_free_res(dev, slave, vhcr->op_modifier, alop,
>   				     vhcr->in_param, &vhcr->out_param);
> +		break;
>   
>   	default:
>   		break;
> 

Reviewed-by: Tariq Toukan <tariqt@nvidia.com>

Thanks for your patch.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 19:51     ` Jakub Kicinski
  2020-11-20 20:48       ` Kees Cook
@ 2020-11-22 16:17       ` Kees Cook
  2020-11-22 18:21         ` James Bottomley
                           ` (2 more replies)
  1 sibling, 3 replies; 150+ messages in thread
From: Kees Cook @ 2020-11-22 16:17 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches

On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> On Fri, 20 Nov 2020 11:30:40 -0800 Kees Cook wrote:
> > On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote:
> > > On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:  
> > > > This series aims to fix almost all remaining fall-through warnings in
> > > > order to enable -Wimplicit-fallthrough for Clang.
> > > > 
> > > > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> > > > add multiple break/goto/return/fallthrough statements instead of just
> > > > letting the code fall through to the next case.
> > > > 
> > > > Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> > > > change[1] is meant to be reverted at some point. So, this patch helps
> > > > to move in that direction.
> > > > 
> > > > Something important to mention is that there is currently a discrepancy
> > > > between GCC and Clang when dealing with switch fall-through to empty case
> > > > statements or to cases that only contain a break/continue/return
> > > > statement[2][3][4].  
> > > 
> > > Are we sure we want to make this change? Was it discussed before?
> > > 
> > > Are there any bugs Clangs puritanical definition of fallthrough helped
> > > find?
> > > 
> > > IMVHO compiler warnings are supposed to warn about issues that could
> > > be bugs. Falling through to default: break; can hardly be a bug?!  
> > 
> > It's certainly a place where the intent is not always clear. I think
> > this makes all the cases unambiguous, and doesn't impact the machine
> > code, since the compiler will happily optimize away any behavioral
> > redundancy.
> 
> If none of the 140 patches here fix a real bug, and there is no change
> to machine code then it sounds to me like a W=2 kind of a warning.

FWIW, this series has found at least one bug so far:
https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 16:17       ` Kees Cook
@ 2020-11-22 18:21         ` James Bottomley
  2020-11-22 18:25           ` Joe Perches
                             ` (2 more replies)
  2020-11-24  1:32         ` Nick Desaulniers
  2020-12-01 14:04         ` Dan Carpenter
  2 siblings, 3 replies; 150+ messages in thread
From: James Bottomley @ 2020-11-22 18:21 UTC (permalink / raw)
  To: Kees Cook, Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches

On Sun, 2020-11-22 at 08:17 -0800, Kees Cook wrote:
> On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> > On Fri, 20 Nov 2020 11:30:40 -0800 Kees Cook wrote:
> > > On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote:
> > > > On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:  
> > > > > This series aims to fix almost all remaining fall-through
> > > > > warnings in order to enable -Wimplicit-fallthrough for Clang.
> > > > > 
> > > > > In preparation to enable -Wimplicit-fallthrough for Clang,
> > > > > explicitly add multiple break/goto/return/fallthrough
> > > > > statements instead of just letting the code fall through to
> > > > > the next case.
> > > > > 
> > > > > Notice that in order to enable -Wimplicit-fallthrough for
> > > > > Clang, this change[1] is meant to be reverted at some point.
> > > > > So, this patch helps to move in that direction.
> > > > > 
> > > > > Something important to mention is that there is currently a
> > > > > discrepancy between GCC and Clang when dealing with switch
> > > > > fall-through to empty case statements or to cases that only
> > > > > contain a break/continue/return statement[2][3][4].  
> > > > 
> > > > Are we sure we want to make this change? Was it discussed
> > > > before?
> > > > 
> > > > Are there any bugs Clangs puritanical definition of fallthrough
> > > > helped find?
> > > > 
> > > > IMVHO compiler warnings are supposed to warn about issues that
> > > > could be bugs. Falling through to default: break; can hardly be
> > > > a bug?!  
> > > 
> > > It's certainly a place where the intent is not always clear. I
> > > think this makes all the cases unambiguous, and doesn't impact
> > > the machine code, since the compiler will happily optimize away
> > > any behavioral redundancy.
> > 
> > If none of the 140 patches here fix a real bug, and there is no
> > change to machine code then it sounds to me like a W=2 kind of a
> > warning.
> 
> FWIW, this series has found at least one bug so far:
> https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/


Well, it's a problem in an error leg, sure, but it's not a really
compelling reason for a 141 patch series, is it?  All that fixing this
error will do is get the driver to print "oh dear there's a problem"
under four more conditions than it previously did.

We've been at this for three years now with nearly a thousand patches,
firstly marking all the fall throughs with /* fall through */ and later
changing it to fallthrough.  At some point we do have to ask if the
effort is commensurate with the protection afforded.  Please tell me
our reward for all this effort isn't a single missing error print.

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 18:21         ` James Bottomley
@ 2020-11-22 18:25           ` Joe Perches
  2020-11-22 19:12             ` James Bottomley
  2020-11-22 20:35           ` Miguel Ojeda
  2020-11-22 22:10           ` Sam Ravnborg
  2 siblings, 1 reply; 150+ messages in thread
From: Joe Perches @ 2020-11-22 18:25 UTC (permalink / raw)
  To: James Bottomley, Kees Cook, Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda

On Sun, 2020-11-22 at 10:21 -0800, James Bottomley wrote:
> Please tell me
> our reward for all this effort isn't a single missing error print.

There were quite literally dozens of logical defects found
by the fallthrough additions.  Very few were logging only.




^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 18:25           ` Joe Perches
@ 2020-11-22 19:12             ` James Bottomley
  2020-11-22 19:22               ` Joe Perches
  0 siblings, 1 reply; 150+ messages in thread
From: James Bottomley @ 2020-11-22 19:12 UTC (permalink / raw)
  To: Joe Perches, Kees Cook, Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda

On Sun, 2020-11-22 at 10:25 -0800, Joe Perches wrote:
> On Sun, 2020-11-22 at 10:21 -0800, James Bottomley wrote:
> > Please tell me our reward for all this effort isn't a single
> > missing error print.
> 
> There were quite literally dozens of logical defects found
> by the fallthrough additions.  Very few were logging only.

So can you give us the best examples (or indeed all of them if someone
is keeping score)?  hopefully this isn't a US election situation ...

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 19:12             ` James Bottomley
@ 2020-11-22 19:22               ` Joe Perches
  2020-11-22 19:53                 ` James Bottomley
  0 siblings, 1 reply; 150+ messages in thread
From: Joe Perches @ 2020-11-22 19:22 UTC (permalink / raw)
  To: James Bottomley, Kees Cook, Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda

On Sun, 2020-11-22 at 11:12 -0800, James Bottomley wrote:
> On Sun, 2020-11-22 at 10:25 -0800, Joe Perches wrote:
> > On Sun, 2020-11-22 at 10:21 -0800, James Bottomley wrote:
> > > Please tell me our reward for all this effort isn't a single
> > > missing error print.
> > 
> > There were quite literally dozens of logical defects found
> > by the fallthrough additions.  Very few were logging only.
> 
> So can you give us the best examples (or indeed all of them if someone
> is keeping score)?  hopefully this isn't a US election situation ...

Gustavo?  Are you running for congress now?

https://lwn.net/Articles/794944/



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 19:22               ` Joe Perches
@ 2020-11-22 19:53                 ` James Bottomley
  2020-11-23 13:03                   ` [Intel-wired-lan] " Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: James Bottomley @ 2020-11-22 19:53 UTC (permalink / raw)
  To: Joe Perches, Kees Cook, Jakub Kicinski
  Cc: Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda

On Sun, 2020-11-22 at 11:22 -0800, Joe Perches wrote:
> On Sun, 2020-11-22 at 11:12 -0800, James Bottomley wrote:
> > On Sun, 2020-11-22 at 10:25 -0800, Joe Perches wrote:
> > > On Sun, 2020-11-22 at 10:21 -0800, James Bottomley wrote:
> > > > Please tell me our reward for all this effort isn't a single
> > > > missing error print.
> > > 
> > > There were quite literally dozens of logical defects found
> > > by the fallthrough additions.  Very few were logging only.
> > 
> > So can you give us the best examples (or indeed all of them if
> > someone is keeping score)?  hopefully this isn't a US election
> > situation ...
> 
> Gustavo?  Are you running for congress now?
> 
> https://lwn.net/Articles/794944/

That's 21 reported fixes of which about 50% seem to produce no change
in code behaviour at all, a quarter seem to have no user visible effect
with the remaining quarter producing unexpected errors on obscure
configuration parameters, which is why no-one really noticed them
before.

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 18:21         ` James Bottomley
  2020-11-22 18:25           ` Joe Perches
@ 2020-11-22 20:35           ` Miguel Ojeda
  2020-11-22 22:36             ` James Bottomley
  2020-11-22 22:54             ` Finn Thain
  2020-11-22 22:10           ` Sam Ravnborg
  2 siblings, 2 replies; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-22 20:35 UTC (permalink / raw)
  To: James Bottomley
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Sun, Nov 22, 2020 at 7:22 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> Well, it's a problem in an error leg, sure, but it's not a really
> compelling reason for a 141 patch series, is it?  All that fixing this
> error will do is get the driver to print "oh dear there's a problem"
> under four more conditions than it previously did.
>
> We've been at this for three years now with nearly a thousand patches,
> firstly marking all the fall throughs with /* fall through */ and later
> changing it to fallthrough.  At some point we do have to ask if the
> effort is commensurate with the protection afforded.  Please tell me
> our reward for all this effort isn't a single missing error print.

It isn't that much effort, isn't it? Plus we need to take into account
the future mistakes that it might prevent, too. So even if there were
zero problems found so far, it is still a positive change.

I would agree if these changes were high risk, though; but they are
almost trivial.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 18:21         ` James Bottomley
  2020-11-22 18:25           ` Joe Perches
  2020-11-22 20:35           ` Miguel Ojeda
@ 2020-11-22 22:10           ` Sam Ravnborg
  2 siblings, 0 replies; 150+ messages in thread
From: Sam Ravnborg @ 2020-11-22 22:10 UTC (permalink / raw)
  To: James Bottomley
  Cc: Kees Cook, Jakub Kicinski, alsa-devel, linux-atm-general,
	reiserfs-devel, linux-iio, linux-wireless, linux-fbdev,
	dri-devel, linux-kernel, Nathan Chancellor, linux-ide, dm-devel,
	keyrings, linux-mtd, GR-everest-linux-l2, wcn36xx,
	samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel,
	Nick Desaulniers, linux-scsi, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx, linux-stm32, cluster-devel,
	linux-acpi, coreteam, intel-wired-lan, linux-input, Miguel Ojeda,
	tipc-discussion, linux-ext4, linux-media, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization, target-devel,
	linux-arm-kernel, linux-hwmon, x86, linux-nfs, GR-Linux-NIC-Dev,
	linux-mm, netdev, linux-decnet-user, linux-mmc,
	Gustavo A. R. Silva, linux-renesas-soc, linux-sctp, linux-usb,
	netfilter-devel, linux-crypto, patches, Joe Perches,
	linux-integrity, linux-hardening

Hi James.

> > > If none of the 140 patches here fix a real bug, and there is no
> > > change to machine code then it sounds to me like a W=2 kind of a
> > > warning.
> > 
> > FWIW, this series has found at least one bug so far:
> > https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/
> 
> 
> Well, it's a problem in an error leg, sure, but it's not a really
> compelling reason for a 141 patch series, is it?  All that fixing this
> error will do is get the driver to print "oh dear there's a problem"
> under four more conditions than it previously did.

You are asking the wrong question here.

Yuo should ask  how many hours could have been saved by all the bugs
people have been fighting with and then fixed *before* the code
hit the kernel at all.

My personal experience is that I, more than once, have had errors
related to a missing break in my code. So this warnings is IMO a win.

And if we are only ~100 patches to have it globally enabled then it is a
no-brainer in my book.

	Sam

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 20:35           ` Miguel Ojeda
@ 2020-11-22 22:36             ` James Bottomley
  2020-11-23 14:19               ` Miguel Ojeda
  2020-11-22 22:54             ` Finn Thain
  1 sibling, 1 reply; 150+ messages in thread
From: James Bottomley @ 2020-11-22 22:36 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Sun, 2020-11-22 at 21:35 +0100, Miguel Ojeda wrote:
> On Sun, Nov 22, 2020 at 7:22 PM James Bottomley
> <James.Bottomley@hansenpartnership.com> wrote:
> > Well, it's a problem in an error leg, sure, but it's not a really
> > compelling reason for a 141 patch series, is it?  All that fixing
> > this error will do is get the driver to print "oh dear there's a
> > problem" under four more conditions than it previously did.
> > 
> > We've been at this for three years now with nearly a thousand
> > patches, firstly marking all the fall throughs with /* fall through
> > */ and later changing it to fallthrough.  At some point we do have
> > to ask if the effort is commensurate with the protection
> > afforded.  Please tell me our reward for all this effort isn't a
> > single missing error print.
> 
> It isn't that much effort, isn't it?

Well, it seems to be three years of someone's time plus the maintainer
review time and series disruption of nearly a thousand patches.  Let's
be conservative and assume the producer worked about 30% on the series
and it takes about 5-10 minutes per patch to review, merge and for
others to rework existing series.  So let's say it's cost a person year
of a relatively junior engineer producing the patches and say 100h of
review and application time.  The latter is likely the big ticket item
because it's what we have in least supply in the kernel (even though
it's 20x vs the producer time).

>  Plus we need to take into account the future mistakes that it might
> prevent, too. So even if there were zero problems found so far, it is
> still a positive change.

Well, the question I was asking is if it's worth the cost which I've
tried to outline above.

> I would agree if these changes were high risk, though; but they are
> almost trivial.

It's not about the risk of the changes it's about the cost of
implementing them.  Even if you discount the producer time (which
someone gets to pay for, and if I were the engineering manager, I'd be
unhappy about), the review/merge/rework time is pretty significant in
exchange for six minor bug fixes.  Fine, when a new compiler warning
comes along it's certainly reasonable to see if we can benefit from it
and the fact that the compiler people think it's worthwhile is enough
evidence to assume this initially.  But at some point you have to ask
whether that assumption is supported by the evidence we've accumulated
over the time we've been using it.  And if the evidence doesn't support
it perhaps it is time to stop the experiment.

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 20:35           ` Miguel Ojeda
  2020-11-22 22:36             ` James Bottomley
@ 2020-11-22 22:54             ` Finn Thain
  2020-11-22 23:04               ` James Bottomley
  2020-11-23 14:05               ` Miguel Ojeda
  1 sibling, 2 replies; 150+ messages in thread
From: Finn Thain @ 2020-11-22 22:54 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: James Bottomley, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches


On Sun, 22 Nov 2020, Miguel Ojeda wrote:

> 
> It isn't that much effort, isn't it? Plus we need to take into account 
> the future mistakes that it might prevent, too.

We should also take into account optimisim about future improvements in 
tooling.

> So even if there were zero problems found so far, it is still a positive 
> change.
> 

It is if you want to spin it that way.

> I would agree if these changes were high risk, though; but they are 
> almost trivial.
> 

This is trivial:

 case 1:
	this();
+	fallthrough;
 case 2:
 	that();

But what we inevitably get is changes like this:

 case 3:
        this();
+       break;
 case 4:
        hmmm();

Why? Mainly to silence the compiler. Also because the patch author argued 
successfully that they had found a theoretical bug, often in mature code.

But is anyone keeping score of the regressions? If unreported bugs count, 
what about unreported regressions?

> Cheers,
> Miguel
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 22:54             ` Finn Thain
@ 2020-11-22 23:04               ` James Bottomley
  2020-11-23 14:05               ` Miguel Ojeda
  1 sibling, 0 replies; 150+ messages in thread
From: James Bottomley @ 2020-11-22 23:04 UTC (permalink / raw)
  To: Finn Thain, Miguel Ojeda
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, 2020-11-23 at 09:54 +1100, Finn Thain wrote:
> But is anyone keeping score of the regressions? If unreported bugs
> count, what about unreported regressions?

Well, I was curious about the former (obviously no tool will tell me
about the latter), so I asked git what patches had a fall-through
series named in a fixes tag and these three popped out:

9cf51446e686 bpf, powerpc: Fix misuse of fallthrough in bpf_jit_comp()
6a9dc5fd6170 lib: Revert use of fallthrough pseudo-keyword in lib/
91dbd73a1739 mips/oprofile: Fix fallthrough placement

I don't think any of these is fixing a significant problem, but they
did cause someone time and trouble to investigate.

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 19:53                 ` James Bottomley
@ 2020-11-23 13:03                   ` Gustavo A. R. Silva
  2020-11-23 16:31                     ` James Bottomley
  0 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-23 13:03 UTC (permalink / raw)
  To: James Bottomley
  Cc: Joe Perches, Kees Cook, Jakub Kicinski, alsa-devel,
	linux-atm-general, reiserfs-devel, linux-iio, linux-wireless,
	linux-fbdev, dri-devel, linux-kernel, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel,
	Nick Desaulniers, linux-scsi, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx, linux-stm32, cluster-devel,
	linux-acpi, coreteam, intel-wired-lan, linux-input, Miguel Ojeda,
	tipc-discussion, linux-ext4, linux-media, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization,
	linux-arm-kernel, linux-hwmon, x86, linux-nfs, GR-Linux-NIC-Dev,
	linux-mm, netdev, linux-decnet-user, linux-mmc,
	linux-renesas-soc, linux-sctp, linux-usb, netfilter-devel,
	linux-crypto, patches, linux-integrity, target-devel,
	linux-hardening, Jonathan Cameron, Greg KH

On Sun, Nov 22, 2020 at 11:53:55AM -0800, James Bottomley wrote:
> On Sun, 2020-11-22 at 11:22 -0800, Joe Perches wrote:
> > On Sun, 2020-11-22 at 11:12 -0800, James Bottomley wrote:
> > > On Sun, 2020-11-22 at 10:25 -0800, Joe Perches wrote:
> > > > On Sun, 2020-11-22 at 10:21 -0800, James Bottomley wrote:
> > > > > Please tell me our reward for all this effort isn't a single
> > > > > missing error print.
> > > > 
> > > > There were quite literally dozens of logical defects found
> > > > by the fallthrough additions.  Very few were logging only.
> > > 
> > > So can you give us the best examples (or indeed all of them if
> > > someone is keeping score)?  hopefully this isn't a US election
> > > situation ...
> > 
> > Gustavo?  Are you running for congress now?
> > 
> > https://lwn.net/Articles/794944/
> 
> That's 21 reported fixes of which about 50% seem to produce no change
> in code behaviour at all, a quarter seem to have no user visible effect
> with the remaining quarter producing unexpected errors on obscure
> configuration parameters, which is why no-one really noticed them
> before.

The really important point here is the number of bugs this has prevented
and will prevent in the future. See an example of this, below:

https://lore.kernel.org/linux-iio/20190813135802.GB27392@kroah.com/

This work is still relevant, even if the total number of issues/bugs
we find in the process is zero (which is not the case).

"The sucky thing about doing hard work to deploy hardening is that the
result is totally invisible by definition (things not happening) [..]"
- Dmitry Vyukov

Thanks
--
Gustavo






^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 22:54             ` Finn Thain
  2020-11-22 23:04               ` James Bottomley
@ 2020-11-23 14:05               ` Miguel Ojeda
  2020-11-24  0:58                 ` Finn Thain
  1 sibling, 1 reply; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-23 14:05 UTC (permalink / raw)
  To: Finn Thain
  Cc: James Bottomley, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Sun, Nov 22, 2020 at 11:54 PM Finn Thain <fthain@telegraphics.com.au> wrote:
>
> We should also take into account optimisim about future improvements in
> tooling.

Not sure what you mean here. There is no reliable way to guess what
the intention was with a missing fallthrough, even if you parsed
whitespace and indentation.

> It is if you want to spin it that way.

How is that a "spin"? It is a fact that we won't get *implicit*
fallthrough mistakes anymore (in particular if we make it a hard
error).

> But what we inevitably get is changes like this:
>
>  case 3:
>         this();
> +       break;
>  case 4:
>         hmmm();
>
> Why? Mainly to silence the compiler. Also because the patch author argued
> successfully that they had found a theoretical bug, often in mature code.

If someone changes control flow, that is on them. Every kernel
developer knows what `break` does.

> But is anyone keeping score of the regressions? If unreported bugs count,
> what about unreported regressions?

Introducing `fallthrough` does not change semantics. If you are really
keen, you can always compare the objects because the generated code
shouldn't change.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 22:36             ` James Bottomley
@ 2020-11-23 14:19               ` Miguel Ojeda
  2020-11-23 15:58                 ` James Bottomley
  0 siblings, 1 reply; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-23 14:19 UTC (permalink / raw)
  To: James Bottomley
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Sun, Nov 22, 2020 at 11:36 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> Well, it seems to be three years of someone's time plus the maintainer
> review time and series disruption of nearly a thousand patches.  Let's
> be conservative and assume the producer worked about 30% on the series
> and it takes about 5-10 minutes per patch to review, merge and for
> others to rework existing series.  So let's say it's cost a person year
> of a relatively junior engineer producing the patches and say 100h of
> review and application time.  The latter is likely the big ticket item
> because it's what we have in least supply in the kernel (even though
> it's 20x vs the producer time).

How are you arriving at such numbers? It is a total of ~200 trivial lines.

> It's not about the risk of the changes it's about the cost of
> implementing them.  Even if you discount the producer time (which
> someone gets to pay for, and if I were the engineering manager, I'd be
> unhappy about), the review/merge/rework time is pretty significant in
> exchange for six minor bug fixes.  Fine, when a new compiler warning
> comes along it's certainly reasonable to see if we can benefit from it
> and the fact that the compiler people think it's worthwhile is enough
> evidence to assume this initially.  But at some point you have to ask
> whether that assumption is supported by the evidence we've accumulated
> over the time we've been using it.  And if the evidence doesn't support
> it perhaps it is time to stop the experiment.

Maintainers routinely review 1-line trivial patches, not to mention
internal API changes, etc.

If some company does not want to pay for that, that's fine, but they
don't get to be maintainers and claim `Supported`.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 14:19               ` Miguel Ojeda
@ 2020-11-23 15:58                 ` James Bottomley
  2020-11-23 16:24                   ` Rafael J. Wysocki
                                     ` (3 more replies)
  0 siblings, 4 replies; 150+ messages in thread
From: James Bottomley @ 2020-11-23 15:58 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, 2020-11-23 at 15:19 +0100, Miguel Ojeda wrote:
> On Sun, Nov 22, 2020 at 11:36 PM James Bottomley
> <James.Bottomley@hansenpartnership.com> wrote:
> > Well, it seems to be three years of someone's time plus the
> > maintainer review time and series disruption of nearly a thousand
> > patches.  Let's be conservative and assume the producer worked
> > about 30% on the series and it takes about 5-10 minutes per patch
> > to review, merge and for others to rework existing series.  So
> > let's say it's cost a person year of a relatively junior engineer
> > producing the patches and say 100h of review and application
> > time.  The latter is likely the big ticket item because it's what
> > we have in least supply in the kernel (even though it's 20x vs the
> > producer time).
> 
> How are you arriving at such numbers? It is a total of ~200 trivial
> lines.

Well, I used git.  It says that as of today in Linus' tree we have 889
patches related to fall throughs and the first series went in in
october 2017 ... ignoring a couple of outliers back to February.

> > It's not about the risk of the changes it's about the cost of
> > implementing them.  Even if you discount the producer time (which
> > someone gets to pay for, and if I were the engineering manager, I'd
> > be unhappy about), the review/merge/rework time is pretty
> > significant in exchange for six minor bug fixes.  Fine, when a new
> > compiler warning comes along it's certainly reasonable to see if we
> > can benefit from it and the fact that the compiler people think
> > it's worthwhile is enough evidence to assume this initially.  But
> > at some point you have to ask whether that assumption is supported
> > by the evidence we've accumulated over the time we've been using
> > it.  And if the evidence doesn't support it perhaps it is time to
> > stop the experiment.
> 
> Maintainers routinely review 1-line trivial patches, not to mention
> internal API changes, etc.

We're also complaining about the inability to recruit maintainers:

https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/

And burn out:

http://antirez.com/news/129

The whole crux of your argument seems to be maintainers' time isn't
important so we should accept all trivial patches ... I'm pushing back
on that assumption in two places, firstly the valulessness of the time
and secondly that all trivial patches are valuable.

> If some company does not want to pay for that, that's fine, but they
> don't get to be maintainers and claim `Supported`.

What I'm actually trying to articulate is a way of measuring value of
the patch vs cost ... it has nothing really to do with who foots the
actual bill.

One thesis I'm actually starting to formulate is that this continual
devaluing of maintainers is why we have so much difficulty keeping and
recruiting them.

James




^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 15:58                 ` James Bottomley
@ 2020-11-23 16:24                   ` Rafael J. Wysocki
  2020-11-23 16:32                   ` Joe Perches
                                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 150+ messages in thread
From: Rafael J. Wysocki @ 2020-11-23 16:24 UTC (permalink / raw)
  To: James Bottomley
  Cc: Miguel Ojeda, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel,
	moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...,
	amd-gfx list, bridge, ceph-devel, cluster-devel, coreteam, devel,
	dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, ACPI Devel Maling List, linux-afs, Linux ARM,
	linux-arm-msm, linux-atm-general, linux-block, linux-can,
	linux-cifs, Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, open list:FRAMEBUFFER LAYER, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	open list:LIBATA SUBSYSTEM (Serial and Parallel ATA drivers),
	linux-iio, linux-input, linux-integrity,
	moderated list:ARM/Mediatek SoC...,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, Linux-Renesas, open list:TARGET SUBSYSTEM,
	linux-sctp, linux-security-module, linux-stm32,
	open list:ULTRA-WIDEBAND (UWB) SUBSYSTEM:,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, Nov 23, 2020 at 4:58 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> On Mon, 2020-11-23 at 15:19 +0100, Miguel Ojeda wrote:
> > On Sun, Nov 22, 2020 at 11:36 PM James Bottomley
> > <James.Bottomley@hansenpartnership.com> wrote:

[cut]

> >
> > Maintainers routinely review 1-line trivial patches, not to mention
> > internal API changes, etc.
>
> We're also complaining about the inability to recruit maintainers:
>
> https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/
>
> And burn out:
>
> http://antirez.com/news/129

Right.

> The whole crux of your argument seems to be maintainers' time isn't
> important so we should accept all trivial patches ... I'm pushing back
> on that assumption in two places, firstly the valulessness of the time
> and secondly that all trivial patches are valuable.
>
> > If some company does not want to pay for that, that's fine, but they
> > don't get to be maintainers and claim `Supported`.
>
> What I'm actually trying to articulate is a way of measuring value of
> the patch vs cost ... it has nothing really to do with who foots the
> actual bill.
>
> One thesis I'm actually starting to formulate is that this continual
> devaluing of maintainers is why we have so much difficulty keeping and
> recruiting them.

Absolutely.

This is just one of the factors involved, but a significant one IMV.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 13:03                   ` [Intel-wired-lan] " Gustavo A. R. Silva
@ 2020-11-23 16:31                     ` James Bottomley
  2020-11-24 21:32                       ` Kees Cook
  0 siblings, 1 reply; 150+ messages in thread
From: James Bottomley @ 2020-11-23 16:31 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Joe Perches, Kees Cook, Jakub Kicinski, alsa-devel,
	linux-atm-general, reiserfs-devel, linux-iio, linux-wireless,
	linux-fbdev, dri-devel, linux-kernel, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel,
	Nick Desaulniers, linux-scsi, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx, linux-stm32, cluster-devel,
	linux-acpi, coreteam, intel-wired-lan, linux-input, Miguel Ojeda,
	tipc-discussion, linux-ext4, linux-media, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization,
	linux-arm-kernel, linux-hwmon, x86, linux-nfs, GR-Linux-NIC-Dev,
	linux-mm, netdev, linux-decnet-user, linux-mmc,
	linux-renesas-soc, linux-sctp, linux-usb, netfilter-devel,
	linux-crypto, patches, linux-integrity, target-devel,
	linux-hardening, Jonathan Cameron, Greg KH

On Mon, 2020-11-23 at 07:03 -0600, Gustavo A. R. Silva wrote:
> On Sun, Nov 22, 2020 at 11:53:55AM -0800, James Bottomley wrote:
> > On Sun, 2020-11-22 at 11:22 -0800, Joe Perches wrote:
> > > On Sun, 2020-11-22 at 11:12 -0800, James Bottomley wrote:
> > > > On Sun, 2020-11-22 at 10:25 -0800, Joe Perches wrote:
> > > > > On Sun, 2020-11-22 at 10:21 -0800, James Bottomley wrote:
> > > > > > Please tell me our reward for all this effort isn't a
> > > > > > single missing error print.
> > > > > 
> > > > > There were quite literally dozens of logical defects found
> > > > > by the fallthrough additions.  Very few were logging only.
> > > > 
> > > > So can you give us the best examples (or indeed all of them if
> > > > someone is keeping score)?  hopefully this isn't a US election
> > > > situation ...
> > > 
> > > Gustavo?  Are you running for congress now?
> > > 
> > > https://lwn.net/Articles/794944/
> > 
> > That's 21 reported fixes of which about 50% seem to produce no
> > change in code behaviour at all, a quarter seem to have no user
> > visible effect with the remaining quarter producing unexpected
> > errors on obscure configuration parameters, which is why no-one
> > really noticed them before.
> 
> The really important point here is the number of bugs this has
> prevented and will prevent in the future. See an example of this,
> below:
> 
> https://lore.kernel.org/linux-iio/20190813135802.GB27392@kroah.com/

I think this falls into the same category as the other six bugs: it
changes the output/input for parameters but no-one has really noticed,
usually because the command is obscure or the bias effect is minor.

> This work is still relevant, even if the total number of issues/bugs
> we find in the process is zero (which is not the case).

Really, no ... something which produces no improvement has no value at
all ... we really shouldn't be wasting maintainer time with it because
it has a cost to merge.  I'm not sure we understand where the balance
lies in value vs cost to merge but I am confident in the zero value
case.

> "The sucky thing about doing hard work to deploy hardening is that
> the result is totally invisible by definition (things not happening)
> [..]"
> - Dmitry Vyukov

Really, no.  Something that can't be measured at all doesn't exist.

And actually hardening is one of those things you can measure (which I
do have to admit isn't true for everything in the security space) ...
it's number of exploitable bugs found before you did it vs number of
exploitable bugs found after you did it.  Usually hardening eliminates
a class of bug, so the way I've measured hardening before is to go
through the CVE list for the last couple of years for product X, find
all the bugs that are of the class we're looking to eliminate and say
if we had hardened X against this class of bug we'd have eliminated Y%
of the exploits.  It can be quite impressive if Y is a suitably big
number.

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 15:58                 ` James Bottomley
  2020-11-23 16:24                   ` Rafael J. Wysocki
@ 2020-11-23 16:32                   ` Joe Perches
  2020-11-23 18:56                   ` Miguel Ojeda
  2020-11-25  9:01                   ` Sean Young
  3 siblings, 0 replies; 150+ messages in thread
From: Joe Perches @ 2020-11-23 16:32 UTC (permalink / raw)
  To: James Bottomley, Miguel Ojeda
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda

On Mon, 2020-11-23 at 07:58 -0800, James Bottomley wrote:
> We're also complaining about the inability to recruit maintainers:
> 
> https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/
> 
> And burn out:
> 
> http://antirez.com/news/129

https://www.wired.com/story/open-source-coders-few-tired/

> What I'm actually trying to articulate is a way of measuring value of
> the patch vs cost ... it has nothing really to do with who foots the
> actual bill.

It's unclear how to measure value in consistency.

But one way that costs can be reduced is by automation and _not_
involving maintainers when the patch itself is provably correct.

> One thesis I'm actually starting to formulate is that this continual
> devaluing of maintainers is why we have so much difficulty keeping and
> recruiting them.

The linux kernel has something like 1500 different maintainers listed
in the MAINTAINERS file.  That's not a trivial number.

$ git grep '^M:' MAINTAINERS | sort | uniq -c | wc -l
1543
$ git grep '^M:' MAINTAINERS| cut -f1 -d'<' | sort | uniq -c | wc -l
1446

I think the question you are asking is about trust and how it
effects development.

And back to that wired story, the actual number of what you might
be considering to be maintainers is likely less than 10% of the
listed numbers above.



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 15:58                 ` James Bottomley
  2020-11-23 16:24                   ` Rafael J. Wysocki
  2020-11-23 16:32                   ` Joe Perches
@ 2020-11-23 18:56                   ` Miguel Ojeda
  2020-11-23 20:37                     ` James Bottomley
  2020-11-25  9:01                   ` Sean Young
  3 siblings, 1 reply; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-23 18:56 UTC (permalink / raw)
  To: James Bottomley
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, Nov 23, 2020 at 4:58 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> Well, I used git.  It says that as of today in Linus' tree we have 889
> patches related to fall throughs and the first series went in in
> october 2017 ... ignoring a couple of outliers back to February.

I can see ~10k insertions over ~1k commits and 15 years that mention a
fallthrough in the entire repo. That is including some commits (like
the biggest one, 960 insertions) that have nothing to do with C
fallthrough. A single kernel release has an order of magnitude more
changes than this...

But if we do the math, for an author, at even 1 minute per line change
and assuming nothing can be automated at all, it would take 1 month of
work. For maintainers, a couple of trivial lines is noise compared to
many other patches.

In fact, this discussion probably took more time than the time it
would take to review the 200 lines. :-)

> We're also complaining about the inability to recruit maintainers:
>
> https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/
>
> And burn out:
>
> http://antirez.com/news/129

Accepting trivial and useful 1-line patches is not what makes a
voluntary maintainer quit... Thankless work with demanding deadlines is.

> The whole crux of your argument seems to be maintainers' time isn't
> important so we should accept all trivial patches

I have not said that, at all. In fact, I am a voluntary one and I
welcome patches like this. It takes very little effort on my side to
review and it helps the kernel overall. Paid maintainers are the ones
that can take care of big features/reviews.

> What I'm actually trying to articulate is a way of measuring value of
> the patch vs cost ... it has nothing really to do with who foots the
> actual bill.

I understand your point, but you were the one putting it in terms of a
junior FTE. In my view, 1 month-work (worst case) is very much worth
removing a class of errors from a critical codebase.

> One thesis I'm actually starting to formulate is that this continual
> devaluing of maintainers is why we have so much difficulty keeping and
> recruiting them.

That may very well be true, but I don't feel anybody has devalued
maintainers in this discussion.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (52 preceding siblings ...)
  2020-11-20 22:21 ` Miguel Ojeda
@ 2020-11-23 20:03 ` Jason Gunthorpe
  2020-11-24 14:47   ` Gustavo A. R. Silva
       [not found] ` <160616392671.21180.16517492185091399884.b4-ty@kernel.org>
                   ` (2 subsequent siblings)
  56 siblings, 1 reply; 150+ messages in thread
From: Jason Gunthorpe @ 2020-11-23 20:03 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook

On Fri, Nov 20, 2020 at 12:21:39PM -0600, Gustavo A. R. Silva wrote:

>   IB/hfi1: Fix fall-through warnings for Clang
>   IB/mlx4: Fix fall-through warnings for Clang
>   IB/qedr: Fix fall-through warnings for Clang
>   RDMA/mlx5: Fix fall-through warnings for Clang

I picked these four to the rdma tree, thanks

Jason

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 18:56                   ` Miguel Ojeda
@ 2020-11-23 20:37                     ` James Bottomley
  2020-11-25  0:32                       ` Miguel Ojeda
  2020-11-25 10:38                       ` Andy Shevchenko
  0 siblings, 2 replies; 150+ messages in thread
From: James Bottomley @ 2020-11-23 20:37 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, 2020-11-23 at 19:56 +0100, Miguel Ojeda wrote:
> On Mon, Nov 23, 2020 at 4:58 PM James Bottomley
> <James.Bottomley@hansenpartnership.com> wrote:
> > Well, I used git.  It says that as of today in Linus' tree we have
> > 889 patches related to fall throughs and the first series went in
> > in october 2017 ... ignoring a couple of outliers back to February.
> 
> I can see ~10k insertions over ~1k commits and 15 years that mention
> a fallthrough in the entire repo. That is including some commits
> (like the biggest one, 960 insertions) that have nothing to do with C
> fallthrough. A single kernel release has an order of magnitude more
> changes than this...
> 
> But if we do the math, for an author, at even 1 minute per line
> change and assuming nothing can be automated at all, it would take 1
> month of work. For maintainers, a couple of trivial lines is noise
> compared to many other patches.

So you think a one line patch should take one minute to produce ... I
really don't think that's grounded in reality.  I suppose a one line
patch only takes a minute to merge with b4 if no-one reviews or tests
it, but that's not really desirable.

> In fact, this discussion probably took more time than the time it
> would take to review the 200 lines. :-)

I'm framing the discussion in terms of the whole series of changes we
have done for fall through, both what's in the tree currently (889
patches) both in terms of the produce and the consumer.  That's what I
used for my figures for cost.

> > We're also complaining about the inability to recruit maintainers:
> > 
> > https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/
> > 
> > And burn out:
> > 
> > http://antirez.com/news/129
> 
> Accepting trivial and useful 1-line patches

Part of what I'm trying to measure is the "and useful" bit because
that's not a given.

> is not what makes a voluntary maintainer quit...

so the proverb "straw which broke the camel's back" uniquely doesn't
apply to maintainers

>  Thankless work with demanding deadlines is.

That's another potential reason, but it doesn't may other reasons less
valid.

> > The whole crux of your argument seems to be maintainers' time isn't
> > important so we should accept all trivial patches
> 
> I have not said that, at all. In fact, I am a voluntary one and I
> welcome patches like this. It takes very little effort on my side to
> review and it helps the kernel overall.

Well, you know, subsystems are very different in terms of the amount of
patches a maintainer has to process per release cycle of the kernel. 
If a maintainer is close to capacity, additional patches, however
trivial, become a problem.  If a maintainer has spare cycles, trivial
patches may look easy.

> Paid maintainers are the ones that can take care of big
> features/reviews.
> 
> > What I'm actually trying to articulate is a way of measuring value
> > of the patch vs cost ... it has nothing really to do with who foots
> > the actual bill.
> 
> I understand your point, but you were the one putting it in terms of
> a junior FTE.

No, I evaluated the producer side in terms of an FTE.  What we're
mostly arguing about here is the consumer side: the maintainers and
people who have to rework their patch sets. I estimated that at 100h.

>  In my view, 1 month-work (worst case) is very much worth
> removing a class of errors from a critical codebase.
> 
> > One thesis I'm actually starting to formulate is that this
> > continual devaluing of maintainers is why we have so much
> > difficulty keeping and recruiting them.
> 
> That may very well be true, but I don't feel anybody has devalued
> maintainers in this discussion.

You seem to be saying that because you find it easy to merge trivial
patches, everyone should.  I'm reminded of a friend long ago who
thought being a Tees River Pilot was a sinecure because he could
navigate the Tees blindfold.  What he forgot, of course, is that just
because it's easy with a trawler doesn't mean it's easy with an oil
tanker.  In fact it takes longer to qualify as a Tees River Pilot than
it does to get a PhD.

James



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 015/141] netfilter: Fix fall-through warnings for Clang
  2020-11-20 22:47   ` Florian Westphal
@ 2020-11-23 22:45     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-23 22:45 UTC (permalink / raw)
  To: Florian Westphal
  Cc: Pablo Neira Ayuso, Jozsef Kadlecsik, David S. Miller,
	Jakub Kicinski, netfilter-devel, coreteam, netdev, linux-kernel,
	linux-hardening

On Fri, Nov 20, 2020 at 11:47:37PM +0100, Florian Westphal wrote:
> Gustavo A. R. Silva <gustavoars@kernel.org> wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> > warnings by explicitly adding multiple break statements instead of just
> > letting the code fall through to the next case.
> 
> Acked-by: Florian Westphal <fw@strlen.de>
> 
> Feel free to carry this in next iteration of series, if any.

Thanks, Florian.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [EXT] [PATCH 018/141] qed: Fix fall-through warnings for Clang
  2020-11-20 18:50   ` [EXT] " Igor Russkikh
@ 2020-11-23 22:46     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-23 22:46 UTC (permalink / raw)
  To: Igor Russkikh
  Cc: Ariel Elior, David S. Miller, Jakub Kicinski,
	GR-everest-linux-l2, netdev, linux-kernel, linux-hardening

On Fri, Nov 20, 2020 at 09:50:06PM +0300, Igor Russkikh wrote:
> 
> 
> On 20/11/2020 9:26 pm, Gustavo A. R. Silva wrote:
> > External Email
> > 
> > ----------------------------------------------------------------------
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> > warnings by explicitly adding a couple of break statements instead of
> > just letting the code fall through to the next case.
> > 
> > Link:
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_KSPP_linux
> > _issues_115&d=DwIBAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=GtqbaEwqFLiM6BiwNMdKmpXb5o
> > up1VLiSIroUNQwbYA&m=6E7IvGvqcEGj8wEOVoN1BySZhGUVECVTBJCmNiRsHUw&s=J1SWrfEL
> > erJOzUlJdD_S5afGaZosmVP8lyKsu9DTULw&e= 
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> 
> Reviewed-by: Igor Russkikh <irusskikh@marvell.com>

Thanks, Igor.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 044/141] net/mlx4: Fix fall-through warnings for Clang
  2020-11-22  8:36   ` Tariq Toukan
@ 2020-11-23 22:49     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-23 22:49 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Tariq Toukan, David S. Miller, Jakub Kicinski, netdev,
	linux-rdma, linux-kernel, linux-hardening

On Sun, Nov 22, 2020 at 10:36:01AM +0200, Tariq Toukan wrote:
> 
> 
> On 11/20/2020 8:31 PM, Gustavo A. R. Silva wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> > by explicitly adding a break statement instead of just letting the code
> > fall through to the next case.
> > 
> > Link: https://github.com/KSPP/linux/issues/115
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > ---
> >   drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
> > index 1187ef1375e2..e6b8b8dc7894 100644
> > --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
> > +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c
> > @@ -2660,6 +2660,7 @@ int mlx4_FREE_RES_wrapper(struct mlx4_dev *dev, int slave,
> >   	case RES_XRCD:
> >   		err = xrcdn_free_res(dev, slave, vhcr->op_modifier, alop,
> >   				     vhcr->in_param, &vhcr->out_param);
> > +		break;
> >   	default:
> >   		break;
> > 
> 
> Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
> 
> Thanks for your patch.

Thanks, Tariq.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 14:05               ` Miguel Ojeda
@ 2020-11-24  0:58                 ` Finn Thain
  2020-11-24  1:05                   ` Joe Perches
  2020-11-24 23:46                   ` Miguel Ojeda
  0 siblings, 2 replies; 150+ messages in thread
From: Finn Thain @ 2020-11-24  0:58 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: James Bottomley, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches


On Mon, 23 Nov 2020, Miguel Ojeda wrote:

> On Mon, 23 Nov 2020, Finn Thain wrote:
> 
> > On Sun, 22 Nov 2020, Miguel Ojeda wrote:
> > 
> > > 
> > > It isn't that much effort, isn't it? Plus we need to take into 
> > > account the future mistakes that it might prevent, too.
> > 
> > We should also take into account optimisim about future improvements 
> > in tooling.
> > 
> Not sure what you mean here. There is no reliable way to guess what the 
> intention was with a missing fallthrough, even if you parsed whitespace 
> and indentation.
> 

What I meant was that you've used pessimism as if it was fact.

For example, "There is no way to guess what the effect would be if the 
compiler trained programmers to add a knee-jerk 'break' statement to avoid 
a warning".

Moreover, what I meant was that preventing programmer mistakes is a 
problem to be solved by development tools. The idea that retro-fitting new 
language constructs onto mature code is somehow necessary to "prevent 
future mistakes" is entirely questionable.

> > > So even if there were zero problems found so far, it is still a 
> > > positive change.
> > > 
> > 
> > It is if you want to spin it that way.
> > 
> How is that a "spin"? It is a fact that we won't get *implicit* 
> fallthrough mistakes anymore (in particular if we make it a hard error).
> 

Perhaps "handwaving" is a better term?

> > > I would agree if these changes were high risk, though; but they are 
> > > almost trivial.
> > > 
> > 
> > This is trivial:
> > 
> >  case 1:
> >         this();
> > +       fallthrough;
> >  case 2:
> >         that();
> > 
> > But what we inevitably get is changes like this:
> > 
> >  case 3:
> >         this();
> > +       break;
> >  case 4:
> >         hmmm();
> > 
> > Why? Mainly to silence the compiler. Also because the patch author 
> > argued successfully that they had found a theoretical bug, often in 
> > mature code.
> > 
> If someone changes control flow, that is on them. Every kernel developer 
> knows what `break` does.
> 

Sure. And if you put -Wimplicit-fallthrough into the Makefile and if that 
leads to well-intentioned patches that cause regressions, it is partly on 
you.

Have you ever considered the overall cost of the countless 
-Wpresume-incompetence flags?

Perhaps you pay the power bill for a build farm that produces logs that 
no-one reads? Perhaps you've run git bisect, knowing that the compiler 
messages are not interesting? Or compiled software in using a language 
that generates impenetrable messages? If so, here's a tip:

# grep CFLAGS /etc/portage/make.conf 
CFLAGS="... -Wno-all -Wno-extra ..."
CXXFLAGS="${CFLAGS}"

Now allow me some pessimism: the hardware upgrades, gigawatt hours and 
wait time attributable to obligatory static analyses are a net loss.

> > But is anyone keeping score of the regressions? If unreported bugs 
> > count, what about unreported regressions?
> > 
> Introducing `fallthrough` does not change semantics. If you are really 
> keen, you can always compare the objects because the generated code 
> shouldn't change.
> 

No, it's not for me to prove that such patches don't affect code 
generation. That's for the patch author and (unfortunately) for reviewers.

> Cheers,
> Miguel
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24  0:58                 ` Finn Thain
@ 2020-11-24  1:05                   ` Joe Perches
  2020-11-24  2:48                     ` Finn Thain
  2020-11-24 23:46                   ` Miguel Ojeda
  1 sibling, 1 reply; 150+ messages in thread
From: Joe Perches @ 2020-11-24  1:05 UTC (permalink / raw)
  To: Finn Thain, Miguel Ojeda
  Cc: James Bottomley, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda

On Tue, 2020-11-24 at 11:58 +1100, Finn Thain wrote:
> it's not for me to prove that such patches don't affect code 
> generation. That's for the patch author and (unfortunately) for reviewers.

Ideally, that proof would be provided by the compilation system itself
and not patch authors nor reviewers nor maintainers.

Unfortunately gcc does not guarantee repeatability or deterministic output.
To my knowledge, neither does clang.



^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 16:17       ` Kees Cook
  2020-11-22 18:21         ` James Bottomley
@ 2020-11-24  1:32         ` Nick Desaulniers
  2020-11-24 21:25           ` Kees Cook
  2020-12-01 14:08           ` Dan Carpenter
  2020-12-01 14:04         ` Dan Carpenter
  2 siblings, 2 replies; 150+ messages in thread
From: Nick Desaulniers @ 2020-11-24  1:32 UTC (permalink / raw)
  To: Kees Cook
  Cc: Jakub Kicinski, Gustavo A. R. Silva, LKML, alsa-devel,
	amd-gfx list, bridge, ceph-devel, cluster-devel, coreteam, devel,
	dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, Linux Memory Management List, linux-mtd,
	linux-nfs, linux-rdma, Linux-Renesas, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nathan Chancellor, Miguel Ojeda,
	Joe Perches

On Sun, Nov 22, 2020 at 8:17 AM Kees Cook <keescook@chromium.org> wrote:
>
> On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> > If none of the 140 patches here fix a real bug, and there is no change
> > to machine code then it sounds to me like a W=2 kind of a warning.
>
> FWIW, this series has found at least one bug so far:
> https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/

So looks like the bulk of these are:
switch (x) {
  case 0:
    ++x;
  default:
    break;
}

I have a patch that fixes those up for clang:
https://reviews.llvm.org/D91895

There's 3 other cases that don't quite match between GCC and Clang I
observe in the kernel:
switch (x) {
  case 0:
    ++x;
  default:
    goto y;
}
y:;

switch (x) {
  case 0:
    ++x;
  default:
    return;
}

switch (x) {
  case 0:
    ++x;
  default:
    ;
}

Based on your link, and Nathan's comment on my patch, maybe Clang
should continue to warn for the above (at least the `default: return;`
case) and GCC should change?  While the last case looks harmless,
there were only 1 or 2 across the tree in my limited configuration
testing; I really think we should just add `break`s for those.
-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24  1:05                   ` Joe Perches
@ 2020-11-24  2:48                     ` Finn Thain
  0 siblings, 0 replies; 150+ messages in thread
From: Finn Thain @ 2020-11-24  2:48 UTC (permalink / raw)
  To: Joe Perches
  Cc: Miguel Ojeda, James Bottomley, Kees Cook, Jakub Kicinski,
	Gustavo A. R. Silva, linux-kernel, alsa-devel, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, devel, dm-devel, drbd-dev,
	dri-devel, GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda


On Mon, 23 Nov 2020, Joe Perches wrote:

> On Tue, 2020-11-24 at 11:58 +1100, Finn Thain wrote:
> > it's not for me to prove that such patches don't affect code 
> > generation. That's for the patch author and (unfortunately) for 
> > reviewers.
> 
> Ideally, that proof would be provided by the compilation system itself 
> and not patch authors nor reviewers nor maintainers.
> 
> Unfortunately gcc does not guarantee repeatability or deterministic 
> output. To my knowledge, neither does clang.
> 

Yes, I've said the same thing myself. But having attempted it, I now think 
this is a hard problem. YMMV.

https://lore.kernel.org/linux-scsi/alpine.LNX.2.22.394.2004281017310.12@nippy.intranet/
https://lore.kernel.org/linux-scsi/alpine.LNX.2.22.394.2005211358460.8@nippy.intranet/

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 108/141] netfilter: ipt_REJECT: Fix fall-through warnings for Clang
  2020-11-20 22:49   ` Florian Westphal
@ 2020-11-24 14:37     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-24 14:37 UTC (permalink / raw)
  To: Florian Westphal
  Cc: Pablo Neira Ayuso, Jozsef Kadlecsik, David S. Miller,
	Alexey Kuznetsov, Hideaki YOSHIFUJI, Jakub Kicinski,
	netfilter-devel, coreteam, netdev, linux-kernel, linux-hardening

On Fri, Nov 20, 2020 at 11:49:05PM +0100, Florian Westphal wrote:
> Gustavo A. R. Silva <gustavoars@kernel.org> wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> > by explicitly adding a break statement instead of letting the code fall
> > through to the next case.
> 
> Acked-by: Florian Westphal <fw@strlen.de>

Thanks, Florian.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 20:03 ` Jason Gunthorpe
@ 2020-11-24 14:47   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-24 14:47 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook

On Mon, Nov 23, 2020 at 04:03:45PM -0400, Jason Gunthorpe wrote:
> On Fri, Nov 20, 2020 at 12:21:39PM -0600, Gustavo A. R. Silva wrote:
> 
> >   IB/hfi1: Fix fall-through warnings for Clang
> >   IB/mlx4: Fix fall-through warnings for Clang
> >   IB/qedr: Fix fall-through warnings for Clang
> >   RDMA/mlx5: Fix fall-through warnings for Clang
> 
> I picked these four to the rdma tree, thanks

Awesome. :)

Thank you, Jason.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
       [not found] ` <160616392671.21180.16517492185091399884.b4-ty@kernel.org>
@ 2020-11-24 14:47   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-24 14:47 UTC (permalink / raw)
  To: Mark Brown
  Cc: linux-kernel, linux-crypto, linux-sctp, Nathan Chancellor,
	linux-hardening, usb-storage, linux-block, linux-security-module,
	bridge, GR-Linux-NIC-Dev, rds-devel, dri-devel, linux-media,
	wcn36xx, linux-wireless, linux-mediatek, reiserfs-devel,
	oss-drivers, linux-arm-kernel, alsa-devel, virtualization,
	Joe Perches, patches, linux-gpio, linux-hwmon, linux-cifs,
	coreteam, Kees Cook, Nick Desaulniers, linux-scsi, linux-afs,
	netfilter-devel, linux-geode, drbd-dev, linux-ext4, linux-hams,
	target-devel, samba-technical, tipc-discussion, linux-stm32,
	linux-renesas-soc, linux-input, amd-gfx, linux-nfs, devel,
	selinux, linux-atm-general, linux-iio, linux-i3c, Miguel Ojeda,
	linux-can, linux-integrity, GR-everest-linux-l2, keyrings,
	intel-wired-lan, linux-usb, nouveau, x86, xen-devel, linux-mm,
	cluster-devel, linux1394-devel, linux-decnet-user, op-tee,
	linux-ide, intel-gfx, linux-acpi, dm-devel, linux-watchdog,
	linux-rdma, linux-mtd, ceph-devel, linux-arm-msm, linux-mmc,
	linux-fbdev, netdev

On Mon, Nov 23, 2020 at 08:38:46PM +0000, Mark Brown wrote:
> On Fri, 20 Nov 2020 12:21:39 -0600, Gustavo A. R. Silva wrote:
> > This series aims to fix almost all remaining fall-through warnings in
> > order to enable -Wimplicit-fallthrough for Clang.
> > 
> > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> > add multiple break/goto/return/fallthrough statements instead of just
> > letting the code fall through to the next case.
> > 
> > [...]
> 
> Applied to
> 
>    https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
> 
> Thanks!
> 
> [1/1] regulator: as3722: Fix fall-through warnings for Clang
>       commit: b52b417ccac4fae5b1f2ec4f1d46eb91e4493dc5

Thank you, Mark.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 117/141] rtl8xxxu: Fix fall-through warnings for Clang
  2020-11-20 21:39   ` Jes Sorensen
@ 2020-11-24 16:09     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-11-24 16:09 UTC (permalink / raw)
  To: Jes Sorensen
  Cc: Kalle Valo, David S. Miller, Jakub Kicinski, linux-wireless,
	netdev, linux-kernel, linux-hardening

On Fri, Nov 20, 2020 at 04:39:42PM -0500, Jes Sorensen wrote:
> On 11/20/20 1:38 PM, Gustavo A. R. Silva wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix
> > multiple warnings by replacing /* fall through */ comments with
> > the new pseudo-keyword macro fallthrough; instead of letting the
> > code fall through to the next case.
> > 
> > Notice that Clang doesn't recognize /* fall through */ comments as
> > implicit fall-through markings.
> > 
> > Link: https://github.com/KSPP/linux/issues/115
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > ---
> >  drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> While I wasn't CC'ed on the cover-letter I see Jakub also raised issues
> about this unnecessary patch noise.
> 
> Quite frankly, this seems to be patch churn for the sake of patch churn.
> If clang is broken, fix clang instead.

Just notice that the idea behind this and the following patch is exactly
the same:

https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git/commit/?id=3f95e92c8a8516b745594049dfccc8c5f8895eea

I could resend this same patch with a different changelog text, but I
don't think such a thing is necessary. However, if people prefer that
approach, just let me know and I can do it.

Thanks
--
Gustavo

> > diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> > index 5cd7ef3625c5..afc97958fa4d 100644
> > --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> > +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> > @@ -1145,7 +1145,7 @@ void rtl8xxxu_gen1_config_channel(struct ieee80211_hw *hw)
> >  	switch (hw->conf.chandef.width) {
> >  	case NL80211_CHAN_WIDTH_20_NOHT:
> >  		ht = false;
> > -		/* fall through */
> > +		fallthrough;
> >  	case NL80211_CHAN_WIDTH_20:
> >  		opmode |= BW_OPMODE_20MHZ;
> >  		rtl8xxxu_write8(priv, REG_BW_OPMODE, opmode);
> > @@ -1272,7 +1272,7 @@ void rtl8xxxu_gen2_config_channel(struct ieee80211_hw *hw)
> >  	switch (hw->conf.chandef.width) {
> >  	case NL80211_CHAN_WIDTH_20_NOHT:
> >  		ht = false;
> > -		/* fall through */
> > +		fallthrough;
> >  	case NL80211_CHAN_WIDTH_20:
> >  		rf_mode_bw |= WMAC_TRXPTCL_CTL_BW_20;
> >  		subchannel = 0;
> > @@ -1741,11 +1741,11 @@ static int rtl8xxxu_identify_chip(struct rtl8xxxu_priv *priv)
> >  		case 3:
> >  			priv->ep_tx_low_queue = 1;
> >  			priv->ep_tx_count++;
> > -			/* fall through */
> > +			fallthrough;
> >  		case 2:
> >  			priv->ep_tx_normal_queue = 1;
> >  			priv->ep_tx_count++;
> > -			/* fall through */
> > +			fallthrough;
> >  		case 1:
> >  			priv->ep_tx_high_queue = 1;
> >  			priv->ep_tx_count++;
> > 
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24  1:32         ` Nick Desaulniers
@ 2020-11-24 21:25           ` Kees Cook
  2020-11-25 23:02             ` Edward Cree
  2020-12-01 14:08           ` Dan Carpenter
  1 sibling, 1 reply; 150+ messages in thread
From: Kees Cook @ 2020-11-24 21:25 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Jakub Kicinski, Gustavo A. R. Silva, LKML, alsa-devel,
	amd-gfx list, bridge, ceph-devel, cluster-devel, coreteam, devel,
	dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, Linux Memory Management List, linux-mtd,
	linux-nfs, linux-rdma, Linux-Renesas, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nathan Chancellor, Miguel Ojeda,
	Joe Perches

On Mon, Nov 23, 2020 at 05:32:51PM -0800, Nick Desaulniers wrote:
> On Sun, Nov 22, 2020 at 8:17 AM Kees Cook <keescook@chromium.org> wrote:
> >
> > On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> > > If none of the 140 patches here fix a real bug, and there is no change
> > > to machine code then it sounds to me like a W=2 kind of a warning.
> >
> > FWIW, this series has found at least one bug so far:
> > https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/
> 
> So looks like the bulk of these are:
> switch (x) {
>   case 0:
>     ++x;
>   default:
>     break;
> }
> 
> I have a patch that fixes those up for clang:
> https://reviews.llvm.org/D91895

I still think this isn't right -- it's a case statement that runs off
the end without an explicit flow control determination. I think Clang is
right to warn for these, and GCC should also warn.

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 16:31                     ` James Bottomley
@ 2020-11-24 21:32                       ` Kees Cook
  2020-11-24 22:24                         ` Finn Thain
  2020-11-25  7:05                         ` James Bottomley
  0 siblings, 2 replies; 150+ messages in thread
From: Kees Cook @ 2020-11-24 21:32 UTC (permalink / raw)
  To: James Bottomley
  Cc: Gustavo A. R. Silva, Joe Perches, Jakub Kicinski, alsa-devel,
	linux-atm-general, reiserfs-devel, linux-iio, linux-wireless,
	linux-fbdev, dri-devel, linux-kernel, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel,
	Nick Desaulniers, linux-scsi, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx, linux-stm32, cluster-devel,
	linux-acpi, coreteam, intel-wired-lan, linux-input, Miguel Ojeda,
	tipc-discussion, linux-ext4, linux-media, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization,
	linux-arm-kernel, linux-hwmon, x86, linux-nfs, GR-Linux-NIC-Dev,
	linux-mm, netdev, linux-decnet-user, linux-mmc,
	linux-renesas-soc, linux-sctp, linux-usb, netfilter-devel,
	linux-crypto, patches, linux-integrity, target-devel,
	linux-hardening, Jonathan Cameron, Greg KH

On Mon, Nov 23, 2020 at 08:31:30AM -0800, James Bottomley wrote:
> Really, no ... something which produces no improvement has no value at
> all ... we really shouldn't be wasting maintainer time with it because
> it has a cost to merge.  I'm not sure we understand where the balance
> lies in value vs cost to merge but I am confident in the zero value
> case.

What? We can't measure how many future bugs aren't introduced because the
kernel requires explicit case flow-control statements for all new code.

We already enable -Wimplicit-fallthrough globally, so that's not the
discussion. The issue is that Clang is (correctly) even more strict
than GCC for this, so these are the remaining ones to fix for full Clang
coverage too.

People have spent more time debating this already than it would have
taken to apply the patches. :)

This is about robustness and language wrangling. It's a big code-base,
and this is the price of our managing technical debt for permanent
robustness improvements. (The numbers I ran from Gustavo's earlier
patches were that about 10% of the places adjusted were identified as
legitimate bugs being fixed. This final series may be lower, but there
are still bugs being found from it -- we need to finish this and shut
the door on it for good.)

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24 21:32                       ` Kees Cook
@ 2020-11-24 22:24                         ` Finn Thain
  2020-11-24 23:15                           ` Miguel Ojeda
  2020-11-25  7:05                         ` James Bottomley
  1 sibling, 1 reply; 150+ messages in thread
From: Finn Thain @ 2020-11-24 22:24 UTC (permalink / raw)
  To: Kees Cook
  Cc: James Bottomley, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, linux-kernel,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, Nick Desaulniers, linux-scsi, linux-rdma,
	oss-drivers, bridge, linux-security-module, amd-gfx, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, linux-arm-kernel, linux-hwmon, x86, linux-nfs,
	GR-Linux-NIC-Dev, linux-mm, netdev, linux-decnet-user, linux-mmc,
	linux-renesas-soc, linux-sctp, linux-usb, netfilter-devel,
	linux-crypto, patches, linux-integrity, target-devel,
	linux-hardening, Jonathan Cameron, Greg KH

On Tue, 24 Nov 2020, Kees Cook wrote:

> On Mon, Nov 23, 2020 at 08:31:30AM -0800, James Bottomley wrote:
> > Really, no ... something which produces no improvement has no value at 
> > all ... we really shouldn't be wasting maintainer time with it because 
> > it has a cost to merge.  I'm not sure we understand where the balance 
> > lies in value vs cost to merge but I am confident in the zero value 
> > case.
> 
> What? We can't measure how many future bugs aren't introduced because 
> the kernel requires explicit case flow-control statements for all new 
> code.
> 

These statements are not "missing" unless you presume that code written 
before the latest de facto language spec was written should somehow be 
held to that spec.

If the 'fallthrough' statement is not part of the latest draft spec then 
we should ask why not before we embrace it. Being that the kernel still 
prefers -std=gnu89 you might want to consider what has prevented 
-std=gnu99 or -std=gnu2x etc.

> We already enable -Wimplicit-fallthrough globally, so that's not the 
> discussion. The issue is that Clang is (correctly) even more strict than 
> GCC for this, so these are the remaining ones to fix for full Clang 
> coverage too.
> 

Seems to me you should be patching the compiler.

When you have consensus among the language lawyers you'll have more 
credibility with those being subjected to enforcement.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24 22:24                         ` Finn Thain
@ 2020-11-24 23:15                           ` Miguel Ojeda
  2020-11-24 23:53                             ` Finn Thain
  0 siblings, 1 reply; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-24 23:15 UTC (permalink / raw)
  To: Finn Thain
  Cc: Kees Cook, James Bottomley, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, linux-kernel,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, Nick Desaulniers, linux-scsi, linux-rdma,
	oss-drivers, bridge, linux-security-module, amd-gfx, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, Ext4 Developers List,
	Linux Media Mailing List, linux-watchdog, selinux, linux-arm-msm,
	intel-gfx, linux-geode, linux-can, linux-block, linux-gpio,
	op-tee, linux-mediatek, xen-devel, nouveau, linux-hams,
	ceph-devel, virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux-MM, Network Development,
	linux-decnet-user, linux-mmc, linux-renesas-soc, linux-sctp,
	linux-usb, netfilter-devel, Linux Crypto Mailing List, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH

On Tue, Nov 24, 2020 at 11:24 PM Finn Thain <fthain@telegraphics.com.au> wrote:
>
> These statements are not "missing" unless you presume that code written
> before the latest de facto language spec was written should somehow be
> held to that spec.

There is no "language spec" the kernel adheres to. Even if it did,
kernel code is not frozen. If an improvement is found, it should be
applied.

> If the 'fallthrough' statement is not part of the latest draft spec then
> we should ask why not before we embrace it. Being that the kernel still
> prefers -std=gnu89 you might want to consider what has prevented
> -std=gnu99 or -std=gnu2x etc.

The C standard has nothing to do with this. We use compiler extensions
of several kinds, for many years. Even discounting those extensions,
the kernel is not even conforming to C due to e.g. strict aliasing. I
am not sure what you are trying to argue here.

But, since you insist: yes, the `fallthrough` attribute is in the
current C2x draft.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24  0:58                 ` Finn Thain
  2020-11-24  1:05                   ` Joe Perches
@ 2020-11-24 23:46                   ` Miguel Ojeda
  1 sibling, 0 replies; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-24 23:46 UTC (permalink / raw)
  To: Finn Thain
  Cc: James Bottomley, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Tue, Nov 24, 2020 at 1:58 AM Finn Thain <fthain@telegraphics.com.au> wrote:
>
> What I meant was that you've used pessimism as if it was fact.

"future mistakes that it might prevent" is neither pessimism nor states a fact.

> For example, "There is no way to guess what the effect would be if the
> compiler trained programmers to add a knee-jerk 'break' statement to avoid
> a warning".

It is only knee-jerk if you think you are infallible.

> Moreover, what I meant was that preventing programmer mistakes is a
> problem to be solved by development tools

This warning comes from a development tool -- the compiler.

> The idea that retro-fitting new
> language constructs onto mature code is somehow necessary to "prevent
> future mistakes" is entirely questionable.

The kernel is not a frozen codebase.

Further, "mature code vs. risk of change" arguments don't apply here
because the semantics of the program and binary output isn't changing.

> Sure. And if you put -Wimplicit-fallthrough into the Makefile and if that
> leads to well-intentioned patches that cause regressions, it is partly on
> you.

Again: adding a `fallthrough` does not change the program semantics.
If you are a maintainer and want to cross-check, compare the codegen.

> Have you ever considered the overall cost of the countless
> -Wpresume-incompetence flags?

Yeah: negative. On the other hand, the overall cost of the countless
-fI-am-infallible flags is very noticeable.

> Perhaps you pay the power bill for a build farm that produces logs that
> no-one reads? Perhaps you've run git bisect, knowing that the compiler
> messages are not interesting? Or compiled software in using a language
> that generates impenetrable messages? If so, here's a tip:
>
> # grep CFLAGS /etc/portage/make.conf
> CFLAGS="... -Wno-all -Wno-extra ..."
> CXXFLAGS="${CFLAGS}"
>
> Now allow me some pessimism: the hardware upgrades, gigawatt hours and
> wait time attributable to obligatory static analyses are a net loss.

If you really believe compiler warnings and static analysis are
useless and costly, I think there is not much point in continuing the
discussion.

> No, it's not for me to prove that such patches don't affect code
> generation. That's for the patch author and (unfortunately) for reviewers.

I was not asking you to prove it. I am stating that proving it is very easy.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24 23:15                           ` Miguel Ojeda
@ 2020-11-24 23:53                             ` Finn Thain
  2020-11-25  1:05                               ` Miguel Ojeda
  0 siblings, 1 reply; 150+ messages in thread
From: Finn Thain @ 2020-11-24 23:53 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Kees Cook, James Bottomley, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, linux-kernel,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, Nick Desaulniers, linux-scsi, linux-rdma,
	oss-drivers, bridge, linux-security-module, amd-gfx, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, Ext4 Developers List,
	Linux Media Mailing List, linux-watchdog, selinux, linux-arm-msm,
	intel-gfx, linux-geode, linux-can, linux-block, linux-gpio,
	op-tee, linux-mediatek, xen-devel, nouveau, linux-hams,
	ceph-devel, virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux-MM, Network Development,
	linux-decnet-user, linux-mmc, linux-renesas-soc, linux-sctp,
	linux-usb, netfilter-devel, Linux Crypto Mailing List, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH


On Wed, 25 Nov 2020, Miguel Ojeda wrote:

> 
> The C standard has nothing to do with this. We use compiler extensions 
> of several kinds, for many years. Even discounting those extensions, the 
> kernel is not even conforming to C due to e.g. strict aliasing. I am not 
> sure what you are trying to argue here.
> 

I'm saying that supporting the official language spec makes more sense 
than attempting to support a multitude of divergent interpretations of the 
spec (i.e. gcc, clang, coverity etc.)

I'm also saying that the reason why we use -std=gnu89 is that existing 
code was written in that language, not in ad hoc languages comprised of 
collections of extensions that change with every release.

> But, since you insist: yes, the `fallthrough` attribute is in the 
> current C2x draft.
> 

Thank you for checking. I found a free version that's only 6 weeks old:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2583.pdf

It will be interesting to see whether 6.7.11.5 changes once the various 
implementations reach agreement.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 20:37                     ` James Bottomley
@ 2020-11-25  0:32                       ` Miguel Ojeda
  2020-11-25 22:44                         ` Edward Cree
  2020-11-25 10:38                       ` Andy Shevchenko
  1 sibling, 1 reply; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-25  0:32 UTC (permalink / raw)
  To: James Bottomley
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, Nov 23, 2020 at 9:38 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> So you think a one line patch should take one minute to produce ... I
> really don't think that's grounded in reality.

No, I have not said that. Please don't put words in my mouth (again).

I have said *authoring* lines of *this* kind takes a minute per line.
Specifically: lines fixing the fallthrough warning mechanically and
repeatedly where the compiler tells you to, and doing so full-time for
a month.

For instance, take the following one from Gustavo. Are you really
saying it takes 12 minutes (your number) to write that `break;`?

diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c
index 24cc445169e2..a3e0fb5b8671 100644
--- a/drivers/gpu/drm/via/via_irq.c
+++ b/drivers/gpu/drm/via/via_irq.c
@@ -364,6 +364,7 @@ int via_wait_irq(struct drm_device *dev, void
*data, struct drm_file *file_priv)
                irqwait->request.sequence +=
                        atomic_read(&cur_irq->irq_received);
                irqwait->request.type &= ~_DRM_VBLANK_RELATIVE;
+               break;
        case VIA_IRQ_ABSOLUTE:
                break;
        default:

>  I suppose a one line
> patch only takes a minute to merge with b4 if no-one reviews or tests
> it, but that's not really desirable.

I have not said that either. I said reviewing and merging those are
noise compared to any complex patch. Testing should be done by the
author comparing codegen.

> Part of what I'm trying to measure is the "and useful" bit because
> that's not a given.

It is useful since it makes intent clear. It also catches actual bugs,
which is even more valuable.

> Well, you know, subsystems are very different in terms of the amount of
> patches a maintainer has to process per release cycle of the kernel.
> If a maintainer is close to capacity, additional patches, however
> trivial, become a problem.  If a maintainer has spare cycles, trivial
> patches may look easy.

First of all, voluntary maintainers choose their own workload.
Furthermore, we already measure capacity in the `MAINTAINERS` file:
maintainers can state they can only handle a few patches. Finally, if
someone does not have time for a trivial patch, they are very unlikely
to have any time to review big ones.

> You seem to be saying that because you find it easy to merge trivial
> patches, everyone should.

Again, I have not said anything of the sort.

Cheers,
Miguel

^ permalink raw reply related	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24 23:53                             ` Finn Thain
@ 2020-11-25  1:05                               ` Miguel Ojeda
  0 siblings, 0 replies; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-25  1:05 UTC (permalink / raw)
  To: Finn Thain
  Cc: Kees Cook, James Bottomley, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, linux-kernel,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, Nick Desaulniers, linux-scsi, linux-rdma,
	oss-drivers, bridge, linux-security-module, amd-gfx, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, Ext4 Developers List,
	Linux Media Mailing List, linux-watchdog, selinux, linux-arm-msm,
	intel-gfx, linux-geode, linux-can, linux-block, linux-gpio,
	op-tee, linux-mediatek, xen-devel, nouveau, linux-hams,
	ceph-devel, virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux-MM, Network Development,
	linux-decnet-user, linux-mmc, linux-renesas-soc, linux-sctp,
	linux-usb, netfilter-devel, Linux Crypto Mailing List, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH

On Wed, Nov 25, 2020 at 12:53 AM Finn Thain <fthain@telegraphics.com.au> wrote:
>
> I'm saying that supporting the official language spec makes more sense
> than attempting to support a multitude of divergent interpretations of the
> spec (i.e. gcc, clang, coverity etc.)

Making the kernel strictly conforming is a ship that sailed long ago,
for several reasons. Anyway, supporting several compilers and other
tools, regardless of extensions, is valuable.

> I'm also saying that the reason why we use -std=gnu89 is that existing
> code was written in that language, not in ad hoc languages comprised of
> collections of extensions that change with every release.

No, we aren't particularly tied to `gnu89` or anything like that. We
could actually go for `gnu11` already, since the minimum GCC and Clang
support it. Even if a bit of code needs fixing, that shouldn't be a
problem if someone puts the work.

In other words, the kernel code is not frozen, nor are the features it
uses from compilers. They do, in fact, change from time to time.

> Thank you for checking. I found a free version that's only 6 weeks old:

You're welcome! There are quite a few new attributes coming, mostly
following C++ ones.

> It will be interesting to see whether 6.7.11.5 changes once the various
> implementations reach agreement.

Not sure what you mean. The standard does not evolve through
implementations' agreement (although standardizing existing practice
is one of the best arguments to back a change).

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 127/141] staging: qlge: Fix fall-through warnings for Clang
  2020-11-20 18:39 ` [PATCH 127/141] staging: qlge: " Gustavo A. R. Silva
@ 2020-11-25  4:42   ` Benjamin Poirier
  2020-11-30 12:55     ` Dan Carpenter
  0 siblings, 1 reply; 150+ messages in thread
From: Benjamin Poirier @ 2020-11-25  4:42 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Manish Chopra, Greg Kroah-Hartman, GR-Linux-NIC-Dev, netdev,
	devel, linux-kernel, linux-hardening

On 2020-11-20 12:39 -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/staging/qlge/qlge_main.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
> index 27da386f9d87..c41b1373dcf8 100644
> --- a/drivers/staging/qlge/qlge_main.c
> +++ b/drivers/staging/qlge/qlge_main.c
> @@ -1385,6 +1385,7 @@ static void ql_categorize_rx_err(struct ql_adapter *qdev, u8 rx_err,
>  		break;
>  	case IB_MAC_IOCB_RSP_ERR_CRC:
>  		stats->rx_crc_err++;
> +		break;
>  	default:
>  		break;
>  	}

In this instance, it think it would be more appropriate to remove the
"default" case.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24 21:32                       ` Kees Cook
  2020-11-24 22:24                         ` Finn Thain
@ 2020-11-25  7:05                         ` James Bottomley
  2020-11-25 12:24                           ` Nick Desaulniers
  2020-11-25 21:10                           ` Kees Cook
  1 sibling, 2 replies; 150+ messages in thread
From: James Bottomley @ 2020-11-25  7:05 UTC (permalink / raw)
  To: Kees Cook
  Cc: Gustavo A. R. Silva, Joe Perches, Jakub Kicinski, alsa-devel,
	linux-atm-general, reiserfs-devel, linux-iio, linux-wireless,
	linux-fbdev, dri-devel, linux-kernel, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel,
	Nick Desaulniers, linux-scsi, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx, linux-stm32, cluster-devel,
	linux-acpi, coreteam, intel-wired-lan, linux-input, Miguel Ojeda,
	tipc-discussion, linux-ext4, linux-media, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization,
	linux-arm-kernel, linux-hwmon, x86, linux-nfs, GR-Linux-NIC-Dev,
	linux-mm, netdev, linux-decnet-user, linux-mmc,
	linux-renesas-soc, linux-sctp, linux-usb, netfilter-devel,
	linux-crypto, patches, linux-integrity, target-devel,
	linux-hardening, Jonathan Cameron, Greg KH

On Tue, 2020-11-24 at 13:32 -0800, Kees Cook wrote:
> On Mon, Nov 23, 2020 at 08:31:30AM -0800, James Bottomley wrote:
> > Really, no ... something which produces no improvement has no value
> > at all ... we really shouldn't be wasting maintainer time with it
> > because it has a cost to merge.  I'm not sure we understand where
> > the balance lies in value vs cost to merge but I am confident in
> > the zero value case.
> 
> What? We can't measure how many future bugs aren't introduced because
> the kernel requires explicit case flow-control statements for all new
> code.

No but we can measure how vulnerable our current coding habits are to
the mistake this warning would potentially prevent.  I don't think it's
wrong to extrapolate that if we had no instances at all of prior coding
problems we likely wouldn't have any in future either making adopting
the changes needed to enable the warning valueless ... that's the zero
value case I was referring to above.

Now, what we have seems to be about 6 cases (at least what's been shown
in this thread) where a missing break would cause potentially user
visible issues.  That means the value of this isn't zero, but it's not
a no-brainer massive win either.  That's why I think asking what we've
invested vs the return isn't a useless exercise.

> We already enable -Wimplicit-fallthrough globally, so that's not the
> discussion. The issue is that Clang is (correctly) even more strict
> than GCC for this, so these are the remaining ones to fix for full
> Clang coverage too.
> 
> People have spent more time debating this already than it would have
> taken to apply the patches. :)

You mean we've already spent 90% of the effort to come this far so we
might as well go the remaining 10% because then at least we get some
return? It's certainly a clinching argument in defence procurement ...

> This is about robustness and language wrangling. It's a big code-
> base, and this is the price of our managing technical debt for
> permanent robustness improvements. (The numbers I ran from Gustavo's
> earlier patches were that about 10% of the places adjusted were
> identified as legitimate bugs being fixed. This final series may be
> lower, but there are still bugs being found from it -- we need to
> finish this and shut the door on it for good.)

I got my six patches by analyzing the lwn.net report of the fixes that
was cited which had 21 of which 50% didn't actually change the emitted
code, and 25% didn't have a user visible effect.

But the broader point I'm making is just because the compiler people
come up with a shiny new warning doesn't necessarily mean the problem
it's detecting is one that causes us actual problems in the code base. 
I'd really be happier if we had a theory about what classes of CVE or
bug we could eliminate before we embrace the next new warning.

James




^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 15:58                 ` James Bottomley
                                     ` (2 preceding siblings ...)
  2020-11-23 18:56                   ` Miguel Ojeda
@ 2020-11-25  9:01                   ` Sean Young
  3 siblings, 0 replies; 150+ messages in thread
From: Sean Young @ 2020-11-25  9:01 UTC (permalink / raw)
  To: James Bottomley
  Cc: Miguel Ojeda, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, Nov 23, 2020 at 07:58:06AM -0800, James Bottomley wrote:
> On Mon, 2020-11-23 at 15:19 +0100, Miguel Ojeda wrote:
> > On Sun, Nov 22, 2020 at 11:36 PM James Bottomley
> > <James.Bottomley@hansenpartnership.com> wrote:
> > > It's not about the risk of the changes it's about the cost of
> > > implementing them.  Even if you discount the producer time (which
> > > someone gets to pay for, and if I were the engineering manager, I'd
> > > be unhappy about), the review/merge/rework time is pretty
> > > significant in exchange for six minor bug fixes.  Fine, when a new
> > > compiler warning comes along it's certainly reasonable to see if we
> > > can benefit from it and the fact that the compiler people think
> > > it's worthwhile is enough evidence to assume this initially.  But
> > > at some point you have to ask whether that assumption is supported
> > > by the evidence we've accumulated over the time we've been using
> > > it.  And if the evidence doesn't support it perhaps it is time to
> > > stop the experiment.
> > 
> > Maintainers routinely review 1-line trivial patches, not to mention
> > internal API changes, etc.
> 
> We're also complaining about the inability to recruit maintainers:
> 
> https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/
> 
> And burn out:
> 
> http://antirez.com/news/129
> 
> The whole crux of your argument seems to be maintainers' time isn't
> important so we should accept all trivial patches ... I'm pushing back
> on that assumption in two places, firstly the valulessness of the time
> and secondly that all trivial patches are valuable.

You're assuming burn out or recruitment problems is due to patch workload
or too many "trivial" patches.

In my experience, "other maintainers" is by far the biggest cause of
burn out for my kernel maintenance work.

Certainly arguing with a maintainer about some obviously-correct patch
series must be a good example of this.


Sean

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-23 20:37                     ` James Bottomley
  2020-11-25  0:32                       ` Miguel Ojeda
@ 2020-11-25 10:38                       ` Andy Shevchenko
  1 sibling, 0 replies; 150+ messages in thread
From: Andy Shevchenko @ 2020-11-25 10:38 UTC (permalink / raw)
  To: James Bottomley
  Cc: Miguel Ojeda, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, ALSA Development Mailing List, amd-gfx, bridge,
	ceph-devel, cluster-devel, coreteam, open list:STAGING SUBSYSTEM,
	device-mapper development, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel,
	ACPI Devel Maling List, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, open list:FRAMEBUFFER LAYER, linux-geode,
	open list:GPIO SUBSYSTEM, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	moderated list:ARM/Mediatek SoC support,
	Linux Media Mailing List, linux-mmc, Linux-MM,
	open list:MEMORY TECHNOLOGY...,
	linux-nfs, open list:HFI1 DRIVER, Linux-Renesas, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, USB,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Mon, Nov 23, 2020 at 10:39 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
> On Mon, 2020-11-23 at 19:56 +0100, Miguel Ojeda wrote:
> > On Mon, Nov 23, 2020 at 4:58 PM James Bottomley
> > <James.Bottomley@hansenpartnership.com> wrote:

...

> > But if we do the math, for an author, at even 1 minute per line
> > change and assuming nothing can be automated at all, it would take 1
> > month of work. For maintainers, a couple of trivial lines is noise
> > compared to many other patches.
>
> So you think a one line patch should take one minute to produce ... I
> really don't think that's grounded in reality.  I suppose a one line
> patch only takes a minute to merge with b4 if no-one reviews or tests
> it, but that's not really desirable.

In my practice most of the one line patches were either to fix or to
introduce quite interesting issues.
1 minute is 2-3 orders less than usually needed for such patches.
That's why I don't like churn produced by people who often even didn't
compile their useful contributions.

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25  7:05                         ` James Bottomley
@ 2020-11-25 12:24                           ` Nick Desaulniers
  2020-11-25 21:33                             ` Finn Thain
       [not found]                             ` <20201125082405.1d8c23dc@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
  2020-11-25 21:10                           ` Kees Cook
  1 sibling, 2 replies; 150+ messages in thread
From: Nick Desaulniers @ 2020-11-25 12:24 UTC (permalink / raw)
  To: James Bottomley
  Cc: Kees Cook, Gustavo A. R. Silva, Joe Perches, Jakub Kicinski,
	alsa-devel, linux-atm-general, reiserfs-devel, linux-iio,
	linux-wireless, linux-fbdev, dri-devel, LKML, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel, linux-scsi,
	linux-rdma, oss-drivers, bridge, linux-security-module,
	amd-gfx list, linux-stm32, cluster-devel, linux-acpi, coreteam,
	intel-wired-lan, linux-input, Miguel Ojeda, tipc-discussion,
	linux-ext4, linux-media, linux-watchdog, selinux, linux-arm-msm,
	intel-gfx, linux-geode, linux-can, linux-block, linux-gpio,
	op-tee, linux-mediatek, xen-devel, nouveau, linux-hams,
	ceph-devel, virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH

On Tue, Nov 24, 2020 at 11:05 PM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> On Tue, 2020-11-24 at 13:32 -0800, Kees Cook wrote:
> > We already enable -Wimplicit-fallthrough globally, so that's not the
> > discussion. The issue is that Clang is (correctly) even more strict
> > than GCC for this, so these are the remaining ones to fix for full
> > Clang coverage too.
> >
> > People have spent more time debating this already than it would have
> > taken to apply the patches. :)
>
> You mean we've already spent 90% of the effort to come this far so we
> might as well go the remaining 10% because then at least we get some
> return? It's certainly a clinching argument in defence procurement ...

So developers and distributions using Clang can't have
-Wimplicit-fallthrough enabled because GCC is less strict (which has
been shown in this thread to lead to bugs)?  We'd like to have nice
things too, you know.

I even agree that most of the churn comes from

case 0:
  ++x;
default:
  break;

which I have a patch for: https://reviews.llvm.org/D91895.  I agree
that can never lead to bugs.  But that's not the sole case of this
series, just most of them.

Though, note how the reviewer (C++ spec editor and clang front end
owner) in https://reviews.llvm.org/D91895 even asks in that review how
maybe a new flag would be more appropriate for a watered
down/stylistic variant of the existing behavior.  And if the current
wording of Documentation/process/deprecated.rst around "fallthrough"
is a straightforward rule of thumb, I kind of agree with him.

>
> > This is about robustness and language wrangling. It's a big code-
> > base, and this is the price of our managing technical debt for
> > permanent robustness improvements. (The numbers I ran from Gustavo's
> > earlier patches were that about 10% of the places adjusted were
> > identified as legitimate bugs being fixed. This final series may be
> > lower, but there are still bugs being found from it -- we need to
> > finish this and shut the door on it for good.)
>
> I got my six patches by analyzing the lwn.net report of the fixes that
> was cited which had 21 of which 50% didn't actually change the emitted
> code, and 25% didn't have a user visible effect.
>
> But the broader point I'm making is just because the compiler people
> come up with a shiny new warning doesn't necessarily mean the problem

That's not what this is though; you're attacking a strawman.  I'd
encourage you to bring that up when that actually occurs, unlike this
case since it's actively hindering getting -Wimplicit-fallthrough
enabled for Clang.  This is not a shiny new warning; it's already on
for GCC and has existed in both compilers for multiple releases.

And I'll also note that warnings are warnings and not errors because
they cannot be proven to be bugs in 100% of cases, but they have led
to bugs in the past.  They require a human to review their intent and
remove ambiguities.  If 97% of cases would end in a break ("Expert C
Programming: Deep C Secrets" - Peter van der Linden), then it starts
to look to me like a language defect; certainly an incorrectly chosen
default.  But the compiler can't know those 3% were intentional,
unless you're explicit for those exceptional cases.

> it's detecting is one that causes us actual problems in the code base.
> I'd really be happier if we had a theory about what classes of CVE or
> bug we could eliminate before we embrace the next new warning.

We don't generally file CVEs and waiting for them to occur might be
too reactive, but I agree that pointing to some additional
documentation in commit messages about how a warning could lead to a
bug would make it clearer to reviewers why being able to enable it
treewide, even if there's no bug in their particular subsystem, is in
the general interest of the commons.

On Mon, Nov 23, 2020 at 7:58 AM James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
>
> We're also complaining about the inability to recruit maintainers:
>
> https://www.theregister.com/2020/06/30/hard_to_find_linux_maintainers_says_torvalds/
>
> And burn out:
>
> http://antirez.com/news/129
>
> The whole crux of your argument seems to be maintainers' time isn't
> important so we should accept all trivial patches ... I'm pushing back
> on that assumption in two places, firstly the valulessness of the time
> and secondly that all trivial patches are valuable.

It's critical to the longevity of any open source project that there
are not single points of failure.  If someone is not expendable or
replaceable (or claims to be) then that's a risk to the project and a
bottleneck.  Not having a replacement in training or some form of
redundancy is short sighted.

If trivial patches are adding too much to your workload, consider
training a co-maintainer or asking for help from one of your reviewers
whom you trust.  I don't doubt it's hard to find maintainers, but
existing maintainers should go out of their way to entrust
co-maintainers especially when they find their workload becomes too
high.  And reviewing/picking up trivial patches is probably a great
way to get started.  If we allow too much knowledge of any one
subsystem to collect with one maintainer, what happens when that
maintainer leaves the community (which, given a finite lifespan, is an
inevitability)?
-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
       [not found]                             ` <20201125082405.1d8c23dc@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
@ 2020-11-25 17:04                               ` Miguel Ojeda
  2020-11-25 22:09                               ` Nick Desaulniers
  1 sibling, 0 replies; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-25 17:04 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: Nick Desaulniers, James Bottomley, Kees Cook,
	Gustavo A. R. Silva, Joe Perches, alsa-devel, linux-atm-general,
	reiserfs-devel, linux-iio, linux-wireless, linux-fbdev,
	dri-devel, LKML, Nathan Chancellor, linux-ide, dm-devel,
	keyrings, linux-mtd, GR-everest-linux-l2, wcn36xx,
	samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel, linux-scsi,
	linux-rdma, oss-drivers, bridge, linux-security-module,
	amd-gfx list, linux-stm32, cluster-devel, linux-acpi, coreteam,
	intel-wired-lan, linux-input, Miguel Ojeda, tipc-discussion,
	Ext4 Developers List, Linux Media Mailing List, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization, Linux ARM,
	linux-hwmon, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE
	<linux-crypto@vger.kernel.org>,
	patches@opensource.cirrus.com, linux-integrity@vger.kernel.org,
	target-devel@vger.kernel.org, linux-hardening@vger.kernel.org,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Greg KH

On Wed, Nov 25, 2020 at 5:24 PM Jakub Kicinski <kuba@kernel.org> wrote:
>
> And just to spell it out,
>
> case ENUM_VALUE1:
>         bla();
>         break;
> case ENUM_VALUE2:
>         bla();
> default:
>         break;
>
> is a fairly idiomatic way of indicating that not all values of the enum
> are expected to be handled by the switch statement.

It looks like a benign typo to me -- `ENUM_VALUE2` does not follow the
same pattern like `ENUM_VALUE1`. To me, the presence of the `default`
is what indicates (explicitly) that not everything is handled.

> Applying a real patch set and then getting a few follow ups the next day
> for trivial coding things like fallthrough missing or static missing,
> just because I didn't have the full range of compilers to check with
> before applying makes me feel pretty shitty, like I'm not doing a good
> job. YMMV.

The number of compilers, checkers, static analyzers, tests, etc. we
use keeps going up. That, indeed, means maintainers will miss more
things (unless maintainers do more work than before). But catching
bugs before they happen is *not* a bad thing.

Perhaps we could encourage more rebasing in -next (while still giving
credit to bots and testers) to avoid having many fixing commits
afterwards, but that is orthogonal.

I really don't think we should encourage the feeling that a maintainer
is doing a bad job if they don't catch everything on their reviews.
Any review is worth it. Maintainers, in the end, are just the
"guaranteed" reviewers that decide when the code looks reasonable
enough. They should definitely not feel pressured to be perfect.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25  7:05                         ` James Bottomley
  2020-11-25 12:24                           ` Nick Desaulniers
@ 2020-11-25 21:10                           ` Kees Cook
  1 sibling, 0 replies; 150+ messages in thread
From: Kees Cook @ 2020-11-25 21:10 UTC (permalink / raw)
  To: James Bottomley
  Cc: Gustavo A. R. Silva, Joe Perches, Jakub Kicinski, alsa-devel,
	linux-atm-general, reiserfs-devel, linux-iio, linux-wireless,
	linux-fbdev, dri-devel, linux-kernel, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel,
	Nick Desaulniers, linux-scsi, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx, linux-stm32, cluster-devel,
	linux-acpi, coreteam, intel-wired-lan, linux-input, Miguel Ojeda,
	tipc-discussion, linux-ext4, linux-media, linux-watchdog,
	selinux, linux-arm-msm, intel-gfx, linux-geode, linux-can,
	linux-block, linux-gpio, op-tee, linux-mediatek, xen-devel,
	nouveau, linux-hams, ceph-devel, virtualization,
	linux-arm-kernel, linux-hwmon, x86, linux-nfs, GR-Linux-NIC-Dev,
	linux-mm, netdev, linux-decnet-user, linux-mmc,
	linux-renesas-soc, linux-sctp, linux-usb, netfilter-devel,
	linux-crypto, patches, linux-integrity, target-devel,
	linux-hardening, Jonathan Cameron, Greg KH

On Tue, Nov 24, 2020 at 11:05:35PM -0800, James Bottomley wrote:
> Now, what we have seems to be about 6 cases (at least what's been shown
> in this thread) where a missing break would cause potentially user
> visible issues.  That means the value of this isn't zero, but it's not
> a no-brainer massive win either.  That's why I think asking what we've
> invested vs the return isn't a useless exercise.

The number is much higher[1]. If it were 6 in the entire history of the
kernel, I would agree with you. :) Some were fixed _before_ Gustavo's
effort too, which I also count towards the idea of "this is a dangerous
weakness in C, and now we have stopped it forever."

> But the broader point I'm making is just because the compiler people
> come up with a shiny new warning doesn't necessarily mean the problem
> it's detecting is one that causes us actual problems in the code base. 
> I'd really be happier if we had a theory about what classes of CVE or
> bug we could eliminate before we embrace the next new warning.

But we did! It was long ago justified and documented[2], and even links to
the CWE[3] for it. This wasn't random joy over discovering a new warning
we could turn on, this was turning on a warning that the compiler folks
finally gave us to handle an entire class of flaws. If we need to update
the code-base to address it not a useful debate -- that was settled
already, even if you're only discovering it now. :P. This last patch
set is about finishing that work for Clang, which is correctly even
more strict than GCC.

-Kees

[1] https://outflux.net/slides/2019/lss/kspp.pdf calls out specific
    numbers (about 6.5% of the patches fixed missing breaks):
	v4.19:  3 of 129
	v4.20:  2 of  59
	v5.0:   3 of  56
	v5.1:  10 of 100
	v5.2:   6 of  71
	v5.3:   7 of  69

    And in the history of the kernel, it's been an ongoing source of
    flaws:

    $ l --no-merges | grep -i 'missing break' | wc -l
    185

    The frequency of such errors being "naturally" found was pretty
    steady until the static checkers started warning, and then it was
    on the rise, but the full effort flushed the rest out, and now it's
    dropped to almost zero:

      1 v2.6.12
      3 v2.6.16.28
      1 v2.6.17
      1 v2.6.19
      2 v2.6.21
      1 v2.6.22
      3 v2.6.24
      3 v2.6.29
      1 v2.6.32
      1 v2.6.33
      1 v2.6.35
      4 v2.6.36
      3 v2.6.38
      2 v2.6.39
      7 v3.0
      2 v3.1
      2 v3.2
      2 v3.3
      3 v3.4
      1 v3.5
      8 v3.6
      7 v3.7
      3 v3.8
      6 v3.9
      3 v3.10
      2 v3.11
      5 v3.12
      5 v3.13
      2 v3.14
      4 v3.15
      2 v3.16
      3 v3.17
      2 v3.18
      2 v3.19
      1 v4.0
      2 v4.1
      5 v4.2
      4 v4.5
      5 v4.7
      6 v4.8
      1 v4.9
      3 v4.10
      2 v4.11
      6 v4.12
      3 v4.13
      2 v4.14
      5 v4.15
      2 v4.16
      7 v4.18
      2 v4.19
      6 v4.20
      3 v5.0
     12 v5.1
      3 v5.2
      4 v5.3
      2 v5.4
      1 v5.8


    And the reason it's fully zero, is because we still have the cases we're
    cleaning up right now. Even this last one from v5.8 is specifically of
    the same type this series addresses:

        case 4:
                color_index = TrueCModeIndex;
+               break;
        default:
                return;
        }


[2] https://www.kernel.org/doc/html/latest/process/deprecated.html#implicit-switch-case-fall-through

	All switch/case blocks must end in one of:

	break;
	fallthrough;
	continue;
	goto <label>;
	return [expression];

[3] https://cwe.mitre.org/data/definitions/484.html

-- 
Kees Cook

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25 12:24                           ` Nick Desaulniers
@ 2020-11-25 21:33                             ` Finn Thain
  2020-11-25 22:09                               ` Nick Desaulniers
       [not found]                             ` <20201125082405.1d8c23dc@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
  1 sibling, 1 reply; 150+ messages in thread
From: Finn Thain @ 2020-11-25 21:33 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: James Bottomley, Kees Cook, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, LKML,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, linux-scsi, linux-rdma, oss-drivers,
	bridge, linux-security-module, amd-gfx list, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH

On Wed, 25 Nov 2020, Nick Desaulniers wrote:

> So developers and distributions using Clang can't have 
> -Wimplicit-fallthrough enabled because GCC is less strict (which has 
> been shown in this thread to lead to bugs)?  We'd like to have nice 
> things too, you know.
> 

Apparently the GCC developers don't want you to have "nice things" either. 
Do you think that the kernel should drop gcc in favour of clang?
Or do you think that a codebase can somehow satisfy multiple checkers and 
their divergent interpretations of the language spec?

> This is not a shiny new warning; it's already on for GCC and has existed 
> in both compilers for multiple releases.
> 

Perhaps you're referring to the compiler feature that lead to the 
ill-fated, tree-wide /* fallthrough */ patch series.

When the ink dries on the C23 language spec and the implementations figure 
out how to interpret it then sure, enforce the warning for new code -- the 
cost/benefit analysis is straight forward. However, the case for patching 
existing mature code is another story.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
       [not found]                             ` <20201125082405.1d8c23dc@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
  2020-11-25 17:04                               ` Miguel Ojeda
@ 2020-11-25 22:09                               ` Nick Desaulniers
  1 sibling, 0 replies; 150+ messages in thread
From: Nick Desaulniers @ 2020-11-25 22:09 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: James Bottomley, Kees Cook, Gustavo A. R. Silva, Joe Perches,
	alsa-devel, linux-atm-general, reiserfs-devel, linux-iio,
	linux-wireless, linux-fbdev, dri-devel, LKML, Nathan Chancellor,
	linux-ide, dm-devel, keyrings, linux-mtd, GR-everest-linux-l2,
	wcn36xx, samba-technical, linux-i3c, linux1394-devel, linux-afs,
	usb-storage, drbd-dev, devel, linux-cifs, rds-devel, linux-scsi,
	linux-rdma, oss-drivers, bridge, linux-security-module,
	amd-gfx list, linux-stm32, cluster-devel, linux-acpi, coreteam,
	intel-wired-lan, linux-input, Miguel Ojeda, tipc-discussion,
	linux-ext4, linux-media, linux-watchdog, selinux, linux-arm-msm,
	intel-gfx, linux-geode, linux-can, linux-block, linux-gpio,
	op-tee, linux-mediatek, xen-devel, nouveau, linux-hams,
	ceph-devel, virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE
	<linux-crypto@vger.kernel.org>,
	patches@opensource.cirrus.com, linux-integrity@vger.kernel.org,
	target-devel@vger.kernel.org, linux-hardening@vger.kernel.org,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Greg KH

On Wed, Nov 25, 2020 at 8:24 AM Jakub Kicinski <kuba@kernel.org> wrote:
>
> Applying a real patch set and then getting a few follow ups the next day
> for trivial coding things like fallthrough missing or static missing,
> just because I didn't have the full range of compilers to check with
> before applying makes me feel pretty shitty, like I'm not doing a good
> job. YMMV.

I understand. Everyone feels that way, except maybe Bond villains and
robots.  My advice in that case is don't take it personally.  We're
working with a language that's more error prone relative to others.
While one would like to believe they are flawless, over time they
can't beat the aggregate statistics.  A balance between Imposter
Syndrome and Dunning Kruger is walked by all software developers, and
the fear of making mistakes in public is one of the number one reasons
folks don't take the plunge contributing to open source software or
even the kernel.  My advice to them is "don't sweat the small stuff."
-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25 21:33                             ` Finn Thain
@ 2020-11-25 22:09                               ` Nick Desaulniers
  2020-11-25 23:21                                 ` Finn Thain
  2020-11-26  0:30                                 ` Finn Thain
  0 siblings, 2 replies; 150+ messages in thread
From: Nick Desaulniers @ 2020-11-25 22:09 UTC (permalink / raw)
  To: Finn Thain
  Cc: James Bottomley, Kees Cook, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, LKML,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, linux-scsi, linux-rdma, oss-drivers,
	bridge, linux-security-module, amd-gfx list, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH

On Wed, Nov 25, 2020 at 1:33 PM Finn Thain <fthain@telegraphics.com.au> wrote:
>
> Or do you think that a codebase can somehow satisfy multiple checkers and
> their divergent interpretations of the language spec?

Have we found any cases yet that are divergent? I don't think so.  It
sounds to me like GCC's cases it warns for is a subset of Clang's.
Having additional coverage with Clang then should ensure coverage for
both.

> > This is not a shiny new warning; it's already on for GCC and has existed
> > in both compilers for multiple releases.
> >
>
> Perhaps you're referring to the compiler feature that lead to the
> ill-fated, tree-wide /* fallthrough */ patch series.
>
> When the ink dries on the C23 language spec and the implementations figure
> out how to interpret it then sure, enforce the warning for new code -- the
> cost/benefit analysis is straight forward. However, the case for patching
> existing mature code is another story.

I don't think we need to wait for the ink to dry on the C23 language
spec to understand that implicit fallthrough is an obvious defect of
the C language.  While the kernel is a mature codebase, it's not
immune to bugs.  And its maturity has yet to slow its rapid pace of
development.
-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25  0:32                       ` Miguel Ojeda
@ 2020-11-25 22:44                         ` Edward Cree
  2020-11-26 14:53                           ` Miguel Ojeda
  0 siblings, 1 reply; 150+ messages in thread
From: Edward Cree @ 2020-11-25 22:44 UTC (permalink / raw)
  To: Miguel Ojeda, James Bottomley
  Cc: Kees Cook, Jakub Kicinski, Gustavo A. R. Silva, linux-kernel,
	alsa-devel, amd-gfx, bridge, ceph-devel, cluster-devel, coreteam,
	devel, dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	Linux Crypto Mailing List, linux-decnet-user,
	Ext4 Developers List, linux-fbdev, linux-geode, linux-gpio,
	linux-hams, linux-hwmon, linux-i3c, linux-ide, linux-iio,
	linux-input, linux-integrity, linux-mediatek,
	Linux Media Mailing List, linux-mmc, Linux-MM, linux-mtd,
	linux-nfs, linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On 25/11/2020 00:32, Miguel Ojeda wrote:
> I have said *authoring* lines of *this* kind takes a minute per line.
> Specifically: lines fixing the fallthrough warning mechanically and
> repeatedly where the compiler tells you to, and doing so full-time for
> a month.
<snip>
> It is useful since it makes intent clear.
To make the intent clear, you have to first be certain that you
 understand the intent; otherwise by adding either a break or a
 fallthrough to suppress the warning you are just destroying the
 information that "the intent of this code is unknown".
Figuring out the intent of a piece of unfamiliar code takes more
 than 1 minute; just because
    case foo:
        thing;
    case bar:
        break;
 produces identical code to
    case foo:
        thing;
        break;
    case bar:
        break;
 doesn't mean that *either* is correct — maybe the author meant
 to write
    case foo:
        return thing;
    case bar:
        break;
 and by inserting that break you've destroyed the marker that
 would direct someone who knew what the code was about to look
 at that point in the code and spot the problem.
Thus, you *always* have to look at more than just the immediate
 mechanical context of the code, to make a proper judgement that
 yes, this was the intent.  If you think that that sort of thing
 can be done in an *average* time of one minute, then I hope you
 stay away from code I'm responsible for!
One minute would be an optimistic target for code that, as the
 maintainer, one is already somewhat familiar with.  For code
 that you're seeing for the first time, as is usually the case
 with the people doing these mechanical fix-a-warning patches,
 it's completely unrealistic.

A warning is only useful because it makes you *think* about the
 code.  If you suppress the warning without doing that thinking,
 then you made the warning useless; and if the warning made you
 think about code that didn't *need* it, then the warning was
 useless from the start.

So make your mind up: does Clang's stricter -Wimplicit-fallthrough
 flag up code that needs thought (in which case the fixes take
 effort both to author and to review) or does it flag up code
 that can be mindlessly "fixed" (in which case the warning is
 worthless)?  Proponents in this thread seem to be trying to
 have it both ways.

-ed

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24 21:25           ` Kees Cook
@ 2020-11-25 23:02             ` Edward Cree
  0 siblings, 0 replies; 150+ messages in thread
From: Edward Cree @ 2020-11-25 23:02 UTC (permalink / raw)
  To: Kees Cook, Nick Desaulniers
  Cc: Jakub Kicinski, Gustavo A. R. Silva, LKML, alsa-devel,
	amd-gfx list, bridge, ceph-devel, cluster-devel, coreteam, devel,
	dm-devel, drbd-dev, dri-devel, GR-everest-linux-l2,
	GR-Linux-NIC-Dev, intel-gfx, intel-wired-lan, keyrings,
	linux1394-devel, linux-acpi, linux-afs, Linux ARM, linux-arm-msm,
	linux-atm-general, linux-block, linux-can, linux-cifs,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, Linux Memory Management List, linux-mtd,
	linux-nfs, linux-rdma, Linux-Renesas, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, Network Development, netfilter-devel, nouveau,
	op-tee, oss-drivers, patches, rds-devel, reiserfs-devel,
	samba-technical, selinux, target-devel, tipc-discussion,
	usb-storage, virtualization, wcn36xx,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nathan Chancellor, Miguel Ojeda,
	Joe Perches

On 24/11/2020 21:25, Kees Cook wrote:
> I still think this isn't right -- it's a case statement that runs off
> the end without an explicit flow control determination.

Proves too much — for instance
    case foo:
    case bar:
        thing;
        break;
 doesn't require a fallthrough; after case foo:, and afaik
 no-one is suggesting it should.  Yet it, too, is "a case
 statement that runs off the end without an explicit flow
 control determination".

-ed

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25 22:09                               ` Nick Desaulniers
@ 2020-11-25 23:21                                 ` Finn Thain
  2020-11-26  0:30                                 ` Finn Thain
  1 sibling, 0 replies; 150+ messages in thread
From: Finn Thain @ 2020-11-25 23:21 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: James Bottomley, Kees Cook, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, LKML,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, linux-scsi, linux-rdma, oss-drivers,
	bridge, linux-security-module, amd-gfx list, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH

On Wed, 25 Nov 2020, Nick Desaulniers wrote:

> On Wed, Nov 25, 2020 at 1:33 PM Finn Thain <fthain@telegraphics.com.au> 
> wrote:
> >
> > Or do you think that a codebase can somehow satisfy multiple checkers 
> > and their divergent interpretations of the language spec?
> 
> Have we found any cases yet that are divergent? I don't think so.

There are many implementations, so I think you are guaranteed to find more 
divergence if you look. That's because the spec is full of language like 
this: "implementations are encouraged not to emit a diagnostic" and 
"implementations are encouraged to issue a diagnostic".

Some implementations will decide to not emit (under the premise that vast 
amounts of existing code would have to get patched until the compiler goes 
quiet) whereas other implementations will decide to emit (under the 
premise that the author is doing the checking and not the janitor or the 
packager).

> It sounds to me like GCC's cases it warns for is a subset of Clang's. 
> Having additional coverage with Clang then should ensure coverage for 
> both.
> 

If that claim were true, the solution would be simple. (It's not.)

For the benefit of projects that enable -Werror and projects that 
nominated gcc as their preferred compiler, clang would simply need a flag 
to enable conformance with gcc by suppressing those additional warnings 
that clang would normally produce.

This simple solution is, of course, completely unworkable, since it would 
force clang to copy some portion of gcc's logic (rewritten under LLVM's 
unique license) and then to track future changes to that portion of gcc 
indefinitely.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [Intel-wired-lan] [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25 22:09                               ` Nick Desaulniers
  2020-11-25 23:21                                 ` Finn Thain
@ 2020-11-26  0:30                                 ` Finn Thain
  1 sibling, 0 replies; 150+ messages in thread
From: Finn Thain @ 2020-11-26  0:30 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: James Bottomley, Kees Cook, Gustavo A. R. Silva, Joe Perches,
	Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, LKML,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, linux-scsi, linux-rdma, oss-drivers,
	bridge, linux-security-module, amd-gfx list, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, Linux Memory Management List,
	Network Development, linux-decnet-user, linux-mmc, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE, patches,
	linux-integrity, target-devel, linux-hardening, Jonathan Cameron,
	Greg KH



On Wed, 25 Nov 2020, Nick Desaulniers wrote:

> On Wed, Nov 25, 2020 at 1:33 PM Finn Thain <fthain@telegraphics.com.au> wrote:
> >
> > Or do you think that a codebase can somehow satisfy multiple checkers 
> > and their divergent interpretations of the language spec?
> 
> Have we found any cases yet that are divergent? I don't think so. 

You mean, aside from -Wimplicit-fallthrough? I'm glad you asked. How about 
-Wincompatible-pointer-types and -Wframe-larger-than?

All of the following files have been affected by divergent diagnostics 
produced by clang and gcc.

arch/arm64/include/asm/neon-intrinsics.h
arch/powerpc/xmon/Makefile
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/i915_utils.h
drivers/staging/media/atomisp/pci/atomisp_subdev.c
fs/ext4/super.c
include/trace/events/qla.h
net/mac80211/rate.c
tools/lib/string.c
tools/perf/util/setup.py
tools/scripts/Makefile.include

And if I searched for 'smatch' or 'coverity' instead of 'clang' I'd 
probably find more divergence.

Here are some of the relevant commits.

0738c8b5915c7eaf1e6007b441008e8f3b460443
9c87156cce5a63735d1218f0096a65c50a7a32aa
babaab2f473817f173a2d08e410c25abf5ed0f6b
065e5e559555e2f100bc95792a8ef1b609bbe130
93f56de259376d7e4fff2b2d104082e1fa66e237
6c4798d3f08b81c2c52936b10e0fa872590c96ae
b7a313d84e853049062011d78cb04b6decd12f5c
093b75ef5995ea35d7f6bdb6c7b32a42a1999813

And before you object, "but -Wconstant-logical-operand is a clang-only 
warning! it can't be divergent with gcc!", consider that the special cases 
added to deal with clang-only warnings have to be removed when gcc catches 
up, which is more churn. Now multiply that by the number of checkers you 
care about.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-25 22:44                         ` Edward Cree
@ 2020-11-26 14:53                           ` Miguel Ojeda
  2020-11-26 15:28                             ` Geert Uytterhoeven
  0 siblings, 1 reply; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-26 14:53 UTC (permalink / raw)
  To: Edward Cree
  Cc: James Bottomley, Kees Cook, Jakub Kicinski, Gustavo A. R. Silva,
	linux-kernel, alsa-devel, amd-gfx list, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, Linux ARM, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, Linux Crypto Mailing List,
	linux-decnet-user, Ext4 Developers List, linux-fbdev,
	linux-geode, linux-gpio, linux-hams, linux-hwmon, linux-i3c,
	linux-ide, linux-iio, linux-input, linux-integrity,
	linux-mediatek, Linux Media Mailing List, linux-mmc, Linux-MM,
	linux-mtd, linux-nfs, linux-rdma, Linux-Renesas, linux-scsi,
	linux-sctp, linux-security-module, linux-stm32, linux-usb,
	linux-watchdog, linux-wireless, Network Development,
	netfilter-devel, nouveau, op-tee, oss-drivers, patches,
	rds-devel, reiserfs-devel, samba-technical, selinux,
	target-devel, tipc-discussion, usb-storage, virtualization,
	wcn36xx, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	xen-devel, linux-hardening, Nick Desaulniers, Nathan Chancellor,
	Miguel Ojeda, Joe Perches

On Wed, Nov 25, 2020 at 11:44 PM Edward Cree <ecree.xilinx@gmail.com> wrote:
>
> To make the intent clear, you have to first be certain that you
>  understand the intent; otherwise by adding either a break or a
>  fallthrough to suppress the warning you are just destroying the
>  information that "the intent of this code is unknown".

If you don't know what the intent of your own code is, then you
*already* have a problem in your hands.

> Figuring out the intent of a piece of unfamiliar code takes more
>  than 1 minute; just because
>     case foo:
>         thing;
>     case bar:
>         break;
>  produces identical code to
>     case foo:
>         thing;
>         break;
>     case bar:
>         break;
>  doesn't mean that *either* is correct — maybe the author meant

What takes 1 minute is adding it *mechanically* by the author, i.e. so
that you later compare whether codegen is the same.

>  to write
>     case foo:
>         return thing;
>     case bar:
>         break;
>  and by inserting that break you've destroyed the marker that
>  would direct someone who knew what the code was about to look
>  at that point in the code and spot the problem.

Then it means you already have a bug. This patchset gives the
maintainer a chance to notice it, which is a good thing. The "you've
destroyed the market" claim is bogus, because:
  1. you were not looking into it
  2. you didn't notice the bug so far
  3. is implicit -- harder to spot
  4. is only useful if you explicitly take a look at this kind of bug.
So why don't you do it now?

> Thus, you *always* have to look at more than just the immediate
>  mechanical context of the code, to make a proper judgement that
>  yes, this was the intent.

I find that is the responsibility of the maintainers and reviewers for
tree-wide patches like this, assuming they want. They can also keep
the behavior (and the bugs) without spending time. Their choice.

> If you think that that sort of thing
>  can be done in an *average* time of one minute, then I hope you
>  stay away from code I'm responsible for!

Please don't accuse others of recklessness or incompetence, especially
if you didn't understand what they said.

> A warning is only useful because it makes you *think* about the
>  code.  If you suppress the warning without doing that thinking,
>  then you made the warning useless; and if the warning made you
>  think about code that didn't *need* it, then the warning was
>  useless from the start.

We are not suppressing the warning. Quite the opposite, in fact.

> So make your mind up: does Clang's stricter -Wimplicit-fallthrough
>  flag up code that needs thought (in which case the fixes take
>  effort both to author and to review)

As I said several times already, it does take time to review if the
maintainer wants to take the chance to see if they had a bug to begin
with, but it does not require thought for the author if they just go
for equivalent codegen.

> or does it flag up code
>  that can be mindlessly "fixed" (in which case the warning is
>  worthless)?  Proponents in this thread seem to be trying to
>  have it both ways.

A warning is not worthless just because you can mindlessly fix it.
There are many counterexamples, e.g. many
checkpatch/lint/lang-format/indentation warnings, functional ones like
the `if (a = b)` warning...

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-26 14:53                           ` Miguel Ojeda
@ 2020-11-26 15:28                             ` Geert Uytterhoeven
  2020-11-26 16:18                               ` Karol Herbst
  2020-11-26 17:05                               ` Miguel Ojeda
  0 siblings, 2 replies; 150+ messages in thread
From: Geert Uytterhoeven @ 2020-11-26 15:28 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Edward Cree, ALSA Development Mailing List, linux-atm-general,
	reiserfs-devel, linux-iio, linux-wireless,
	Linux Fbdev development list, dri-devel, Gustavo A. R. Silva,
	James Bottomley, linux-ide, dm-devel, keyrings, MTD Maling List,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, Lars Ellenberg,
	driverdevel, linux-cifs, rds-devel, Nick Desaulniers, scsi,
	Nathan Chancellor, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx list, linux-stm32, cluster-devel,
	ACPI Devel Maling List, coreteam, intel-wired-lan, linux-input,
	Miguel Ojeda, Jakub Kicinski, Ext4 Developers List,
	Linux Media Mailing List, Kees Cook, selinux, linux-arm-msm,
	Intel Graphics Development, linux-geode, linux-can, linux-block,
	open list:GPIO SUBSYSTEM, op-tee, linux-mediatek, xen-devel,
	Nouveau Dev, linux-hams, ceph-devel, virtualization, Linux ARM,
	linux-hwmon, Linux Watchdog Mailing List, open list:NFS, SUNRPC,
	AND...,
	GR-Linux-NIC-Dev, tipc-discussion, Linux-MM, Network Development,
	linux-decnet-user, Linux MMC List, linux-kernel,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	Linux-Renesas, linux-sctp, USB list, NetFilter,
	Linux Crypto Mailing List, patches, Joe Perches, linux-integrity,
	target-devel, linux-hardening

Hi Miguel,

On Thu, Nov 26, 2020 at 3:54 PM Miguel Ojeda
<miguel.ojeda.sandonis@gmail.com> wrote:
> On Wed, Nov 25, 2020 at 11:44 PM Edward Cree <ecree.xilinx@gmail.com> wrote:
> > To make the intent clear, you have to first be certain that you
> >  understand the intent; otherwise by adding either a break or a
> >  fallthrough to suppress the warning you are just destroying the
> >  information that "the intent of this code is unknown".
>
> If you don't know what the intent of your own code is, then you
> *already* have a problem in your hands.

The maintainer is not necessarily the owner/author of the code, and
thus may not know the intent of the code.

> > or does it flag up code
> >  that can be mindlessly "fixed" (in which case the warning is
> >  worthless)?  Proponents in this thread seem to be trying to
> >  have it both ways.
>
> A warning is not worthless just because you can mindlessly fix it.
> There are many counterexamples, e.g. many
> checkpatch/lint/lang-format/indentation warnings, functional ones like
> the `if (a = b)` warning...

BTW, you cannot mindlessly fix the latter, as you cannot know if
"(a == b)" or "((a = b))" was intended, without understanding the code
(and the (possibly unavailable) data sheet, and the hardware, ...).

P.S. So far I've stayed out of this thread, as I like it if the compiler
     flags possible mistakes.  After all I was the one fixing new
     "may be used uninitialized" warnings thrown up by gcc-4.1, until
     (a bit later than) support for that compiler was removed...

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-26 15:28                             ` Geert Uytterhoeven
@ 2020-11-26 16:18                               ` Karol Herbst
  2020-11-26 17:05                               ` Miguel Ojeda
  1 sibling, 0 replies; 150+ messages in thread
From: Karol Herbst @ 2020-11-26 16:18 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Miguel Ojeda, ALSA Development Mailing List, bridge,
	target-devel, linux-iio, linux-wireless, Linux MMC List,
	Linux Fbdev development list, dri-devel, virtualization,
	James Bottomley, linux-ide, dm-devel, keyrings, MTD Maling List,
	GR-everest-linux-l2, wcn36xx, linux-i3c, linux1394-devel,
	linux-afs, Lars Ellenberg, driverdevel, linux-cifs, rds-devel,
	scsi, ACPI Devel Maling List, linux-rdma, oss-drivers,
	linux-atm-general, ceph-devel, amd-gfx list, linux-stm32,
	cluster-devel, usb-storage, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, Jakub Kicinski, Ext4 Developers List,
	NetFilter, Linux Media Mailing List, Kees Cook, selinux,
	linux-arm-msm, Intel Graphics Development, linux-sctp,
	reiserfs-devel, linux-geode, linux-block,
	open list:GPIO SUBSYSTEM, op-tee, linux-mediatek, xen-devel,
	Nouveau Dev, linux-hams, Nathan Chancellor, linux-can, Linux ARM,
	linux-hwmon, Nick Desaulniers, Linux Watchdog Mailing List,
	GR-Linux-NIC-Dev, Linux-MM, Network Development,
	linux-decnet-user, samba-technical, Gustavo A. R. Silva,
	linux-kernel, Linux-Renesas, Edward Cree, linux-security-module,
	USB list, tipc-discussion, Linux Crypto Mailing List, patches,
	Joe Perches, linux-integrity, open list:NFS, SUNRPC, AND...,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-hardening

On Thu, Nov 26, 2020 at 4:28 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Miguel,
>
> On Thu, Nov 26, 2020 at 3:54 PM Miguel Ojeda
> <miguel.ojeda.sandonis@gmail.com> wrote:
> > On Wed, Nov 25, 2020 at 11:44 PM Edward Cree <ecree.xilinx@gmail.com> wrote:
> > > To make the intent clear, you have to first be certain that you
> > >  understand the intent; otherwise by adding either a break or a
> > >  fallthrough to suppress the warning you are just destroying the
> > >  information that "the intent of this code is unknown".
> >
> > If you don't know what the intent of your own code is, then you
> > *already* have a problem in your hands.
>
> The maintainer is not necessarily the owner/author of the code, and
> thus may not know the intent of the code.
>
> > > or does it flag up code
> > >  that can be mindlessly "fixed" (in which case the warning is
> > >  worthless)?  Proponents in this thread seem to be trying to
> > >  have it both ways.
> >
> > A warning is not worthless just because you can mindlessly fix it.
> > There are many counterexamples, e.g. many
> > checkpatch/lint/lang-format/indentation warnings, functional ones like
> > the `if (a = b)` warning...
>
> BTW, you cannot mindlessly fix the latter, as you cannot know if
> "(a == b)" or "((a = b))" was intended, without understanding the code
> (and the (possibly unavailable) data sheet, and the hardware, ...).
>

to allow assignments in if statements was clearly a mistake and if you
need outside information to understand the code, your code is the
issue already.

> P.S. So far I've stayed out of this thread, as I like it if the compiler
>      flags possible mistakes.  After all I was the one fixing new
>      "may be used uninitialized" warnings thrown up by gcc-4.1, until
>      (a bit later than) support for that compiler was removed...
>
> Gr{oetje,eeting}s,
>
>                         Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-26 15:28                             ` Geert Uytterhoeven
  2020-11-26 16:18                               ` Karol Herbst
@ 2020-11-26 17:05                               ` Miguel Ojeda
  1 sibling, 0 replies; 150+ messages in thread
From: Miguel Ojeda @ 2020-11-26 17:05 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Edward Cree, ALSA Development Mailing List, linux-atm-general,
	reiserfs-devel, linux-iio, linux-wireless,
	Linux Fbdev development list, dri-devel, Gustavo A. R. Silva,
	James Bottomley, linux-ide, dm-devel, keyrings, MTD Maling List,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, Lars Ellenberg,
	driverdevel, linux-cifs, rds-devel, Nick Desaulniers, scsi,
	Nathan Chancellor, linux-rdma, oss-drivers, bridge,
	linux-security-module, amd-gfx list, linux-stm32, cluster-devel,
	ACPI Devel Maling List, coreteam, intel-wired-lan, linux-input,
	Miguel Ojeda, Jakub Kicinski, Ext4 Developers List,
	Linux Media Mailing List, Kees Cook, selinux, linux-arm-msm,
	Intel Graphics Development, linux-geode, linux-can, linux-block,
	open list:GPIO SUBSYSTEM, op-tee, linux-mediatek, xen-devel,
	Nouveau Dev, linux-hams, ceph-devel, virtualization, Linux ARM,
	linux-hwmon, Linux Watchdog Mailing List, open list:NFS, SUNRPC,
	AND...,
	GR-Linux-NIC-Dev, tipc-discussion, Linux-MM, Network Development,
	linux-decnet-user, Linux MMC List, linux-kernel,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	Linux-Renesas, linux-sctp, USB list, NetFilter,
	Linux Crypto Mailing List, patches, Joe Perches, linux-integrity,
	target-devel, linux-hardening

On Thu, Nov 26, 2020 at 4:28 PM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> The maintainer is not necessarily the owner/author of the code, and
> thus may not know the intent of the code.

Agreed, I was not blaming maintainers -- just trying to point out that
the problem is there :-)

In those cases, it is still very useful: we add the `fallthrough` and
a comment saying `FIXME: fallthrough intended? Figure this out...`.
Thus a previous unknown unknown is now a known unknown. And no new
unknown unknowns will be introduced since we enabled the warning
globally.

> BTW, you cannot mindlessly fix the latter, as you cannot know if
> "(a == b)" or "((a = b))" was intended, without understanding the code
> (and the (possibly unavailable) data sheet, and the hardware, ...).

That's right, I was referring to the cases where the compiler saves
someone time from a typo they just made.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 109/141] net: netrom: Fix fall-through warnings for Clang
  2020-11-20 18:38 ` [PATCH 109/141] net: netrom: " Gustavo A. R. Silva
@ 2020-11-30 12:51   ` Dan Carpenter
  0 siblings, 0 replies; 150+ messages in thread
From: Dan Carpenter @ 2020-11-30 12:51 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Ralf Baechle, David S. Miller, Jakub Kicinski, linux-hams,
	netdev, linux-kernel, linux-hardening

On Fri, Nov 20, 2020 at 12:38:15PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> warnings by explicitly adding multiple break statements instead of
> letting the code fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  net/netrom/nr_route.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c
> index 78da5eab252a..de0456073dc0 100644
> --- a/net/netrom/nr_route.c
> +++ b/net/netrom/nr_route.c
> @@ -266,6 +266,7 @@ static int __must_check nr_add_node(ax25_address *nr, const char *mnemonic,
>  		fallthrough;
>  	case 2:
>  		re_sort_routes(nr_node, 0, 1);
> +		break;
>  	case 1:
>  		break;
>  	}
> @@ -359,6 +360,7 @@ static int nr_del_node(ax25_address *callsign, ax25_address *neighbour, struct n
>  					fallthrough;
>  				case 1:
>  					nr_node->routes[1] = nr_node->routes[2];
> +					fallthrough;

Make this one a break like the others.

>  				case 2:
>  					break;
>  				}
> @@ -482,6 +484,7 @@ static int nr_dec_obs(void)
>  					fallthrough;
>  				case 1:
>  					s->routes[1] = s->routes[2];
> +					break;
>  				case 2:
>  					break;
>  				}
> @@ -529,6 +532,7 @@ void nr_rt_device_down(struct net_device *dev)
>  							fallthrough;
>  						case 1:
>  							t->routes[1] = t->routes[2];
> +							break;
>  						case 2:
>  							break;
>  						}

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 127/141] staging: qlge: Fix fall-through warnings for Clang
  2020-11-25  4:42   ` Benjamin Poirier
@ 2020-11-30 12:55     ` Dan Carpenter
  0 siblings, 0 replies; 150+ messages in thread
From: Dan Carpenter @ 2020-11-30 12:55 UTC (permalink / raw)
  To: Benjamin Poirier
  Cc: Gustavo A. R. Silva, devel, GR-Linux-NIC-Dev, Manish Chopra,
	Greg Kroah-Hartman, linux-kernel, linux-hardening, netdev

On Wed, Nov 25, 2020 at 01:42:57PM +0900, Benjamin Poirier wrote:
> On 2020-11-20 12:39 -0600, Gustavo A. R. Silva wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> > by explicitly adding a break statement instead of letting the code fall
> > through to the next case.
> > 
> > Link: https://github.com/KSPP/linux/issues/115
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > ---
> >  drivers/staging/qlge/qlge_main.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
> > index 27da386f9d87..c41b1373dcf8 100644
> > --- a/drivers/staging/qlge/qlge_main.c
> > +++ b/drivers/staging/qlge/qlge_main.c
> > @@ -1385,6 +1385,7 @@ static void ql_categorize_rx_err(struct ql_adapter *qdev, u8 rx_err,
> >  		break;
> >  	case IB_MAC_IOCB_RSP_ERR_CRC:
> >  		stats->rx_crc_err++;
> > +		break;
> >  	default:
> >  		break;
> >  	}
> 
> In this instance, it think it would be more appropriate to remove the
> "default" case.

There are checkers which complain about that.  (As a static checker
developer myself, I think complaining about missing default cases is a
waste of everyone's time).

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (54 preceding siblings ...)
       [not found] ` <160616392671.21180.16517492185091399884.b4-ty@kernel.org>
@ 2020-12-01  5:52 ` Martin K. Petersen
  2020-12-01  8:20   ` Gustavo A. R. Silva
  2020-12-08  4:52 ` (subset) " Martin K. Petersen
  56 siblings, 1 reply; 150+ messages in thread
From: Martin K. Petersen @ 2020-12-01  5:52 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook


Gustavo,

> This series aims to fix almost all remaining fall-through warnings in
> order to enable -Wimplicit-fallthrough for Clang.

Applied 20-22,54,120-124 to 5.11/scsi-staging, thanks.

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-12-01  5:52 ` Martin K. Petersen
@ 2020-12-01  8:20   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2020-12-01  8:20 UTC (permalink / raw)
  To: Martin K. Petersen
  Cc: linux-kernel, alsa-devel, amd-gfx, bridge, ceph-devel,
	cluster-devel, coreteam, devel, dm-devel, drbd-dev, dri-devel,
	GR-everest-linux-l2, GR-Linux-NIC-Dev, intel-gfx,
	intel-wired-lan, keyrings, linux1394-devel, linux-acpi,
	linux-afs, linux-arm-kernel, linux-arm-msm, linux-atm-general,
	linux-block, linux-can, linux-cifs, linux-crypto,
	linux-decnet-user, linux-ext4, linux-fbdev, linux-geode,
	linux-gpio, linux-hams, linux-hwmon, linux-i3c, linux-ide,
	linux-iio, linux-input, linux-integrity, linux-mediatek,
	linux-media, linux-mmc, linux-mm, linux-mtd, linux-nfs,
	linux-rdma, linux-renesas-soc, linux-scsi, linux-sctp,
	linux-security-module, linux-stm32, linux-usb, linux-watchdog,
	linux-wireless, netdev, netfilter-devel, nouveau, op-tee,
	oss-drivers, patches, rds-devel, reiserfs-devel, samba-technical,
	selinux, target-devel, tipc-discussion, usb-storage,
	virtualization, wcn36xx, x86, xen-devel, linux-hardening,
	Nick Desaulniers, Nathan Chancellor, Miguel Ojeda, Joe Perches,
	Kees Cook

On Tue, Dec 01, 2020 at 12:52:27AM -0500, Martin K. Petersen wrote:
> 
> Gustavo,
> 
> > This series aims to fix almost all remaining fall-through warnings in
> > order to enable -Wimplicit-fallthrough for Clang.
> 
> Applied 20-22,54,120-124 to 5.11/scsi-staging, thanks.

Awesome! :)

Thanks, Martin.
--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-22 16:17       ` Kees Cook
  2020-11-22 18:21         ` James Bottomley
  2020-11-24  1:32         ` Nick Desaulniers
@ 2020-12-01 14:04         ` Dan Carpenter
  2 siblings, 0 replies; 150+ messages in thread
From: Dan Carpenter @ 2020-12-01 14:04 UTC (permalink / raw)
  To: Kees Cook
  Cc: Jakub Kicinski, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, linux-kernel,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, Nick Desaulniers, linux-scsi, linux-rdma,
	oss-drivers, bridge, linux-security-module, amd-gfx, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, tipc-discussion, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, linux-arm-kernel, linux-hwmon, x86, linux-nfs,
	GR-Linux-NIC-Dev, linux-mm, netdev, linux-decnet-user, linux-mmc,
	Gustavo A. R. Silva, linux-renesas-soc, linux-sctp, linux-usb,
	netfilter-devel, linux-crypto, patches, Joe Perches,
	linux-integrity, target-devel, linux-hardening

On Sun, Nov 22, 2020 at 08:17:03AM -0800, Kees Cook wrote:
> On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> > On Fri, 20 Nov 2020 11:30:40 -0800 Kees Cook wrote:
> > > On Fri, Nov 20, 2020 at 10:53:44AM -0800, Jakub Kicinski wrote:
> > > > On Fri, 20 Nov 2020 12:21:39 -0600 Gustavo A. R. Silva wrote:  
> > > > > This series aims to fix almost all remaining fall-through warnings in
> > > > > order to enable -Wimplicit-fallthrough for Clang.
> > > > > 
> > > > > In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> > > > > add multiple break/goto/return/fallthrough statements instead of just
> > > > > letting the code fall through to the next case.
> > > > > 
> > > > > Notice that in order to enable -Wimplicit-fallthrough for Clang, this
> > > > > change[1] is meant to be reverted at some point. So, this patch helps
> > > > > to move in that direction.
> > > > > 
> > > > > Something important to mention is that there is currently a discrepancy
> > > > > between GCC and Clang when dealing with switch fall-through to empty case
> > > > > statements or to cases that only contain a break/continue/return
> > > > > statement[2][3][4].  
> > > > 
> > > > Are we sure we want to make this change? Was it discussed before?
> > > > 
> > > > Are there any bugs Clangs puritanical definition of fallthrough helped
> > > > find?
> > > > 
> > > > IMVHO compiler warnings are supposed to warn about issues that could
> > > > be bugs. Falling through to default: break; can hardly be a bug?!  
> > > 
> > > It's certainly a place where the intent is not always clear. I think
> > > this makes all the cases unambiguous, and doesn't impact the machine
> > > code, since the compiler will happily optimize away any behavioral
> > > redundancy.
> > 
> > If none of the 140 patches here fix a real bug, and there is no change
> > to machine code then it sounds to me like a W=2 kind of a warning.
> 
> FWIW, this series has found at least one bug so far:
> https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/

This is a fallthrough to a return and not to a break.  That should
trigger a warning.  The fallthrough to a break should not generate a
warning.

The bug we're trying to fix is "missing break statement" but if the
result of the bug is "we hit a break statement" then now we're just
talking about style.  GCC should limit itself to warning about
potentially buggy code.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-24  1:32         ` Nick Desaulniers
  2020-11-24 21:25           ` Kees Cook
@ 2020-12-01 14:08           ` Dan Carpenter
  1 sibling, 0 replies; 150+ messages in thread
From: Dan Carpenter @ 2020-12-01 14:08 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Kees Cook, alsa-devel, linux-atm-general, reiserfs-devel,
	linux-iio, linux-wireless, linux-fbdev, dri-devel, LKML,
	Nathan Chancellor, linux-ide, dm-devel, keyrings, linux-mtd,
	GR-everest-linux-l2, wcn36xx, samba-technical, linux-i3c,
	linux1394-devel, linux-afs, usb-storage, drbd-dev, devel,
	linux-cifs, rds-devel, linux-scsi, linux-rdma, oss-drivers,
	bridge, linux-security-module, amd-gfx list, linux-stm32,
	cluster-devel, linux-acpi, coreteam, intel-wired-lan,
	linux-input, Miguel Ojeda, Jakub Kicinski, linux-ext4,
	linux-media, linux-watchdog, selinux, linux-arm-msm, intel-gfx,
	linux-geode, linux-can, linux-block, linux-gpio, op-tee,
	linux-mediatek, xen-devel, nouveau, linux-hams, ceph-devel,
	virtualization, Linux ARM, linux-hwmon,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	linux-nfs, GR-Linux-NIC-Dev, tipc-discussion,
	Linux Memory Management List, Network Development,
	linux-decnet-user, linux-mmc, Gustavo A. R. Silva, Linux-Renesas,
	linux-sctp, linux-usb, netfilter-devel,
	open list:HARDWARE RANDOM NUMBER GENERATOR CORE, patches,
	Joe Perches, linux-integrity, target-devel, linux-hardening

On Mon, Nov 23, 2020 at 05:32:51PM -0800, Nick Desaulniers wrote:
> On Sun, Nov 22, 2020 at 8:17 AM Kees Cook <keescook@chromium.org> wrote:
> >
> > On Fri, Nov 20, 2020 at 11:51:42AM -0800, Jakub Kicinski wrote:
> > > If none of the 140 patches here fix a real bug, and there is no change
> > > to machine code then it sounds to me like a W=2 kind of a warning.
> >
> > FWIW, this series has found at least one bug so far:
> > https://lore.kernel.org/lkml/CAFCwf11izHF=g1mGry1fE5kvFFFrxzhPSM6qKAO8gxSp=Kr_CQ@mail.gmail.com/
> 
> So looks like the bulk of these are:
> switch (x) {
>   case 0:
>     ++x;
>   default:
>     break;
> }

This should not generate a warning.

> 
> I have a patch that fixes those up for clang:
> https://reviews.llvm.org/D91895
> 
> There's 3 other cases that don't quite match between GCC and Clang I
> observe in the kernel:
> switch (x) {
>   case 0:
>     ++x;
>   default:
>     goto y;
> }
> y:;

This should generate a warning.

> 
> switch (x) {
>   case 0:
>     ++x;
>   default:
>     return;
> }

Warn for this.


> 
> switch (x) {
>   case 0:
>     ++x;
>   default:
>     ;
> }

Don't warn for this.

If adding a break statement changes the flow of the code then warn about
potentially missing break statements, but if it doesn't change anything
then don't warn about it.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: (subset) [PATCH 000/141] Fix fall-through warnings for Clang
  2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
                   ` (55 preceding siblings ...)
  2020-12-01  5:52 ` Martin K. Petersen
@ 2020-12-08  4:52 ` Martin K. Petersen
  56 siblings, 0 replies; 150+ messages in thread
From: Martin K. Petersen @ 2020-12-08  4:52 UTC (permalink / raw)
  To: linux-kernel, Gustavo A. R. Silva
  Cc: Martin K . Petersen, coreteam, selinux, Miguel Ojeda,
	Joe Perches, linux-hardening, reiserfs-devel, amd-gfx, patches,
	linux-fbdev, keyrings, Nick Desaulniers, linux-geode, linux-gpio,
	linux-hams, linux-ext4, wcn36xx, GR-everest-linux-l2, x86,
	linux-watchdog, linux-media, linux-cifs, linux-nfs, linux-iio,
	linux-usb, devel, linux-atm-general, linux-wireless,
	linux-crypto, linux-decnet-user, Nathan Chancellor,
	netfilter-devel, target-devel, linux-integrity, virtualization,
	linux-mediatek, Kees Cook, samba-technical, ceph-devel, drbd-dev,
	intel-gfx, dm-devel, linux-acpi, linux-ide, xen-devel, op-tee,
	linux-hwmon, linux-sctp, bridge, linux-mtd, linux-input,
	linux-can, rds-devel, oss-drivers, tipc-discussion,
	cluster-devel, linux-rdma, dri-devel, linux-arm-kernel,
	linux-block, usb-storage, linux1394-devel, alsa-devel, linux-i3c,
	linux-arm-msm, linux-mmc, linux-scsi, linux-afs, nouveau,
	GR-Linux-NIC-Dev, netdev, linux-security-module, linux-stm32,
	linux-mm, intel-wired-lan, linux-renesas-soc

On Fri, 20 Nov 2020 12:21:39 -0600, Gustavo A. R. Silva wrote:

> This series aims to fix almost all remaining fall-through warnings in
> order to enable -Wimplicit-fallthrough for Clang.
> 
> In preparation to enable -Wimplicit-fallthrough for Clang, explicitly
> add multiple break/goto/return/fallthrough statements instead of just
> letting the code fall through to the next case.
> 
> [...]

Applied to 5.11/scsi-queue, thanks!

[054/141] target: Fix fall-through warnings for Clang
          https://git.kernel.org/mkp/scsi/c/492096ecfa39

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 065/141] airo: Fix fall-through warnings for Clang
  2020-11-20 18:33 ` [PATCH 065/141] airo: " Gustavo A. R. Silva
@ 2020-12-08  8:08   ` Kalle Valo
  0 siblings, 0 replies; 150+ messages in thread
From: Kalle Valo @ 2020-12-08  8:08 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: David S. Miller, Jakub Kicinski, linux-wireless, netdev,
	linux-kernel, linux-hardening, Gustavo A. R. Silva

"Gustavo A. R. Silva" <gustavoars@kernel.org> wrote:

> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

4 patches applied to wireless-drivers-next.git, thanks.

48264b23fade airo: Fix fall-through warnings for Clang
f48d7dccb3e4 rt2x00: Fix fall-through warnings for Clang
0662fbebf4fb rtw88: Fix fall-through warnings for Clang
18572b0b5493 zd1201: Fix fall-through warnings for Clang

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/b3c0f74f5b6e6bff9f1609b310319b6fdd9ee205.1605896059.git.gustavoars@kernel.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 069/141] ath5k: Fix fall-through warnings for Clang
  2020-11-20 18:34 ` [PATCH 069/141] ath5k: " Gustavo A. R. Silva
@ 2020-12-09  7:03   ` Kalle Valo
  0 siblings, 0 replies; 150+ messages in thread
From: Kalle Valo @ 2020-12-09  7:03 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jiri Slaby, Nick Kossifidis, Luis Chamberlain, David S. Miller,
	Jakub Kicinski, linux-wireless, netdev, linux-kernel,
	linux-hardening, Gustavo A. R. Silva

"Gustavo A. R. Silva" <gustavoars@kernel.org> wrote:

> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

3 patches applied to ath-next branch of ath.git, thanks.

e64fa6d92ac4 ath5k: Fix fall-through warnings for Clang
e2cb11165445 carl9170: Fix fall-through warnings for Clang
b6041e1a3020 wcn36xx: Fix fall-through warnings for Clang

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/e127232621c4de340509047a11d98093958303c5.1605896059.git.gustavoars@kernel.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 091/141] iwlwifi: iwl-drv: Fix fall-through warnings for Clang
  2020-11-20 18:36 ` [PATCH 091/141] iwlwifi: iwl-drv: " Gustavo A. R. Silva
@ 2020-12-11 18:22   ` Kalle Valo
  0 siblings, 0 replies; 150+ messages in thread
From: Kalle Valo @ 2020-12-11 18:22 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Johannes Berg, Emmanuel Grumbach, Luca Coelho,
	Intel Linux Wireless, David S. Miller, Jakub Kicinski,
	linux-wireless, netdev, linux-kernel, linux-hardening,
	Gustavo A. R. Silva

"Gustavo A. R. Silva" <gustavoars@kernel.org> wrote:

> In preparation to enable -Wimplicit-fallthrough for Clang, fix a
> warning by replacing a /* fall through */ comment with the new
> pseudo-keyword macro fallthrough; instead of letting the code fall
> through to the next case.
> 
> Notice that Clang doesn't recognize /* fall through */ comments as
> implicit fall-through markings.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Patch applied to wireless-drivers-next.git, thanks.

10a0472d1850 iwlwifi: iwl-drv: Fix fall-through warnings for Clang

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/edd98d194bfc98b4be93a9bdc303630b719c0e66.1605896060.git.gustavoars@kernel.org/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 106/141] net: bridge: Fix fall-through warnings for Clang
  2020-11-20 18:37 ` [PATCH 106/141] net: bridge: " Gustavo A. R. Silva
@ 2021-02-02 14:16   ` Nikolay Aleksandrov
  2021-03-04 22:56     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Nikolay Aleksandrov @ 2021-02-02 14:16 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Roopa Prabhu, David S. Miller, Jakub Kicinski
  Cc: bridge, netdev, linux-kernel, linux-hardening

On 20/11/2020 20:37, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  net/bridge/br_input.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
> index 59a318b9f646..8db219d979c5 100644
> --- a/net/bridge/br_input.c
> +++ b/net/bridge/br_input.c
> @@ -148,6 +148,7 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb
>  		break;
>  	case BR_PKT_UNICAST:
>  		dst = br_fdb_find_rcu(br, eth_hdr(skb)->h_dest, vid);
> +		break;
>  	default:
>  		break;
>  	}
> 

Somehow this hasn't hit my inbox, good thing I just got the reply and saw the
patch. Anyway, thanks!

Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>


^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 042/141] net: 3c509: Fix fall-through warnings for Clang
  2020-11-20 18:30 ` [PATCH 042/141] net: 3c509: " Gustavo A. R. Silva
@ 2021-03-04 22:50   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:50 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski; +Cc: netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:30:56PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of just letting the code
> fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/ethernet/3com/3c509.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c
> index 667f38c9e4c6..676cdc6900b5 100644
> --- a/drivers/net/ethernet/3com/3c509.c
> +++ b/drivers/net/ethernet/3com/3c509.c
> @@ -1052,6 +1052,7 @@ el3_netdev_get_ecmd(struct net_device *dev, struct ethtool_link_ksettings *cmd)
>  		break;
>  	case 3:
>  		cmd->base.port = PORT_BNC;
> +		break;
>  	default:
>  		break;
>  	}
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 043/141] net: cassini: Fix fall-through warnings for Clang
  2020-11-20 18:31 ` [PATCH 043/141] net: cassini: " Gustavo A. R. Silva
@ 2021-03-04 22:52   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:52 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski; +Cc: netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:31:02PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of just letting the code
> fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/ethernet/sun/cassini.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
> index 9ff894ba8d3e..54f45d8c79a7 100644
> --- a/drivers/net/ethernet/sun/cassini.c
> +++ b/drivers/net/ethernet/sun/cassini.c
> @@ -1599,6 +1599,7 @@ static inline int cas_mdio_link_not_up(struct cas *cp)
>  			cas_phy_write(cp, MII_BMCR, val);
>  			break;
>  		}
> +		break;
>  	default:
>  		break;
>  	}
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 045/141] net: mscc: ocelot: Fix fall-through warnings for Clang
  2020-11-20 18:31 ` [PATCH 045/141] net: mscc: ocelot: " Gustavo A. R. Silva
@ 2021-03-04 22:53   ` Gustavo A. R. Silva
  2021-03-04 23:01     ` Vladimir Oltean
  0 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:53 UTC (permalink / raw)
  To: Microchip Linux Driver Support, Vladimir Oltean, Claudiu Manoil,
	Alexandre Belloni, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:31:13PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of just letting the code
> fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/ethernet/mscc/ocelot_vcap.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/mscc/ocelot_vcap.c b/drivers/net/ethernet/mscc/ocelot_vcap.c
> index d8c778ee6f1b..8f3ed81b9a08 100644
> --- a/drivers/net/ethernet/mscc/ocelot_vcap.c
> +++ b/drivers/net/ethernet/mscc/ocelot_vcap.c
> @@ -761,6 +761,7 @@ static void is1_entry_set(struct ocelot *ocelot, int ix,
>  			vcap_key_bytes_set(vcap, &data, VCAP_IS1_HK_ETYPE,
>  					   etype.value, etype.mask);
>  		}
> +		break;
>  	}
>  	default:
>  		break;
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 076/141] decnet: Fix fall-through warnings for Clang
  2020-11-20 18:35 ` [PATCH 076/141] decnet: " Gustavo A. R. Silva
@ 2021-03-04 22:54   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:54 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: linux-decnet-user, netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:35:01PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  net/decnet/dn_route.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c
> index 4cac31d22a50..2f3e5c49a221 100644
> --- a/net/decnet/dn_route.c
> +++ b/net/decnet/dn_route.c
> @@ -1407,7 +1407,7 @@ static int dn_route_input_slow(struct sk_buff *skb)
>  			flags |= RTCF_DOREDIRECT;
>  
>  		local_src = DN_FIB_RES_PREFSRC(res);
> -
> +		break;
>  	case RTN_BLACKHOLE:
>  	case RTN_UNREACHABLE:
>  		break;
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 105/141] net: ax25: Fix fall-through warnings for Clang
  2020-11-20 18:37 ` [PATCH 105/141] net: ax25: " Gustavo A. R. Silva
@ 2021-03-04 22:54   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:54 UTC (permalink / raw)
  To: Joerg Reuter, Ralf Baechle, David S. Miller, Jakub Kicinski
  Cc: linux-hams, netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:37:53PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  net/ax25/af_ax25.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
> index 269ee89d2c2b..2631efc6e359 100644
> --- a/net/ax25/af_ax25.c
> +++ b/net/ax25/af_ax25.c
> @@ -850,6 +850,7 @@ static int ax25_create(struct net *net, struct socket *sock, int protocol,
>  		case AX25_P_ROSE:
>  			if (ax25_protocol_is_registered(AX25_P_ROSE))
>  				return -ESOCKTNOSUPPORT;
> +			break;
>  #endif
>  		default:
>  			break;
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 106/141] net: bridge: Fix fall-through warnings for Clang
  2021-02-02 14:16   ` Nikolay Aleksandrov
@ 2021-03-04 22:56     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:56 UTC (permalink / raw)
  To: Joerg Reuter, Ralf Baechle, David S. Miller, Jakub Kicinski
  Cc: Roopa Prabhu, David S. Miller, Jakub Kicinski, bridge, netdev,
	linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Tue, Feb 02, 2021 at 04:16:07PM +0200, Nikolay Aleksandrov wrote:
> On 20/11/2020 20:37, Gustavo A. R. Silva wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> > by explicitly adding a break statement instead of letting the code fall
> > through to the next case.
> > 
> > Link: https://github.com/KSPP/linux/issues/115
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > ---
> >  net/bridge/br_input.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
> > index 59a318b9f646..8db219d979c5 100644
> > --- a/net/bridge/br_input.c
> > +++ b/net/bridge/br_input.c
> > @@ -148,6 +148,7 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb
> >  		break;
> >  	case BR_PKT_UNICAST:
> >  		dst = br_fdb_find_rcu(br, eth_hdr(skb)->h_dest, vid);
> > +		break;
> >  	default:
> >  		break;
> >  	}
> > 
> 
> Somehow this hasn't hit my inbox, good thing I just got the reply and saw the
> patch. Anyway, thanks!
> 
> Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 107/141] net: core: Fix fall-through warnings for Clang
  2020-11-20 18:38 ` [PATCH 107/141] net: core: " Gustavo A. R. Silva
@ 2021-03-04 22:56   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 22:56 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski; +Cc: netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:38:03PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a break statement instead of letting the code fall
> through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  net/core/dev.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 82dc6b48e45f..9efb03ce504d 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -5214,6 +5214,7 @@ static int __netif_receive_skb_core(struct sk_buff **pskb, bool pfmemalloc,
>  			goto another_round;
>  		case RX_HANDLER_EXACT:
>  			deliver_exact = true;
> +			break;
>  		case RX_HANDLER_PASS:
>  			break;
>  		default:
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 111/141] net: plip: Fix fall-through warnings for Clang
  2020-11-20 18:38 ` [PATCH 111/141] net: plip: " Gustavo A. R. Silva
@ 2021-03-04 23:00   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 23:00 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski; +Cc: netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:38:25PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> warnings by explicitly adding multiple break statements instead of
> letting the code fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/plip/plip.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/plip/plip.c b/drivers/net/plip/plip.c
> index 4406b353123e..e26cf91bdec2 100644
> --- a/drivers/net/plip/plip.c
> +++ b/drivers/net/plip/plip.c
> @@ -516,6 +516,7 @@ plip_receive(unsigned short nibble_timeout, struct net_device *dev,
>  		*data_p |= (c0 << 1) & 0xf0;
>  		write_data (dev, 0x00); /* send ACK */
>  		*ns_p = PLIP_NB_BEGIN;
> +		break;
>  	case PLIP_NB_2:
>  		break;
>  	}
> @@ -808,6 +809,7 @@ plip_send_packet(struct net_device *dev, struct net_local *nl,
>  				return HS_TIMEOUT;
>  			}
>  		}
> +		break;
>  
>  	case PLIP_PK_LENGTH_LSB:
>  		if (plip_send(nibble_timeout, dev,
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 112/141] net: rose: Fix fall-through warnings for Clang
  2020-11-20 18:38 ` [PATCH 112/141] net: rose: " Gustavo A. R. Silva
@ 2021-03-04 23:00   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-04 23:00 UTC (permalink / raw)
  To: Ralf Baechle, David S. Miller, Jakub Kicinski
  Cc: linux-hams, netdev, linux-kernel, linux-hardening

Hi all,

It's been more than 3 months; who can take this, please? :)

Thanks
--
Gustavo

On Fri, Nov 20, 2020 at 12:38:32PM -0600, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple
> warnings by explicitly adding multiple break statements instead of
> letting the code fall through to the next case.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  net/rose/rose_route.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c
> index 6e35703ff353..c0e04c261a15 100644
> --- a/net/rose/rose_route.c
> +++ b/net/rose/rose_route.c
> @@ -347,6 +347,7 @@ static int rose_del_node(struct rose_route_struct *rose_route,
>  				case 1:
>  					rose_node->neighbour[1] =
>  						rose_node->neighbour[2];
> +					break;
>  				case 2:
>  					break;
>  				}
> @@ -508,6 +509,7 @@ void rose_rt_device_down(struct net_device *dev)
>  					fallthrough;
>  				case 1:
>  					t->neighbour[1] = t->neighbour[2];
> +					break;
>  				case 2:
>  					break;
>  				}
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 045/141] net: mscc: ocelot: Fix fall-through warnings for Clang
  2021-03-04 22:53   ` Gustavo A. R. Silva
@ 2021-03-04 23:01     ` Vladimir Oltean
  2021-03-05 19:22       ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Vladimir Oltean @ 2021-03-04 23:01 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Microchip Linux Driver Support, Claudiu Manoil,
	Alexandre Belloni, David S. Miller, Jakub Kicinski, netdev,
	linux-kernel, linux-hardening

Hi Gustavo,

On Thu, Mar 04, 2021 at 04:53:18PM -0600, Gustavo A. R. Silva wrote:
> Hi all,
>
> It's been more than 3 months; who can take this, please? :)
>
> Thanks
> --
> Gustavo
>
> On Fri, Nov 20, 2020 at 12:31:13PM -0600, Gustavo A. R. Silva wrote:
> > In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> > by explicitly adding a break statement instead of just letting the code
> > fall through to the next case.
> >
> > Link: https://github.com/KSPP/linux/issues/115
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > ---

You'd obviously need to resend. But when you do please add my:

Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>

And by the way, I think the netdev maintainers might want to take the
patches on network drivers to avoid conflicts, but on the other hand
they might not be too keen on cherry-picking bits and pieces of your 141
patch series. Would you mind creating a bundle of patches only for
netdev? I see there's definitely more than just one patch, they would
certainly get in a lot quicker that way.

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 045/141] net: mscc: ocelot: Fix fall-through warnings for Clang
  2021-03-04 23:01     ` Vladimir Oltean
@ 2021-03-05 19:22       ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-03-05 19:22 UTC (permalink / raw)
  To: Vladimir Oltean, Gustavo A. R. Silva
  Cc: Microchip Linux Driver Support, Claudiu Manoil,
	Alexandre Belloni, David S. Miller, Jakub Kicinski, netdev,
	linux-kernel, linux-hardening

Hi Vladimir,

On 3/4/21 17:01, Vladimir Oltean wrote:
> Hi Gustavo,
> 
> On Thu, Mar 04, 2021 at 04:53:18PM -0600, Gustavo A. R. Silva wrote:
>> Hi all,
>>
>> It's been more than 3 months; who can take this, please? :)
>>
>> Thanks
>> --
>> Gustavo
>>
>> On Fri, Nov 20, 2020 at 12:31:13PM -0600, Gustavo A. R. Silva wrote:
>>> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
>>> by explicitly adding a break statement instead of just letting the code
>>> fall through to the next case.
>>>
>>> Link: https://github.com/KSPP/linux/issues/115
>>> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
>>> ---
> 
> You'd obviously need to resend. But when you do please add my:
> 
> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> And by the way, I think the netdev maintainers might want to take the
> patches on network drivers to avoid conflicts, but on the other hand
> they might not be too keen on cherry-picking bits and pieces of your 141
> patch series. Would you mind creating a bundle of patches only for
> netdev? I see there's definitely more than just one patch, they would
> certainly get in a lot quicker that way.

Thanks for your feedback. I already sent those patches again. I hope they
are applied this time. :)

--
Gustavo

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 070/141] atm: fore200e: Fix fall-through warnings for Clang
  2020-11-20 18:34 ` [PATCH 070/141] atm: fore200e: " Gustavo A. R. Silva
@ 2021-04-20 20:17   ` Gustavo A. R. Silva
  2021-05-17 23:52     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-04-20 20:17 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Chas Williams
  Cc: linux-atm-general, netdev, linux-kernel, linux-hardening, Andrew Morton

Hi all,

Friendly ping: who can take this, please?

Thanks
--
Gustavo

On 11/20/20 12:34, Gustavo A. R. Silva wrote:
> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
> by explicitly adding a fallthrough pseudo-keyword.
> 
> Link: https://github.com/KSPP/linux/issues/115
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/atm/fore200e.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
> index 9a70bee84125..ba3ed1b77bc5 100644
> --- a/drivers/atm/fore200e.c
> +++ b/drivers/atm/fore200e.c
> @@ -423,6 +423,7 @@ fore200e_shutdown(struct fore200e* fore200e)
>  	/* XXX shouldn't we *start* by deregistering the device? */
>  	atm_dev_deregister(fore200e->atm_dev);
>  
> +	fallthrough;
>      case FORE200E_STATE_BLANK:
>  	/* nothing to do for that state */
>  	break;
> 

^ permalink raw reply	[flat|nested] 150+ messages in thread

* Re: [PATCH 070/141] atm: fore200e: Fix fall-through warnings for Clang
  2021-04-20 20:17   ` Gustavo A. R. Silva
@ 2021-05-17 23:52     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 150+ messages in thread
From: Gustavo A. R. Silva @ 2021-05-17 23:52 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Chas Williams
  Cc: linux-atm-general, netdev, linux-kernel, linux-hardening, Andrew Morton

Hi all,

I've added this to my -next[1] branch for v5.14.

Thanks
--
Gustavo

[1] https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git/log/?h=for-next/kspp

On 4/20/21 15:17, Gustavo A. R. Silva wrote:
> Hi all,
> 
> Friendly ping: who can take this, please?
> 
> Thanks
> --
> Gustavo
> 
> On 11/20/20 12:34, Gustavo A. R. Silva wrote:
>> In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
>> by explicitly adding a fallthrough pseudo-keyword.
>>
>> Link: https://github.com/KSPP/linux/issues/115
>> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
>> ---
>>  drivers/atm/fore200e.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
>> index 9a70bee84125..ba3ed1b77bc5 100644
>> --- a/drivers/atm/fore200e.c
>> +++ b/drivers/atm/fore200e.c
>> @@ -423,6 +423,7 @@ fore200e_shutdown(struct fore200e* fore200e)
>>  	/* XXX shouldn't we *start* by deregistering the device? */
>>  	atm_dev_deregister(fore200e->atm_dev);
>>  
>> +	fallthrough;
>>      case FORE200E_STATE_BLANK:
>>  	/* nothing to do for that state */
>>  	break;
>>

^ permalink raw reply	[flat|nested] 150+ messages in thread

end of thread, other threads:[~2021-05-18  0:16 UTC | newest]

Thread overview: 150+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-20 18:21 [PATCH 000/141] Fix fall-through warnings for Clang Gustavo A. R. Silva
2020-11-20 18:25 ` [PATCH 009/141] igb: " Gustavo A. R. Silva
2020-11-20 18:25 ` [PATCH 011/141] ipv4: " Gustavo A. R. Silva
2020-11-20 18:26 ` [PATCH 012/141] ixgbe: " Gustavo A. R. Silva
2020-11-20 18:26 ` [PATCH 015/141] netfilter: " Gustavo A. R. Silva
2020-11-20 22:47   ` Florian Westphal
2020-11-23 22:45     ` Gustavo A. R. Silva
2020-11-20 18:26 ` [PATCH 018/141] qed: " Gustavo A. R. Silva
2020-11-20 18:50   ` [EXT] " Igor Russkikh
2020-11-23 22:46     ` Gustavo A. R. Silva
2020-11-20 18:27 ` [PATCH 019/141] qlcnic: " Gustavo A. R. Silva
2020-11-20 18:27 ` [PATCH 025/141] bnxt_en: " Gustavo A. R. Silva
2020-11-20 18:28 ` [PATCH 029/141] e1000: " Gustavo A. R. Silva
2020-11-20 18:28 ` [PATCH 033/141] fm10k: " Gustavo A. R. Silva
2020-11-20 18:28 ` [PATCH 000/141] " Joe Perches
2020-11-20 19:02   ` Gustavo A. R. Silva
2020-11-20 18:29 ` [PATCH 036/141] ice: " Gustavo A. R. Silva
2020-11-20 18:30 ` [PATCH 039/141] ixgbevf: " Gustavo A. R. Silva
2020-11-20 18:30 ` [PATCH 042/141] net: 3c509: " Gustavo A. R. Silva
2021-03-04 22:50   ` Gustavo A. R. Silva
2020-11-20 18:31 ` [PATCH 043/141] net: cassini: " Gustavo A. R. Silva
2021-03-04 22:52   ` Gustavo A. R. Silva
2020-11-20 18:31 ` [PATCH 044/141] net/mlx4: " Gustavo A. R. Silva
2020-11-22  8:36   ` Tariq Toukan
2020-11-23 22:49     ` Gustavo A. R. Silva
2020-11-20 18:31 ` [PATCH 045/141] net: mscc: ocelot: " Gustavo A. R. Silva
2021-03-04 22:53   ` Gustavo A. R. Silva
2021-03-04 23:01     ` Vladimir Oltean
2021-03-05 19:22       ` Gustavo A. R. Silva
2020-11-20 18:31 ` [PATCH 046/141] netxen_nic: " Gustavo A. R. Silva
2020-11-20 18:31 ` [PATCH 047/141] nfp: " Gustavo A. R. Silva
2020-11-20 18:32 ` [PATCH 056/141] vxge: " Gustavo A. R. Silva
2020-11-20 18:33 ` [PATCH 065/141] airo: " Gustavo A. R. Silva
2020-12-08  8:08   ` Kalle Valo
2020-11-20 18:34 ` [PATCH 069/141] ath5k: " Gustavo A. R. Silva
2020-12-09  7:03   ` Kalle Valo
2020-11-20 18:34 ` [PATCH 070/141] atm: fore200e: " Gustavo A. R. Silva
2021-04-20 20:17   ` Gustavo A. R. Silva
2021-05-17 23:52     ` Gustavo A. R. Silva
2020-11-20 18:34 ` [PATCH 072/141] can: peak_usb: " Gustavo A. R. Silva
2020-11-21 13:17   ` Marc Kleine-Budde
2020-11-21 19:50     ` Joe Perches
2020-11-21 23:04       ` Marc Kleine-Budde
2020-11-22  2:46         ` Joe Perches
2020-11-20 18:34 ` [PATCH 073/141] carl9170: " Gustavo A. R. Silva
2020-11-20 18:34 ` [PATCH 074/141] cfg80211: " Gustavo A. R. Silva
2020-11-20 18:35 ` [PATCH 076/141] decnet: " Gustavo A. R. Silva
2021-03-04 22:54   ` Gustavo A. R. Silva
2020-11-20 18:36 ` [PATCH 091/141] iwlwifi: iwl-drv: " Gustavo A. R. Silva
2020-12-11 18:22   ` Kalle Valo
2020-11-20 18:36 ` [PATCH 093/141] mac80211: " Gustavo A. R. Silva
2020-11-20 18:37 ` [PATCH 099/141] mt76: mt7615: " Gustavo A. R. Silva
2020-11-20 18:37 ` [PATCH 105/141] net: ax25: " Gustavo A. R. Silva
2021-03-04 22:54   ` Gustavo A. R. Silva
2020-11-20 18:37 ` [PATCH 106/141] net: bridge: " Gustavo A. R. Silva
2021-02-02 14:16   ` Nikolay Aleksandrov
2021-03-04 22:56     ` Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 107/141] net: core: " Gustavo A. R. Silva
2021-03-04 22:56   ` Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 108/141] netfilter: ipt_REJECT: " Gustavo A. R. Silva
2020-11-20 22:49   ` Florian Westphal
2020-11-24 14:37     ` Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 109/141] net: netrom: " Gustavo A. R. Silva
2020-11-30 12:51   ` Dan Carpenter
2020-11-20 18:38 ` [PATCH 110/141] net/packet: " Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 111/141] net: plip: " Gustavo A. R. Silva
2021-03-04 23:00   ` Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 112/141] net: rose: " Gustavo A. R. Silva
2021-03-04 23:00   ` Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 113/141] nl80211: " Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 115/141] rds: " Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 116/141] rt2x00: " Gustavo A. R. Silva
2020-11-20 18:38 ` [PATCH 117/141] rtl8xxxu: " Gustavo A. R. Silva
2020-11-20 21:39   ` Jes Sorensen
2020-11-24 16:09     ` Gustavo A. R. Silva
2020-11-20 18:39 ` [PATCH 118/141] rtw88: " Gustavo A. R. Silva
2020-11-20 18:39 ` [PATCH 119/141] rxrpc: " Gustavo A. R. Silva
2020-11-20 18:39 ` [PATCH 125/141] sctp: " Gustavo A. R. Silva
2020-11-20 18:39 ` [PATCH 127/141] staging: qlge: " Gustavo A. R. Silva
2020-11-25  4:42   ` Benjamin Poirier
2020-11-30 12:55     ` Dan Carpenter
2020-11-20 18:40 ` [PATCH 129/141] SUNRPC: " Gustavo A. R. Silva
2020-11-20 18:40 ` [PATCH 130/141] tipc: " Gustavo A. R. Silva
2020-11-20 18:40 ` [PATCH 136/141] virtio_net: " Gustavo A. R. Silva
2020-11-20 18:40 ` [PATCH 137/141] wcn36xx: " Gustavo A. R. Silva
2020-11-20 18:41 ` [PATCH 139/141] xfrm: " Gustavo A. R. Silva
2020-11-20 18:41 ` [PATCH 140/141] zd1201: " Gustavo A. R. Silva
2020-11-20 18:53 ` [PATCH 000/141] " Jakub Kicinski
2020-11-20 19:04   ` Gustavo A. R. Silva
2020-11-20 19:30   ` Kees Cook
2020-11-20 19:51     ` Jakub Kicinski
2020-11-20 20:48       ` Kees Cook
2020-11-22 16:17       ` Kees Cook
2020-11-22 18:21         ` James Bottomley
2020-11-22 18:25           ` Joe Perches
2020-11-22 19:12             ` James Bottomley
2020-11-22 19:22               ` Joe Perches
2020-11-22 19:53                 ` James Bottomley
2020-11-23 13:03                   ` [Intel-wired-lan] " Gustavo A. R. Silva
2020-11-23 16:31                     ` James Bottomley
2020-11-24 21:32                       ` Kees Cook
2020-11-24 22:24                         ` Finn Thain
2020-11-24 23:15                           ` Miguel Ojeda
2020-11-24 23:53                             ` Finn Thain
2020-11-25  1:05                               ` Miguel Ojeda
2020-11-25  7:05                         ` James Bottomley
2020-11-25 12:24                           ` Nick Desaulniers
2020-11-25 21:33                             ` Finn Thain
2020-11-25 22:09                               ` Nick Desaulniers
2020-11-25 23:21                                 ` Finn Thain
2020-11-26  0:30                                 ` Finn Thain
     [not found]                             ` <20201125082405.1d8c23dc@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
2020-11-25 17:04                               ` Miguel Ojeda
2020-11-25 22:09                               ` Nick Desaulniers
2020-11-25 21:10                           ` Kees Cook
2020-11-22 20:35           ` Miguel Ojeda
2020-11-22 22:36             ` James Bottomley
2020-11-23 14:19               ` Miguel Ojeda
2020-11-23 15:58                 ` James Bottomley
2020-11-23 16:24                   ` Rafael J. Wysocki
2020-11-23 16:32                   ` Joe Perches
2020-11-23 18:56                   ` Miguel Ojeda
2020-11-23 20:37                     ` James Bottomley
2020-11-25  0:32                       ` Miguel Ojeda
2020-11-25 22:44                         ` Edward Cree
2020-11-26 14:53                           ` Miguel Ojeda
2020-11-26 15:28                             ` Geert Uytterhoeven
2020-11-26 16:18                               ` Karol Herbst
2020-11-26 17:05                               ` Miguel Ojeda
2020-11-25 10:38                       ` Andy Shevchenko
2020-11-25  9:01                   ` Sean Young
2020-11-22 22:54             ` Finn Thain
2020-11-22 23:04               ` James Bottomley
2020-11-23 14:05               ` Miguel Ojeda
2020-11-24  0:58                 ` Finn Thain
2020-11-24  1:05                   ` Joe Perches
2020-11-24  2:48                     ` Finn Thain
2020-11-24 23:46                   ` Miguel Ojeda
2020-11-22 22:10           ` Sam Ravnborg
2020-11-24  1:32         ` Nick Desaulniers
2020-11-24 21:25           ` Kees Cook
2020-11-25 23:02             ` Edward Cree
2020-12-01 14:08           ` Dan Carpenter
2020-12-01 14:04         ` Dan Carpenter
2020-11-20 22:21 ` Miguel Ojeda
2020-11-23 20:03 ` Jason Gunthorpe
2020-11-24 14:47   ` Gustavo A. R. Silva
     [not found] ` <160616392671.21180.16517492185091399884.b4-ty@kernel.org>
2020-11-24 14:47   ` Gustavo A. R. Silva
2020-12-01  5:52 ` Martin K. Petersen
2020-12-01  8:20   ` Gustavo A. R. Silva
2020-12-08  4:52 ` (subset) " Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).