via-velocity: add netpoll functionality for the benefit of netconsole
Subsystems (2)
PATCH 1/1 via-velocity: add netpoll functionality for the benefit of netconsole
In February 2008, Stéphane Bertelot submitted a patch to netdev adding netpoll functionality to the via-velocity driver so that netconsole could be used with it.
There was no discussion at the time and the patch was not committed to mainline.
I'd like to try again with this version, which has been ported to the current code base.
---------------------
This patch is a port to net-next-2.6 of a submission by Stéphane Bertelot in February 2008.
--- drivers/net/via-velocity.c | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
drivers/net/via-velocity.c +17 -0
@@ -2216,6 +2216,20 @@ static irqreturn_t velocity_intr(int irq, void *dev_instance) }/** +* velocity_poll_controller - netpoll controller +* @dev: network device +* +* Used by netconsole and other diagnostic tools to allow network +* i/o with interrupts disabled. +*/ +static void velocity_poll_controller (struct net_device *dev) +{ +disable_irq (dev->irq); +velocity_intr (dev->irq, dev); +enable_irq (dev->irq); +} + +/** * velocity_open - interface activation callback * @dev: network layer device to open *
@@ -2628,6 +2642,9 @@ static const struct net_device_ops velocity_netdev_ops = { .ndo_vlan_rx_add_vid = velocity_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = velocity_vlan_rx_kill_vid, .ndo_vlan_rx_register = velocity_vlan_rx_register, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = velocity_poll_controller, +#endif };/**
Signature · 1 line
1.6.3.3
Hi,
Does the patch still work with the new NAPI support in the driver? Some comments below:
drivers/net/via-velocity.c static irqreturn_t velocity_intr(int irq, void *dev_instance) · line 2230
Quoted 6 lines · On Mon, 04 Jan 2010 19:32:32 +0100 Jan Ceuleers <[email protected]>…
drivers/net/via-velocity.c +6
-0+static void velocity_poll_controller (struct net_device *dev) +{ +disable_irq (dev->irq); +velocity_intr (dev->irq, dev); +enable_irq (dev->irq); +}
This should probably have an
#ifdef CONFIG_NET_POLL_CONTROLLER
...
#endif
around it since
drivers/net/via-velocity.c static const struct net_device_ops velocity_netdev_ops = { · line 2647
Quoted 7 lines
drivers/net/via-velocity.c +3
-0@@ -2628,6 +2642,9 @@ static const struct net_device_ops velocity_netdev_ops = { .ndo_vlan_rx_add_vid = velocity_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = velocity_vlan_rx_kill_vid, .ndo_vlan_rx_register = velocity_vlan_rx_register, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = velocity_poll_controller, +#endif
This one has it (to avoid a warning when building without it).
// Simon
Quoted 1 line · Simon Kagstrom
Does the patch still work with the new NAPI support in the driver?
Errr. (Is my ignorance showing yet?)
I will have to study this, based on other drivers and your commit dfff71.
I would be grateful for any hints, but otherwise will endeavour to figure it out myself.
Quoted 9 lines
drivers/net/via-velocity.c static irqreturn_t velocity_intr(int irq, void *dev_instance) · line 2230
Quoted 6 lines
drivers/net/via-velocity.c +6
-0+static void velocity_poll_controller (struct net_device *dev) +{ +disable_irq (dev->irq); +velocity_intr (dev->irq, dev); +enable_irq (dev->irq); +}This should probably have an
Quoted 5 lines
#ifdef
CONFIG_NET_POLL_CONTROLLER
...
#endifaround it
You are right, will add.
Thanks, Jan
Quoted 6 lines · On Tue, 05 Jan 2010 21:19:33 +0100 Jan Ceuleers <[email protected]>…
Quoted 1 line · Simon Kagstrom
Does the patch still work with the new NAPI support in the driver?
Errr. (Is my ignorance showing yet?)
I will have to study this, based on other drivers and your commit dfff71.
Well, if you have tested it and netconsole works with the new driver I would guess it's OK. I don't know netconsole myself, but I know the interrupt handler (which you call from your patch) has changed with the NAPI support, so that's why I was wondering if it still worked.
// Simon
Quoted 6 lines · Simon Kagstrom
Quoted 1 line
I will have to study this, based on other drivers and your commit dfff71.
Well, if you have tested it and netconsole works with the new driver I would guess it's OK. I don't know netconsole myself, but I know the interrupt handler (which you call from your patch) has changed with the NAPI support, so that's why I was wondering if it still worked.
I want to double-check but can't get my hands on the test machine at the moment. I will revert as soon as.
Thanks, Jan