* [PATCH] net: consolidate lock/unlock into unlock_wait @ 2016-03-18 9:32 Nicholas Mc Guire 2016-03-18 21:37 ` David Miller 0 siblings, 1 reply; 11+ messages in thread From: Nicholas Mc Guire @ 2016-03-18 9:32 UTC (permalink / raw) To: Joe Perches; +Cc: David S. Miller, netdev, linux-kernel, Nicholas Mc Guire The spin_lock()/spin_unlock() is synchronizing on the adapter->work_lock as the comment also suggests, which is equivalent to spin_unlock_wait() but the later should be more efficient. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> --- Problem located by coccinelle spatch Patch was compile tested with: x86_64_defconfig + CONFIG_CHELSIO_T1=m Patch is against linux-next (localversion-next is next-20160318) drivers/net/ethernet/chelsio/cxgb/cxgb2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c index f5f1b0b..c5a38dc 100644 --- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c +++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c @@ -282,8 +282,8 @@ static int cxgb_close(struct net_device *dev) !(adapter->open_device_map & PORT_MASK)) { /* Stop statistics accumulation. */ smp_mb__after_atomic(); - spin_lock(&adapter->work_lock); /* sync with update task */ - spin_unlock(&adapter->work_lock); + /* sync with update task */ + spin_unlock_wait(&adapter->work_lock); cancel_mac_stats_update(adapter); } -- 2.1.4 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] net: consolidate lock/unlock into unlock_wait 2016-03-18 9:32 [PATCH] net: consolidate lock/unlock into unlock_wait Nicholas Mc Guire @ 2016-03-18 21:37 ` David Miller 2016-03-18 22:35 ` Joe Perches 0 siblings, 1 reply; 11+ messages in thread From: David Miller @ 2016-03-18 21:37 UTC (permalink / raw) To: hofrat; +Cc: joe, netdev, linux-kernel From: Nicholas Mc Guire <hofrat@osadl.org> Date: Fri, 18 Mar 2016 10:32:05 +0100 > The spin_lock()/spin_unlock() is synchronizing on the adapter->work_lock > as the comment also suggests, which is equivalent to spin_unlock_wait() > but the later should be more efficient. > > Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> There really is no justification for this change. This is an optimization in a slow-path of the driver. The device is a rarely used older piece of hardware. The amount of testers of this driver is probably approximating zero. So there is only risk of breakage from this change, and absolutely zero upside. Therefore, I'm not applying this patch, and I'd kindly like to ask you to please consider such issues in the future for these kinds of transformations. Thanks. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net: consolidate lock/unlock into unlock_wait 2016-03-18 21:37 ` David Miller @ 2016-03-18 22:35 ` Joe Perches 2016-03-19 0:33 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware Joe Perches 2016-03-19 7:24 ` [PATCH] net: consolidate lock/unlock into unlock_wait Nicholas Mc Guire 0 siblings, 2 replies; 11+ messages in thread From: Joe Perches @ 2016-03-18 22:35 UTC (permalink / raw) To: David Miller, hofrat; +Cc: netdev, linux-kernel On Fri, 2016-03-18 at 17:37 -0400, David Miller wrote: > From: Nicholas Mc Guire <hofrat@osadl.org> > > The spin_lock()/spin_unlock() is synchronizing on the adapter->work_lock > > as the comment also suggests, which is equivalent to spin_unlock_wait() > > but the later should be more efficient. [] > There really is no justification for this change. > This is an optimization in a slow-path of the driver. > The device is a rarely used older piece of hardware. It really might be nice to take some of the ancient hardware drivers in drivers/net and move them into some separate subdirectory like: drivers/net/ancient or drivers/net/antiques or drivers/net/archaic etc... so there's some clear designation that these crufty old drivers don't need to be touched anymore except for maybe when kernel wide changes occur. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFC net-next 0/2] Create ancient subdirectories for old hardware 2016-03-18 22:35 ` Joe Perches @ 2016-03-19 0:33 ` Joe Perches 2016-03-19 0:33 ` [RFC net-next 1/2] drivers/net: Create an ANCIENT_NETDEVICES symbol Joe Perches ` (2 more replies) 2016-03-19 7:24 ` [PATCH] net: consolidate lock/unlock into unlock_wait Nicholas Mc Guire 1 sibling, 3 replies; 11+ messages in thread From: Joe Perches @ 2016-03-19 0:33 UTC (permalink / raw) To: netdev; +Cc: linux-kernel Maybe something like this: Old, rare, and unsupported hardware should be exposed as ancient. The drivers for these ancient hardwares are generally untested with current kernels. Joe Perches (2): drivers/net: Create an ANCIENT_NETDEVICES symbol chelsio: Move original cxgb driver into ancient subdirectory drivers/net/Kconfig | 19 +++++++++++++++++++ drivers/net/ethernet/chelsio/Kconfig | 2 +- drivers/net/ethernet/chelsio/Makefile | 2 +- drivers/net/ethernet/chelsio/ancient/Makefile | 1 + .../net/ethernet/chelsio/{ => ancient}/cxgb/Makefile | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/common.h | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/cphy.h | 0 .../ethernet/chelsio/{ => ancient}/cxgb/cpl5_cmd.h | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/cxgb2.c | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/elmer0.h | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/espi.c | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/espi.h | 0 .../ethernet/chelsio/{ => ancient}/cxgb/fpga_defs.h | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/gmac.h | 0 .../ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.c | 0 .../ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.h | 0 .../ethernet/chelsio/{ => ancient}/cxgb/mv88x201x.c | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/my3126.c | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/pm3393.c | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/regs.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.h | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/subr.c | 0 .../chelsio/{ => ancient}/cxgb/suni1x10gexp_regs.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.h | 0 .../net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326.c | 0 .../ethernet/chelsio/{ => ancient}/cxgb/vsc7326_reg.h | 0 28 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 drivers/net/ethernet/chelsio/ancient/Makefile rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/Makefile (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/common.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cphy.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cpl5_cmd.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cxgb2.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/elmer0.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/espi.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/espi.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/fpga_defs.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/gmac.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88x201x.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/my3126.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/pm3393.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/regs.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/subr.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/suni1x10gexp_regs.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326_reg.h (100%) -- 2.6.3.368.gf34be46 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [RFC net-next 1/2] drivers/net: Create an ANCIENT_NETDEVICES symbol 2016-03-19 0:33 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware Joe Perches @ 2016-03-19 0:33 ` Joe Perches 2016-03-19 0:33 ` [RFC net-next 2/2] chelsio: Move original cxgb driver into ancient subdirectory Joe Perches 2016-03-19 2:11 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware David Miller 2 siblings, 0 replies; 11+ messages in thread From: Joe Perches @ 2016-03-19 0:33 UTC (permalink / raw) To: linux-kernel; +Cc: netdev Many drivers are ancient and written for hardware that is no longer available. These drivers are effectively untested under current kernels. Add a symbol that could guard inclusions of these drivers into modern kernels unless specifically requested. Signed-off-by: Joe Perches <joe@perches.com> --- drivers/net/Kconfig | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 2a1ba62b..0878363 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -21,6 +21,25 @@ menuconfig NETDEVICES If unsure, say Y. +menuconfig ANCIENT_NETDEVICES + default n + depends on NET && NETDEVICES + bool "Network ancient device support" + ---help--- + Many old devices are no longer manufactured. + + The drivers for these devices likely worked with the original + kernel version when the devices were manufactured, but do not + necessarily function well today. + + If these devices still exist and are still functional, the drivers + for these devices get scant testing. + + The drivers for these devices are unmaintained and not supported by + the vendor. + + If you are unsure that you need drivers for old hardware, say N. + # All the following symbols are dependent on NETDEVICES - do not repeat # that for each of the symbols. if NETDEVICES -- 2.6.3.368.gf34be46 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [RFC net-next 2/2] chelsio: Move original cxgb driver into ancient subdirectory 2016-03-19 0:33 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware Joe Perches 2016-03-19 0:33 ` [RFC net-next 1/2] drivers/net: Create an ANCIENT_NETDEVICES symbol Joe Perches @ 2016-03-19 0:33 ` Joe Perches 2016-03-19 2:11 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware David Miller 2 siblings, 0 replies; 11+ messages in thread From: Joe Perches @ 2016-03-19 0:33 UTC (permalink / raw) To: linux-kernel; +Cc: netdev This hardware is no longer sold or supported by Chelsio. The hardware is relatively rare, so move it to an ancient subdirectory. Signed-off-by: Joe Perches <joe@perches.com> --- drivers/net/ethernet/chelsio/Kconfig | 2 +- drivers/net/ethernet/chelsio/Makefile | 2 +- drivers/net/ethernet/chelsio/ancient/Makefile | 1 + drivers/net/ethernet/chelsio/{ => ancient}/cxgb/Makefile | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/common.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cphy.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cpl5_cmd.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cxgb2.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/elmer0.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/espi.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/espi.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/fpga_defs.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/gmac.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88x201x.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/my3126.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/pm3393.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/regs.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/subr.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/suni1x10gexp_regs.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.h | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326.c | 0 drivers/net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326_reg.h | 0 27 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 drivers/net/ethernet/chelsio/ancient/Makefile rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/Makefile (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/common.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cphy.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cpl5_cmd.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/cxgb2.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/elmer0.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/espi.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/espi.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/fpga_defs.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/gmac.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88e1xxx.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/mv88x201x.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/my3126.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/pm3393.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/regs.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/sge.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/subr.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/suni1x10gexp_regs.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/tp.h (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326.c (100%) rename drivers/net/ethernet/chelsio/{ => ancient}/cxgb/vsc7326_reg.h (100%) diff --git a/drivers/net/ethernet/chelsio/Kconfig b/drivers/net/ethernet/chelsio/Kconfig index 4d187f2..25f4931 100644 --- a/drivers/net/ethernet/chelsio/Kconfig +++ b/drivers/net/ethernet/chelsio/Kconfig @@ -18,7 +18,7 @@ if NET_VENDOR_CHELSIO config CHELSIO_T1 tristate "Chelsio 10Gb Ethernet support" - depends on PCI + depends on PCI && ANCIENT_NETDEVICES select CRC32 select MDIO ---help--- diff --git a/drivers/net/ethernet/chelsio/Makefile b/drivers/net/ethernet/chelsio/Makefile index 390510b..10a8f92 100644 --- a/drivers/net/ethernet/chelsio/Makefile +++ b/drivers/net/ethernet/chelsio/Makefile @@ -2,7 +2,7 @@ # Makefile for the Chelsio network device drivers. # -obj-$(CONFIG_CHELSIO_T1) += cxgb/ +obj-y += ancient/ obj-$(CONFIG_CHELSIO_T3) += cxgb3/ obj-$(CONFIG_CHELSIO_T4) += cxgb4/ obj-$(CONFIG_CHELSIO_T4VF) += cxgb4vf/ diff --git a/drivers/net/ethernet/chelsio/ancient/Makefile b/drivers/net/ethernet/chelsio/ancient/Makefile new file mode 100644 index 0000000..f60dbde --- /dev/null +++ b/drivers/net/ethernet/chelsio/ancient/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_CHELSIO_T1) += cxgb/ diff --git a/drivers/net/ethernet/chelsio/cxgb/Makefile b/drivers/net/ethernet/chelsio/ancient/cxgb/Makefile similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/Makefile rename to drivers/net/ethernet/chelsio/ancient/cxgb/Makefile diff --git a/drivers/net/ethernet/chelsio/cxgb/common.h b/drivers/net/ethernet/chelsio/ancient/cxgb/common.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/common.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/common.h diff --git a/drivers/net/ethernet/chelsio/cxgb/cphy.h b/drivers/net/ethernet/chelsio/ancient/cxgb/cphy.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/cphy.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/cphy.h diff --git a/drivers/net/ethernet/chelsio/cxgb/cpl5_cmd.h b/drivers/net/ethernet/chelsio/ancient/cxgb/cpl5_cmd.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/cpl5_cmd.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/cpl5_cmd.h diff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/ancient/cxgb/cxgb2.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/cxgb2.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/cxgb2.c diff --git a/drivers/net/ethernet/chelsio/cxgb/elmer0.h b/drivers/net/ethernet/chelsio/ancient/cxgb/elmer0.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/elmer0.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/elmer0.h diff --git a/drivers/net/ethernet/chelsio/cxgb/espi.c b/drivers/net/ethernet/chelsio/ancient/cxgb/espi.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/espi.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/espi.c diff --git a/drivers/net/ethernet/chelsio/cxgb/espi.h b/drivers/net/ethernet/chelsio/ancient/cxgb/espi.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/espi.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/espi.h diff --git a/drivers/net/ethernet/chelsio/cxgb/fpga_defs.h b/drivers/net/ethernet/chelsio/ancient/cxgb/fpga_defs.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/fpga_defs.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/fpga_defs.h diff --git a/drivers/net/ethernet/chelsio/cxgb/gmac.h b/drivers/net/ethernet/chelsio/ancient/cxgb/gmac.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/gmac.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/gmac.h diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c b/drivers/net/ethernet/chelsio/ancient/cxgb/mv88e1xxx.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/mv88e1xxx.c diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.h b/drivers/net/ethernet/chelsio/ancient/cxgb/mv88e1xxx.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/mv88e1xxx.h diff --git a/drivers/net/ethernet/chelsio/cxgb/mv88x201x.c b/drivers/net/ethernet/chelsio/ancient/cxgb/mv88x201x.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/mv88x201x.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/mv88x201x.c diff --git a/drivers/net/ethernet/chelsio/cxgb/my3126.c b/drivers/net/ethernet/chelsio/ancient/cxgb/my3126.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/my3126.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/my3126.c diff --git a/drivers/net/ethernet/chelsio/cxgb/pm3393.c b/drivers/net/ethernet/chelsio/ancient/cxgb/pm3393.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/pm3393.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/pm3393.c diff --git a/drivers/net/ethernet/chelsio/cxgb/regs.h b/drivers/net/ethernet/chelsio/ancient/cxgb/regs.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/regs.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/regs.h diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.c b/drivers/net/ethernet/chelsio/ancient/cxgb/sge.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/sge.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/sge.c diff --git a/drivers/net/ethernet/chelsio/cxgb/sge.h b/drivers/net/ethernet/chelsio/ancient/cxgb/sge.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/sge.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/sge.h diff --git a/drivers/net/ethernet/chelsio/cxgb/subr.c b/drivers/net/ethernet/chelsio/ancient/cxgb/subr.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/subr.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/subr.c diff --git a/drivers/net/ethernet/chelsio/cxgb/suni1x10gexp_regs.h b/drivers/net/ethernet/chelsio/ancient/cxgb/suni1x10gexp_regs.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/suni1x10gexp_regs.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/suni1x10gexp_regs.h diff --git a/drivers/net/ethernet/chelsio/cxgb/tp.c b/drivers/net/ethernet/chelsio/ancient/cxgb/tp.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/tp.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/tp.c diff --git a/drivers/net/ethernet/chelsio/cxgb/tp.h b/drivers/net/ethernet/chelsio/ancient/cxgb/tp.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/tp.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/tp.h diff --git a/drivers/net/ethernet/chelsio/cxgb/vsc7326.c b/drivers/net/ethernet/chelsio/ancient/cxgb/vsc7326.c similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/vsc7326.c rename to drivers/net/ethernet/chelsio/ancient/cxgb/vsc7326.c diff --git a/drivers/net/ethernet/chelsio/cxgb/vsc7326_reg.h b/drivers/net/ethernet/chelsio/ancient/cxgb/vsc7326_reg.h similarity index 100% rename from drivers/net/ethernet/chelsio/cxgb/vsc7326_reg.h rename to drivers/net/ethernet/chelsio/ancient/cxgb/vsc7326_reg.h -- 2.6.3.368.gf34be46 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [RFC net-next 0/2] Create ancient subdirectories for old hardware 2016-03-19 0:33 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware Joe Perches 2016-03-19 0:33 ` [RFC net-next 1/2] drivers/net: Create an ANCIENT_NETDEVICES symbol Joe Perches 2016-03-19 0:33 ` [RFC net-next 2/2] chelsio: Move original cxgb driver into ancient subdirectory Joe Perches @ 2016-03-19 2:11 ` David Miller 2016-03-19 2:28 ` Joe Perches 2 siblings, 1 reply; 11+ messages in thread From: David Miller @ 2016-03-19 2:11 UTC (permalink / raw) To: joe; +Cc: netdev, linux-kernel From: Joe Perches <joe@perches.com> Date: Fri, 18 Mar 2016 17:33:29 -0700 > Maybe something like this: > > Old, rare, and unsupported hardware should be exposed as ancient. > > The drivers for these ancient hardwares are generally untested with > current kernels. Moving drivers has a long term maintainence cost. If they've moved into drivers/net proper, we have to maintain them there forever. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC net-next 0/2] Create ancient subdirectories for old hardware 2016-03-19 2:11 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware David Miller @ 2016-03-19 2:28 ` Joe Perches 2016-03-19 3:16 ` David Miller 0 siblings, 1 reply; 11+ messages in thread From: Joe Perches @ 2016-03-19 2:28 UTC (permalink / raw) To: David Miller; +Cc: netdev, linux-kernel On Fri, 2016-03-18 at 22:11 -0400, David Miller wrote: > From: Joe Perches <joe@perches.com> > Date: Fri, 18 Mar 2016 17:33:29 -0700 > > > Maybe something like this: > > > > Old, rare, and unsupported hardware should be exposed as ancient. > > > > The drivers for these ancient hardwares are generally untested with > > current kernels. > > Moving drivers has a long term maintainence cost. > > If they've moved into drivers/net proper, we have to maintain > them there forever. I don't doubt that. All files are still in drivers/net, just possibly in separate subdirectories for easier visibility to determine if changes like what were proposed for cxgb should actually be done or not. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC net-next 0/2] Create ancient subdirectories for old hardware 2016-03-19 2:28 ` Joe Perches @ 2016-03-19 3:16 ` David Miller 2016-03-19 15:36 ` Joe Perches 0 siblings, 1 reply; 11+ messages in thread From: David Miller @ 2016-03-19 3:16 UTC (permalink / raw) To: joe; +Cc: netdev, linux-kernel From: Joe Perches <joe@perches.com> Date: Fri, 18 Mar 2016 19:28:02 -0700 > On Fri, 2016-03-18 at 22:11 -0400, David Miller wrote: >> From: Joe Perches <joe@perches.com> >> Date: Fri, 18 Mar 2016 17:33:29 -0700 >> >> > Maybe something like this: >> > >> > Old, rare, and unsupported hardware should be exposed as ancient. >> > >> > The drivers for these ancient hardwares are generally untested with >> > current kernels. >> >> Moving drivers has a long term maintainence cost. >> >> If they've moved into drivers/net proper, we have to maintain >> them there forever. > > I don't doubt that. > > All files are still in drivers/net, just possibly in > separate subdirectories for easier visibility to > determine if changes like what were proposed for cxgb > should actually be done or not. You don't understand my concern, backporting patches to -stable releases is more painful if you move the driver anywhere other than where it has been for years. I'm not entertaining this idea, sorry Joe. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [RFC net-next 0/2] Create ancient subdirectories for old hardware 2016-03-19 3:16 ` David Miller @ 2016-03-19 15:36 ` Joe Perches 0 siblings, 0 replies; 11+ messages in thread From: Joe Perches @ 2016-03-19 15:36 UTC (permalink / raw) To: David Miller; +Cc: netdev, linux-kernel On Fri, 2016-03-18 at 23:16 -0400, David Miller wrote: > From: Joe Perches <joe@perches.com> Date: Fri, 18 Mar 2016 19:28:02 -0700 > > On Fri, 2016-03-18 at 22:11 -0400, David Miller wrote: > >> From: Joe Perches <joe@perches.com> Date: Fri, 18 Mar 2016 17:33:29 -0700 > >> > Maybe something like this: > >> > Old, rare, and unsupported hardware should be exposed as ancient. > >> > > >> > The drivers for these ancient hardwares are generally untested with > >> > current kernels. > >> > >> Moving drivers has a long term maintainence cost. > >> > >> If they've moved into drivers/net proper, we have to maintain > >> them there forever. > > > > I don't doubt that. Actually I rather do kind of doubt that. Look for instance at what's proposed now for drivers/isdn which realistically, could have been in drivers/net. Also, various bits of hardware support have already been dropped from drivers/net. The 3c503, ni52 and others come to mind. Token Ring support too. Today, I expect there aren't many Packet Engines devices, either hamachi or yellowfin, still being used, especially with kernel versions > 4. > > All files are still in drivers/net, just possibly in > > separate subdirectories for easier visibility to > > determine if changes like what were proposed for cxgb > > should actually be done or not. > > You don't understand my concern, backporting patches to -stable > releases is more painful if you move the driver anywhere other > than where it has been for years. > > I'm not entertaining this idea, sorry Joe. I do understand your concern. Backporting patches to obsolete hardware shouldn't much be necessary as obsolete hardware, as you wrote yourself, simply doens't get much testing. Archaic stuff should eventually get sifted out altogether. Marking drivers as archaic at least allows people that use use the older devices to object and maybe actually step up to maintain them too. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] net: consolidate lock/unlock into unlock_wait 2016-03-18 22:35 ` Joe Perches 2016-03-19 0:33 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware Joe Perches @ 2016-03-19 7:24 ` Nicholas Mc Guire 1 sibling, 0 replies; 11+ messages in thread From: Nicholas Mc Guire @ 2016-03-19 7:24 UTC (permalink / raw) To: Joe Perches; +Cc: David Miller, hofrat, netdev, linux-kernel On Fri, Mar 18, 2016 at 03:35:18PM -0700, Joe Perches wrote: > On Fri, 2016-03-18 at 17:37 -0400, David Miller wrote: > > From: Nicholas Mc Guire <hofrat@osadl.org> > > > The spin_lock()/spin_unlock() is synchronizing on the adapter->work_lock > > > as the comment also suggests, which is equivalent to spin_unlock_wait() > > > but the later should be more efficient. > [] > > There really is no justification for this change. > > This is an optimization in a slow-path of the driver. > > The device is a rarely used older piece of hardware. > > It really might be nice to take some of the ancient > hardware drivers in drivers/net and move them into > some separate subdirectory like: > > drivers/net/ancient > or > drivers/net/antiques > or > drivers/net/archaic > etc... > > so there's some clear designation that these crufty > old drivers don't need to be touched anymore except > for maybe when kernel wide changes occur. > actually thats just the problem - some of those did not perform such kernel wide changes lock/unlock -> unlock_wait being one of them. But having a distinction as proposed to keep people like me from scanning them, sounds like a good idea. Will add an "age of code" check before submitting API cleanups. thx! hofrat ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-03-19 15:36 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-18 9:32 [PATCH] net: consolidate lock/unlock into unlock_wait Nicholas Mc Guire 2016-03-18 21:37 ` David Miller 2016-03-18 22:35 ` Joe Perches 2016-03-19 0:33 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware Joe Perches 2016-03-19 0:33 ` [RFC net-next 1/2] drivers/net: Create an ANCIENT_NETDEVICES symbol Joe Perches 2016-03-19 0:33 ` [RFC net-next 2/2] chelsio: Move original cxgb driver into ancient subdirectory Joe Perches 2016-03-19 2:11 ` [RFC net-next 0/2] Create ancient subdirectories for old hardware David Miller 2016-03-19 2:28 ` Joe Perches 2016-03-19 3:16 ` David Miller 2016-03-19 15:36 ` Joe Perches 2016-03-19 7:24 ` [PATCH] net: consolidate lock/unlock into unlock_wait Nicholas Mc Guire
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).