diff mbox

via-velocity: add netpoll functionality for the benefit of netconsole

Message ID 4B423440.6060807@computer.org
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Jan Ceuleers Jan. 4, 2010, 6:32 p.m. UTC
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.

Signed-off-by: Stéphane Berthelot <sberthelot@emisfr.com>
Signed-off-by: Jan Ceuleers <jan.ceuleers@computer.org>
---
 drivers/net/via-velocity.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

Comments

Simon Kagstrom Jan. 5, 2010, 6:28 a.m. UTC | #1
Hi,

Does the patch still work with the new NAPI support in the driver? Some
comments below:

On Mon, 04 Jan 2010 19:32:32 +0100
Jan Ceuleers <jan.ceuleers@computer.org> wrote:

> +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

> @@ -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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jan Ceuleers Jan. 5, 2010, 8:19 p.m. UTC | #2
Simon Kagstrom wrote:
> 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.

>> +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

You are right, will add.


Thanks, Jan
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Simon Kagstrom Jan. 7, 2010, 6:26 a.m. UTC | #3
On Tue, 05 Jan 2010 21:19:33 +0100
Jan Ceuleers <jan.ceuleers@computer.org> wrote:

> Simon Kagstrom wrote:
> > 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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jan Ceuleers Jan. 10, 2010, 9:06 a.m. UTC | #4
Simon Kagstrom wrote:
>> 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
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 4ceb441..90718f5 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -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
 };
 
 /**