<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus-rt.git/drivers/net/hamradio, branch tracing-devel</title>
<subtitle>The LITMUS^RT kernel.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/'/>
<entry>
<title>headers: remove sched.h from interrupt.h</title>
<updated>2009-10-11T18:20:58+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-10-07T13:09:06+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=d43c36dc6b357fa1806800f18aa30123c747a6d1'/>
<id>d43c36dc6b357fa1806800f18aa30123c747a6d1</id>
<content type='text'>
After m68k's task_thread_info() doesn't refer to current,
it's possible to remove sched.h from interrupt.h and not break m68k!
Many thanks to Heiko Carstens for allowing this.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After m68k's task_thread_info() doesn't refer to current,
it's possible to remove sched.h from interrupt.h and not break m68k!
Many thanks to Heiko Carstens for allowing this.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NET: mkiss: Fix typo</title>
<updated>2009-10-01T21:48:25+00:00</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2009-10-01T21:48:25+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=7b1401cf5cc4b72e1273a5d7e7566a58e7fba001'/>
<id>7b1401cf5cc4b72e1273a5d7e7566a58e7fba001</id>
<content type='text'>
This typo was introduced by 5793f4be23f0171b4999ca68a39a9157b44139f3 on
October 14, 2005 ...

Reported-by: Matti Aarnio &lt;matti.aarnio@zmailer.org&gt;
Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&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 typo was introduced by 5793f4be23f0171b4999ca68a39a9157b44139f3 on
October 14, 2005 ...

Reported-by: Matti Aarnio &lt;matti.aarnio@zmailer.org&gt;
Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NET: Fix possible corruption in bpqether driver</title>
<updated>2009-09-03T06:45:58+00:00</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2009-09-03T06:09:29+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=3eb0027594e25f5947f074ae53fea30c15c5a7f6'/>
<id>3eb0027594e25f5947f074ae53fea30c15c5a7f6</id>
<content type='text'>
The bpq ether driver is modifying the data art of the skb by first
dropping the KISS byte (a command byte for the radio) then prepending the
length + 4 of the remaining AX.25 packet to be transmitted as a little
endian 16-bit number.  If the high byte of the length has a different
value than the dropped KISS byte users of clones of the skb may observe
this as corruption.  This was observed with by running listen(8) -a which
uses a packet socket which clones transmit packets.  The corruption will
then typically be displayed for as a KISS "TX Delay" command for AX.25
packets in the range of 252..508 bytes or any other KISS command for
yet larger packets.

Fixed by using skb_cow to create a private copy should the skb be cloned.
Using skb_cow also allows us to cleanup the old logic to ensure sufficient
headroom in the skb.

While at it, replace a return of 0 from bpq_xmit with the proper constant
NETDEV_TX_OK which is now being used everywhere else in this function.

Affected: all 2.2, 2.4 and 2.6 kernels.

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Reported-by: Jann Traschewski &lt;jann@gmx.de&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 bpq ether driver is modifying the data art of the skb by first
dropping the KISS byte (a command byte for the radio) then prepending the
length + 4 of the remaining AX.25 packet to be transmitted as a little
endian 16-bit number.  If the high byte of the length has a different
value than the dropped KISS byte users of clones of the skb may observe
this as corruption.  This was observed with by running listen(8) -a which
uses a packet socket which clones transmit packets.  The corruption will
then typically be displayed for as a KISS "TX Delay" command for AX.25
packets in the range of 252..508 bytes or any other KISS command for
yet larger packets.

Fixed by using skb_cow to create a private copy should the skb be cloned.
Using skb_cow also allows us to cleanup the old logic to ensure sufficient
headroom in the skb.

While at it, replace a return of 0 from bpq_xmit with the proper constant
NETDEV_TX_OK which is now being used everywhere else in this function.

Affected: all 2.2, 2.4 and 2.6 kernels.

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Reported-by: Jann Traschewski &lt;jann@gmx.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>convert hamradio drivers to netdev_txreturnt_t</title>
<updated>2009-09-01T08:13:12+00:00</updated>
<author>
<name>Stephen Hemminger</name>
<email>shemminger@vyatta.com</email>
</author>
<published>2009-08-31T19:50:43+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=36e4d64a82d9a91a73a2b9b32117aedfe2211fb3'/>
<id>36e4d64a82d9a91a73a2b9b32117aedfe2211fb3</id>
<content type='text'>
Signed-off-by: Stephen Hemminger &lt;shemminger@vyatta.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>
Signed-off-by: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-08-13T00:44:53+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-08-13T00:44:53+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=aa11d958d1a6572eda08214d7c6a735804fe48a5'/>
<id>aa11d958d1a6572eda08214d7c6a735804fe48a5</id>
<content type='text'>
Conflicts:
	arch/microblaze/include/asm/socket.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	arch/microblaze/include/asm/socket.h
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-07-24T02:03:51+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-07-24T02:03:51+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=74d154189d597b91da4322996dbf4f5c3d1544ab'/>
<id>74d154189d597b91da4322996dbf4f5c3d1544ab</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/iwmc3200wifi/netdev.c
	net/wireless/scan.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/wireless/iwmc3200wifi/netdev.c
	net/wireless/scan.c
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6</title>
<updated>2009-07-22T16:49:58+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-07-22T16:49:58+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=402168cee1a0b791c54c54a68ae21bb26880f40b'/>
<id>402168cee1a0b791c54c54a68ae21bb26880f40b</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (37 commits)
  sky2: Avoid races in sky2_down
  drivers/net/mlx4: Adjust constant
  drivers/net: Move a dereference below a NULL test
  drivers/net: Move a dereference below a NULL test
  connector: maintainer/mail update.
  USB host CDC Phonet network interface driver
  macsonic, jazzsonic: fix oops on module unload
  macsonic: move probe function to .devinit.text
  can: switch carrier on if device was stopped while in bus-off state
  can: restart device even if dev_alloc_skb() fails
  can: sja1000: remove duplicated includes
  New device ID for sc92031 [1088:2031]
  3c589_cs: re-initialize the multicast in the tc589_reset
  Fix error return for setsockopt(SO_TIMESTAMPING)
  netxen: fix thermal check and shutdown
  netxen: fix deadlock on dev close
  netxen: fix context deletion sequence
  net: Micrel KS8851 SPI network driver
  tcp: Use correct peer adr when copying MD5 keys
  tcp: Fix MD5 signature checking on IPv4 mapped sockets
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (37 commits)
  sky2: Avoid races in sky2_down
  drivers/net/mlx4: Adjust constant
  drivers/net: Move a dereference below a NULL test
  drivers/net: Move a dereference below a NULL test
  connector: maintainer/mail update.
  USB host CDC Phonet network interface driver
  macsonic, jazzsonic: fix oops on module unload
  macsonic: move probe function to .devinit.text
  can: switch carrier on if device was stopped while in bus-off state
  can: restart device even if dev_alloc_skb() fails
  can: sja1000: remove duplicated includes
  New device ID for sc92031 [1088:2031]
  3c589_cs: re-initialize the multicast in the tc589_reset
  Fix error return for setsockopt(SO_TIMESTAMPING)
  netxen: fix thermal check and shutdown
  netxen: fix deadlock on dev close
  netxen: fix context deletion sequence
  net: Micrel KS8851 SPI network driver
  tcp: Use correct peer adr when copying MD5 keys
  tcp: Fix MD5 signature checking on IPv4 mapped sockets
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Andreas Koensgen's email address</title>
<updated>2009-07-17T17:07:12+00:00</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2009-07-17T04:47:19+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=673325951ef440ebace311bd542a9378d1b3025b'/>
<id>673325951ef440ebace311bd542a9378d1b3025b</id>
<content type='text'>
The kernel has used a stale email address of Andreas for a few years.

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&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 kernel has used a stale email address of Andreas for a few years.

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines."</title>
<updated>2009-07-14T20:13:41+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-07-14T20:13:41+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=252aa9d94a04252046f3a382e6aca1b5c95921d8'/>
<id>252aa9d94a04252046f3a382e6aca1b5c95921d8</id>
<content type='text'>
This reverts commit adeab1afb7de89555c69aab5ca21300c14af6369.

As Alan Cox explained, the TTY layer changes that went recently
to get rid of the tty-&gt;low_latency stuff fixes this already,
and even for -stable it's the -&gt;low_latency changes that should
go in to fix this, rather than this patch.

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 reverts commit adeab1afb7de89555c69aab5ca21300c14af6369.

As Alan Cox explained, the TTY layer changes that went recently
to get rid of the tty-&gt;low_latency stuff fixes this already,
and even for -stable it's the -&gt;low_latency changes that should
go in to fix this, rather than this patch.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines.</title>
<updated>2009-07-13T04:09:20+00:00</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2009-07-13T04:09:20+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus-rt.git/commit/?id=adeab1afb7de89555c69aab5ca21300c14af6369'/>
<id>adeab1afb7de89555c69aab5ca21300c14af6369</id>
<content type='text'>
Guido Trentalancia reports:

I am trying to use the kiss driver in the Linux kernel that is being
shipped with Fedora 10 but unfortunately I get the following oops:

mkiss: AX.25 Multikiss, Hans Albas PE1AYX
mkiss: ax0: crc mode is auto.
ADDRCONF(NETDEV_CHANGE): ax0: link becomes ready
------------[ cut here ]------------
WARNING: at kernel/softirq.c:77 __local_bh_disable+0x2f/0x83() (Not
tainted)
[...]
unloaded: microcode]
Pid: 0, comm: swapper Not tainted 2.6.27.25-170.2.72.fc10.i686 #1
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;c043255b&gt;] __local_bh_disable+0x2f/0x83
 [&lt;c04325ba&gt;] local_bh_disable+0xb/0xd
 [&lt;c06ab4e2&gt;] _spin_lock_bh+0xb/0x16
 [&lt;f8b6f600&gt;] mkiss_receive_buf+0x2fb/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
------------[ cut here ]------------
WARNING: at kernel/softirq.c:136 _local_bh_enable_ip+0x3d/0xc4()
[...]
Pid: 0, comm: swapper Tainted: G        W 2.6.27.25-170.2.72.fc10.i686
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;f8b6f642&gt;] ? mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c04325f9&gt;] _local_bh_enable_ip+0x3d/0xc4
 [&lt;c0432688&gt;] local_bh_enable_ip+0x8/0xa
 [&lt;c06ab54d&gt;] _spin_unlock_bh+0x11/0x13
 [&lt;f8b6f642&gt;] mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
mkiss: ax0: Trying crc-smack
mkiss: ax0: Trying crc-flexnet

The issue was, that the locking code in mkiss was assuming it was only
ever being called in process or bh context.  Fixed by converting the
involved locking code to use irq-safe locks.

Review of other networking line disciplines shows that 6pack, both sync
and async PPP and STRIP have similar issues.  The ppp_async one is the
most interesting one as it sorts out half of the issue as far back as
2004 in commit http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=2996d8deaeddd01820691a872550dc0cfba0c37d

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Reported-by: Guido Trentalancia &lt;guido@trentalancia.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>
Guido Trentalancia reports:

I am trying to use the kiss driver in the Linux kernel that is being
shipped with Fedora 10 but unfortunately I get the following oops:

mkiss: AX.25 Multikiss, Hans Albas PE1AYX
mkiss: ax0: crc mode is auto.
ADDRCONF(NETDEV_CHANGE): ax0: link becomes ready
------------[ cut here ]------------
WARNING: at kernel/softirq.c:77 __local_bh_disable+0x2f/0x83() (Not
tainted)
[...]
unloaded: microcode]
Pid: 0, comm: swapper Not tainted 2.6.27.25-170.2.72.fc10.i686 #1
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;c043255b&gt;] __local_bh_disable+0x2f/0x83
 [&lt;c04325ba&gt;] local_bh_disable+0xb/0xd
 [&lt;c06ab4e2&gt;] _spin_lock_bh+0xb/0x16
 [&lt;f8b6f600&gt;] mkiss_receive_buf+0x2fb/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
------------[ cut here ]------------
WARNING: at kernel/softirq.c:136 _local_bh_enable_ip+0x3d/0xc4()
[...]
Pid: 0, comm: swapper Tainted: G        W 2.6.27.25-170.2.72.fc10.i686
 [&lt;c042ddfb&gt;] warn_on_slowpath+0x65/0x8b
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c04228b4&gt;] ? __enqueue_entity+0xe3/0xeb
 [&lt;c042431e&gt;] ? enqueue_entity+0x203/0x20b
 [&lt;c0424361&gt;] ? enqueue_task_fair+0x3b/0x3f
 [&lt;c041f88c&gt;] ? resched_task+0x3a/0x6e
 [&lt;c06ab62b&gt;] ? _spin_unlock_irqrestore+0x22/0x38
 [&lt;c06ab4e2&gt;] ? _spin_lock_bh+0xb/0x16
 [&lt;f8b6f642&gt;] ? mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c04325f9&gt;] _local_bh_enable_ip+0x3d/0xc4
 [&lt;c0432688&gt;] local_bh_enable_ip+0x8/0xa
 [&lt;c06ab54d&gt;] _spin_unlock_bh+0x11/0x13
 [&lt;f8b6f642&gt;] mkiss_receive_buf+0x33d/0x3a6 [mkiss]
 [&lt;c0572a30&gt;] flush_to_ldisc+0xf7/0x198
 [&lt;c0572b12&gt;] tty_flip_buffer_push+0x41/0x51
 [&lt;f89477f2&gt;] ftdi_process_read+0x375/0x4ad [ftdi_sio]
 [&lt;f8947a5a&gt;] ftdi_read_bulk_callback+0x130/0x138 [ftdi_sio]
 [&lt;c05d4bec&gt;] usb_hcd_giveback_urb+0x63/0x93
 [&lt;c05ea290&gt;] uhci_giveback_urb+0xe5/0x15f
 [&lt;c05eaabf&gt;] uhci_scan_schedule+0x52e/0x767
 [&lt;c05f6288&gt;] ? psmouse_handle_byte+0xc/0xe5
 [&lt;c054df78&gt;] ? acpi_ev_gpe_detect+0xd6/0xe1
 [&lt;c05ec5b0&gt;] uhci_irq+0x110/0x125
 [&lt;c05d4834&gt;] usb_hcd_irq+0x40/0xa3
 [&lt;c0465313&gt;] handle_IRQ_event+0x2f/0x64
 [&lt;c046642b&gt;] handle_level_irq+0x74/0xbe
 [&lt;c04663b7&gt;] ? handle_level_irq+0x0/0xbe
 [&lt;c0406e6e&gt;] do_IRQ+0xc7/0xfe
 [&lt;c0405668&gt;] common_interrupt+0x28/0x30
 [&lt;c056821a&gt;] ? acpi_idle_enter_simple+0x162/0x19d
 [&lt;c0617f52&gt;] cpuidle_idle_call+0x60/0x92
 [&lt;c0403c61&gt;] cpu_idle+0x101/0x134
 [&lt;c069b1ba&gt;] rest_init+0x4e/0x50
 =======================
---[ end trace b7cc8076093467ad ]---
mkiss: ax0: Trying crc-smack
mkiss: ax0: Trying crc-flexnet

The issue was, that the locking code in mkiss was assuming it was only
ever being called in process or bh context.  Fixed by converting the
involved locking code to use irq-safe locks.

Review of other networking line disciplines shows that 6pack, both sync
and async PPP and STRIP have similar issues.  The ppp_async one is the
most interesting one as it sorts out half of the issue as far back as
2004 in commit http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=2996d8deaeddd01820691a872550dc0cfba0c37d

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Reported-by: Guido Trentalancia &lt;guido@trentalancia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
