From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH][VIA-RHINE]: Fix CONFIG_VIA_RHINE_NAPI usage
Date: Wed, 22 Aug 2007 19:19:47 -0300 [thread overview]
Message-ID: <20070822221946.GE23220@ghostprotocols.net> (raw)
In-Reply-To: <20070822.145855.32177470.davem@davemloft.net>
Em Wed, Aug 22, 2007 at 02:58:55PM -0700, David Miller escreveu:
> From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> Date: Wed, 22 Aug 2007 18:46:59 -0300
>
> > Hi David,
> >
> > napi is broken here, with this patch at least I can isolate this
> > breakage and boot the machine with a non-napi via-rhine driver.
> >
>
> Thanks for finding this problem.
>
> The core issue seems to be that via-rhine.c tries to perform
> a napi_enable() when there has not been a previous napi_disable().
>
> So lets make sure that all paths that lead to an init_registers()
> call makes a preceeding napi_disable().
>
> Please give this patch a try:
Tried with and without CONFIG_VIA_RHINE_NAPI, did stress testing with
netperf only with NAPI enabled. Works great
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
> index 8f4cf82..0e6aefe 100644
> --- a/drivers/net/via-rhine.c
> +++ b/drivers/net/via-rhine.c
> @@ -1167,6 +1167,7 @@ static int rhine_open(struct net_device *dev)
> free_irq(rp->pdev->irq, dev);
> return rc;
> }
> + napi_disable(&rp->napi);
> alloc_rbufs(dev);
> alloc_tbufs(dev);
> rhine_chip_reset(dev);
> @@ -1195,6 +1196,8 @@ static void rhine_tx_timeout(struct net_device *dev)
> /* protect against concurrent rx interrupts */
> disable_irq(rp->pdev->irq);
>
> + napi_disable(&rp->napi);
> +
> spin_lock(&rp->lock);
>
> /* clear all descriptors */
> @@ -1935,6 +1938,7 @@ static int rhine_suspend(struct pci_dev *pdev, pm_message_t state)
> if (!netif_running(dev))
> return 0;
>
> + napi_disable(&rp->napi);
> netif_device_detach(dev);
> pci_save_state(pdev);
>
> -
> 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
prev parent reply other threads:[~2007-08-22 22:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-22 21:46 [PATCH][VIA-RHINE]: Fix CONFIG_VIA_RHINE_NAPI usage Arnaldo Carvalho de Melo
2007-08-22 21:58 ` David Miller
2007-08-22 22:19 ` Arnaldo Carvalho de Melo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070822221946.GE23220@ghostprotocols.net \
--to=acme@ghostprotocols.net \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.