2012-08-13 14:43:49

by Ilya Shchepetkov

[permalink] [raw]
Subject: [PATCH] net: Fix incorrect comment in netif_tx_stop_queue()

netif_stop_queue() can be called before register_netdev() because now
TX queues are allocated inside alloc_netdev_mqs().

(since ed9af2e839c06c18f721da2c768fbb444c4a10e5 commit)

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Ilya Shchepetkov <[email protected]>
---
include/linux/netdevice.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index a9db4f3..a94fbbd 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1860,7 +1860,7 @@ static inline void netif_tx_wake_all_queues(struct net_device *dev)
static inline void netif_tx_stop_queue(struct netdev_queue *dev_queue)
{
if (WARN_ON(!dev_queue)) {
- pr_info("netif_stop_queue() cannot be called before register_netdev()\n");
+ pr_info("dev_queue is null\n");
return;
}
set_bit(__QUEUE_STATE_DRV_XOFF, &dev_queue->state);
--
1.7.7


2012-08-14 21:46:25

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: Fix incorrect comment in netif_tx_stop_queue()


From: Ilya Shchepetkov <[email protected]>
Date: Mon, 13 Aug 2012 18:43:34 +0400

> netif_stop_queue() can be called before register_netdev() because now
> TX queues are allocated inside alloc_netdev_mqs().
>
> (since ed9af2e839c06c18f721da2c768fbb444c4a10e5 commit)
>
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Ilya Shchepetkov <[email protected]>

You're not changing a "comment", you're changing a kernel log message.

Have you actually triggered this condition?

I doubt it, and I'm not applying this patch.

2012-08-17 08:02:08

by Ilya Shchepetkov

[permalink] [raw]
Subject: Re: [PATCH] net: Fix incorrect comment in netif_tx_stop_queue()

> > netif_stop_queue() can be called before register_netdev() because now
> > TX queues are allocated inside alloc_netdev_mqs().
> >
> > (since ed9af2e839c06c18f721da2c768fbb444c4a10e5 commit)
> >
> > Found by Linux Driver Verification project (linuxtesting.org).
> >
> > Signed-off-by: Ilya Shchepetkov <[email protected]>
>
> You're not changing a "comment", you're changing a kernel log message.
>
> Have you actually triggered this condition?
>
> I doubt it, and I'm not applying this patch.

My test driver calls netif_carrier_off before register_netdev and works
well,
without "netif_stop_queue() cannot be called before register_netdev()"
message.

Also, there are drivers that call netif_tx_stop_queue directly
and possible error message (with a reference to netif_stop_queue) will
be wrong.

Look at these commits:
e6484930d7c73d324bccda7d43d131088da697b9
18543a643fae694982c7d89c22436885f3506497
ed9af2e839c06c18f721da2c768fbb444c4a10e5

After the third commit, the second one became unnecessary.

Thus, I suggest either to remove the misleading message, or to replace
it with this:

pr_info("netif_tx_stop_queue(): dev_queue is null()\n");