Subject: [PATCH net-next] Re: can't add tc multiq

From: Jarek Poplawski <[email-masked]>
Date: Mon, 9 Feb 2009 22:44:47 +0100

Stephen Hemminger wrote, On 02/09/2009 05:15 PM:

> On Mon, 09 Feb 2009 11:43:26 +0300
> Badalian Vyacheslav <[email-masked]> wrote:
> 
>> Hello all!
>> kernel 2.6.28.4
>> iproute2 - last git
>> Can't use multiq qdisc. How to fix this?
>> Thanks!
>>
>> slavon ~ # tc qdisc add dev eth0 root handle 1: multiq
>> RTNETLINK answers: Invalid argument
...
> You need hardware with multiple transmit queues. Neither e1000 or r8169
> has this.
------------------->
pkt_sched: sch_multiq: Warn on non-multiqueue devices.

Current "RTNETLINK answers: Invalid argument" warning, while trying to
add multiq qdisc to non-multiqueue device, isn't very helpful and some
of these devs can be changed btw., so let's add a small printk.

With feedback from Stephen Hemminger <[email-masked]>

Reported-by: Badalian Vyacheslav <[email-masked]>
Signed-off-by: Jarek Poplawski <[email-masked]>
---

 net/sched/sch_multiq.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/net/sched/sch_multiq.c b/net/sched/sch_multiq.c
index 7e15186..a38f0c1 100644
--- a/net/sched/sch_multiq.c
+++ b/net/sched/sch_multiq.c
@@ -201,8 +201,11 @@ static int multiq_tune(struct Qdisc *sch, struct nlattr *opt)
 	struct tc_multiq_qopt *qopt;
 	int i;
 
-	if (!netif_is_multiqueue(qdisc_dev(sch)))
+	if (!netif_is_multiqueue(qdisc_dev(sch))) {
+		printk(KERN_WARNING "multiq: dev %s isn't multiqueue.\n",
+		       qdisc_dev(sch)->name);
 		return -EINVAL;
+	}
 	if (nla_len(opt) < sizeof(*qopt))
 		return -EINVAL;