<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/sched, branch v2.6.22.12</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Fix cls_u32 error return handling.</title>
<updated>2007-11-02T15:44:09+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@linux-foundation.org</email>
</author>
<published>2007-10-10T10:10:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fda485207e705c4447d450155e9b4eb85acf8062'/>
<id>fda485207e705c4447d450155e9b4eb85acf8062</id>
<content type='text'>
changeset bf1b803b01b00c3801e0aa373ba0305f8278e260 from mainline.

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
changeset bf1b803b01b00c3801e0aa373ba0305f8278e260 from mainline.

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Fix TC deadlock.</title>
<updated>2007-08-09T21:27:26+00:00</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2007-07-18T09:32:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c1bb818242296c121ff574cb1fec2bc0127d6b31'/>
<id>c1bb818242296c121ff574cb1fec2bc0127d6b31</id>
<content type='text'>
[NET_SCHED]: Revert "avoid transmit softirq on watchdog wakeup" optimization

As noticed by Ranko Zivojnovic &lt;ranko@spidernet.net&gt;, calling qdisc_run
from the timer handler can result in deadlock:

&gt; CPU#0
&gt;
&gt; qdisc_watchdog() fires and gets dev-&gt;queue_lock
&gt; qdisc_run()...qdisc_restart()...
&gt; -&gt; releases dev-&gt;queue_lock and enters dev_hard_start_xmit()
&gt;
&gt; CPU#1
&gt;
&gt; tc del qdisc dev ...
&gt; qdisc_graft()...dev_graft_qdisc()...dev_deactivate()...
&gt; -&gt; grabs dev-&gt;queue_lock ...
&gt;
&gt; qdisc_reset()...{cbq,hfsc,htb,netem,tbf}_reset()...qdisc_watchdog_cancel()...
&gt; -&gt; hrtimer_cancel() - waiting for the qdisc_watchdog() to exit, while still
&gt;		        holding dev-&gt;queue_lock
&gt;
&gt; CPU#0
&gt;
&gt; dev_hard_start_xmit() returns ...
&gt; -&gt; wants to get dev-&gt;queue_lock(!)
&gt;
&gt; DEADLOCK!

The entire optimization is a bit questionable IMO, it moves potentially
large parts of NET_TX_SOFTIRQ work to TIMER_SOFTIRQ/HRTIMER_SOFTIRQ,
which kind of defeats the separation of them.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Acked-by: Ranko Zivojnovic &lt;ranko@spidernet.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[NET_SCHED]: Revert "avoid transmit softirq on watchdog wakeup" optimization

As noticed by Ranko Zivojnovic &lt;ranko@spidernet.net&gt;, calling qdisc_run
from the timer handler can result in deadlock:

&gt; CPU#0
&gt;
&gt; qdisc_watchdog() fires and gets dev-&gt;queue_lock
&gt; qdisc_run()...qdisc_restart()...
&gt; -&gt; releases dev-&gt;queue_lock and enters dev_hard_start_xmit()
&gt;
&gt; CPU#1
&gt;
&gt; tc del qdisc dev ...
&gt; qdisc_graft()...dev_graft_qdisc()...dev_deactivate()...
&gt; -&gt; grabs dev-&gt;queue_lock ...
&gt;
&gt; qdisc_reset()...{cbq,hfsc,htb,netem,tbf}_reset()...qdisc_watchdog_cancel()...
&gt; -&gt; hrtimer_cancel() - waiting for the qdisc_watchdog() to exit, while still
&gt;		        holding dev-&gt;queue_lock
&gt;
&gt; CPU#0
&gt;
&gt; dev_hard_start_xmit() returns ...
&gt; -&gt; wants to get dev-&gt;queue_lock(!)
&gt;
&gt; DEADLOCK!

The entire optimization is a bit questionable IMO, it moves potentially
large parts of NET_TX_SOFTIRQ work to TIMER_SOFTIRQ/HRTIMER_SOFTIRQ,
which kind of defeats the separation of them.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Acked-by: Ranko Zivojnovic &lt;ranko@spidernet.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>[NET_SCHED]: Fix filter double free</title>
<updated>2007-06-07T20:41:05+00:00</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2007-06-05T23:06:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b00b4bf94edb42852d55619af453588b2de2dc5e'/>
<id>b00b4bf94edb42852d55619af453588b2de2dc5e</id>
<content type='text'>
cbq and atm destroy their filters twice when destroying inner classes
during qdisc destruction.

Reported-and-tested-by: Strobl Anton &lt;a.strobl@aws-it.at&gt;

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cbq and atm destroy their filters twice when destroying inner classes
during qdisc destruction.

Reported-and-tested-by: Strobl Anton &lt;a.strobl@aws-it.at&gt;

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET]: Fix comparisons of unsigned &lt; 0.</title>
<updated>2007-06-04T01:08:47+00:00</updated>
<author>
<name>Bill Nottingham</name>
<email>notting@redhat.com</email>
</author>
<published>2007-06-01T04:33:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=75202e76893c11ce7f8bcc9a07f994d71e3d5113'/>
<id>75202e76893c11ce7f8bcc9a07f994d71e3d5113</id>
<content type='text'>
Recent gcc versions emit warnings when unsigned variables are
compared &lt; 0 or &gt;= 0.

Signed-off-by: Bill Nottingham &lt;notting@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent gcc versions emit warnings when unsigned variables are
compared &lt; 0 or &gt;= 0.

Signed-off-by: Bill Nottingham &lt;notting@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET]: Make net watchdog timers 1 sec jiffy aligned.</title>
<updated>2007-06-04T01:08:46+00:00</updated>
<author>
<name>Venkatesh Pallipadi</name>
<email>venkatesh.pallipadi@intel.com</email>
</author>
<published>2007-06-01T04:28:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=60468d5b5b6931b4d4d704e26b5f17a6e476e6f8'/>
<id>60468d5b5b6931b4d4d704e26b5f17a6e476e6f8</id>
<content type='text'>
round_jiffies for net dev watchdog timer.

Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
round_jiffies for net dev watchdog timer.

Signed-off-by: Venkatesh Pallipadi &lt;venkatesh.pallipadi@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET_SCHED]: sch_htb: fix event cache time calculation</title>
<updated>2007-05-24T23:36:56+00:00</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2007-05-24T06:39:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2e4b3b0e8734d1173c96c6f5d8a8dd6728950b56'/>
<id>2e4b3b0e8734d1173c96c6f5d8a8dd6728950b56</id>
<content type='text'>
The event cache time must be an absolute value, when no event exists
it is incorrectly set to 1s instead of 1s in the future.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The event cache time must be an absolute value, when no event exists
it is incorrectly set to 1s instead of 1s in the future.

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET_SCHED]: Fix qdisc_restart return value when dequeue is empty</title>
<updated>2007-05-24T23:36:43+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2007-05-23T21:30:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=36247f5421015eab0bdd96789b24790598934db9'/>
<id>36247f5421015eab0bdd96789b24790598934db9</id>
<content type='text'>
My previous patch that changed the return value of qdisc_restart
incorrectly made the case where dequeue returns empty continue
processing packets.

This patch is based on diagnosis and fix by Patrick McHardy.

Reported-and-debugged-by: Anant Nitya &lt;kernel@prachanda.info&gt;

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
My previous patch that changed the return value of qdisc_restart
incorrectly made the case where dequeue returns empty continue
processing packets.

This patch is based on diagnosis and fix by Patrick McHardy.

Reported-and-debugged-by: Anant Nitya &lt;kernel@prachanda.info&gt;

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET_SCHED]: prio qdisc boundary condition</title>
<updated>2007-05-14T09:57:19+00:00</updated>
<author>
<name>Jamal Hadi Salim</name>
<email>hadi@cyberus.ca</email>
</author>
<published>2007-05-14T09:57:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3e5c2d3bdbe2c047b9853c4248f881f5ac645c89'/>
<id>3e5c2d3bdbe2c047b9853c4248f881f5ac645c89</id>
<content type='text'>
This fixes an out-of-boundary condition when the classified
band equals q-&gt;bands. Caught by Alexey

Signed-off-by: Jamal Hadi Salim &lt;hadi@cyberus.ca&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes an out-of-boundary condition when the classified
band equals q-&gt;bands. Caught by Alexey

Signed-off-by: Jamal Hadi Salim &lt;hadi@cyberus.ca&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET_SCHED]: Avoid requeue warning on dev_deactivate</title>
<updated>2007-05-11T06:47:42+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2007-05-10T21:12:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=41a23b0788610b27ecb4c4ee857f3fe7168f1070'/>
<id>41a23b0788610b27ecb4c4ee857f3fe7168f1070</id>
<content type='text'>
When we relinquish queue_lock in qdisc_restart and then retake it for
requeueing, we might race against dev_deactivate and end up requeueing
onto noop_qdisc.  This causes a warning to be printed.

This patch fixes this by checking this before we requeue.  As an added
bonus, we can remove the same check in __qdisc_run which was added to
prevent dev-&gt;gso_skb from being requeued when we're shutting down.

Even though we've had to add a new conditional in its place, it's better
because it only happens on requeues rather than every single time that
qdisc_run is called.

For this to work we also need to move the clearing of gso_skb up in
dev_deactivate as now qdisc_restart can occur even after we wait for
__LINK_STATE_QDISC_RUNNING to clear (but it won't do anything as long
as the queue and gso_skb is already clear).

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we relinquish queue_lock in qdisc_restart and then retake it for
requeueing, we might race against dev_deactivate and end up requeueing
onto noop_qdisc.  This causes a warning to be printed.

This patch fixes this by checking this before we requeue.  As an added
bonus, we can remove the same check in __qdisc_run which was added to
prevent dev-&gt;gso_skb from being requeued when we're shutting down.

Even though we've had to add a new conditional in its place, it's better
because it only happens on requeues rather than every single time that
qdisc_run is called.

For this to work we also need to move the clearing of gso_skb up in
dev_deactivate as now qdisc_restart can occur even after we wait for
__LINK_STATE_QDISC_RUNNING to clear (but it won't do anything as long
as the queue and gso_skb is already clear).

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET_SCHED]: Reread dev-&gt;qdisc for NETDEV_TX_OK</title>
<updated>2007-05-11T06:47:41+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2007-05-10T21:11:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cce1fa36a8ed36e8a3f64455e2a830f48e904c64'/>
<id>cce1fa36a8ed36e8a3f64455e2a830f48e904c64</id>
<content type='text'>
Now that we return the queue length after NETDEV_TX_OK we better
make sure that we have the right queue.  Otherwise we can cause a
stall after a really quick dev_deactive/dev_activate.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that we return the queue length after NETDEV_TX_OK we better
make sure that we have the right queue.  Otherwise we can cause a
stall after a really quick dev_deactive/dev_activate.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
