<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/arch/um/drivers, branch linux-2.6.36.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>uml: disable winch irq before freeing handler data</title>
<updated>2010-12-09T21:33:16+00:00</updated>
<author>
<name>Will Newton</name>
<email>will.newton@gmail.com</email>
</author>
<published>2010-11-24T20:56:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4d88db53a9977e16cfa9b7315893401ff6eac7ee'/>
<id>4d88db53a9977e16cfa9b7315893401ff6eac7ee</id>
<content type='text'>
commit 69e83dad5207f8f03c9699e57e1febb114383cb8 upstream.

Disable the winch irq early to make sure we don't take an interrupt part
way through the freeing of the handler data, resulting in a crash on
shutdown:

  winch_interrupt : read failed, errno = 9
  fd 13 is losing SIGWINCH support
  ------------[ cut here ]------------
  WARNING: at lib/list_debug.c:48 list_del+0xc6/0x100()
  list_del corruption, next is LIST_POISON1 (00100100)
  082578c8:  [&lt;081fd77f&gt;] dump_stack+0x22/0x24
  082578e0:  [&lt;0807a18a&gt;] warn_slowpath_common+0x5a/0x80
  08257908:  [&lt;0807a23e&gt;] warn_slowpath_fmt+0x2e/0x30
  08257920:  [&lt;08172196&gt;] list_del+0xc6/0x100
  08257940:  [&lt;08060244&gt;] free_winch+0x14/0x80
  08257958:  [&lt;080606fb&gt;] winch_interrupt+0xdb/0xe0
  08257978:  [&lt;080a65b5&gt;] handle_IRQ_event+0x35/0xe0
  08257998:  [&lt;080a8717&gt;] handle_edge_irq+0xb7/0x170
  082579bc:  [&lt;08059bc4&gt;] do_IRQ+0x34/0x50
  082579d4:  [&lt;08059e1b&gt;] sigio_handler+0x5b/0x80
  082579ec:  [&lt;0806a374&gt;] sig_handler_common+0x44/0xb0
  08257a68:  [&lt;0806a538&gt;] sig_handler+0x38/0x50
  08257a78:  [&lt;0806a77c&gt;] handle_signal+0x5c/0xa0
  08257a9c:  [&lt;0806be28&gt;] hard_handler+0x18/0x20
  08257aac:  [&lt;00c14400&gt;] 0xc14400

Signed-off-by: Will Newton &lt;will.newton@gmail.com&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&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>
commit 69e83dad5207f8f03c9699e57e1febb114383cb8 upstream.

Disable the winch irq early to make sure we don't take an interrupt part
way through the freeing of the handler data, resulting in a crash on
shutdown:

  winch_interrupt : read failed, errno = 9
  fd 13 is losing SIGWINCH support
  ------------[ cut here ]------------
  WARNING: at lib/list_debug.c:48 list_del+0xc6/0x100()
  list_del corruption, next is LIST_POISON1 (00100100)
  082578c8:  [&lt;081fd77f&gt;] dump_stack+0x22/0x24
  082578e0:  [&lt;0807a18a&gt;] warn_slowpath_common+0x5a/0x80
  08257908:  [&lt;0807a23e&gt;] warn_slowpath_fmt+0x2e/0x30
  08257920:  [&lt;08172196&gt;] list_del+0xc6/0x100
  08257940:  [&lt;08060244&gt;] free_winch+0x14/0x80
  08257958:  [&lt;080606fb&gt;] winch_interrupt+0xdb/0xe0
  08257978:  [&lt;080a65b5&gt;] handle_IRQ_event+0x35/0xe0
  08257998:  [&lt;080a8717&gt;] handle_edge_irq+0xb7/0x170
  082579bc:  [&lt;08059bc4&gt;] do_IRQ+0x34/0x50
  082579d4:  [&lt;08059e1b&gt;] sigio_handler+0x5b/0x80
  082579ec:  [&lt;0806a374&gt;] sig_handler_common+0x44/0xb0
  08257a68:  [&lt;0806a538&gt;] sig_handler+0x38/0x50
  08257a78:  [&lt;0806a77c&gt;] handle_signal+0x5c/0xa0
  08257a9c:  [&lt;0806be28&gt;] hard_handler+0x18/0x20
  08257aac:  [&lt;00c14400&gt;] 0xc14400

Signed-off-by: Will Newton &lt;will.newton@gmail.com&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>uml: fix build</title>
<updated>2010-10-15T21:42:24+00:00</updated>
<author>
<name>FUJITA Tomonori</name>
<email>fujita.tomonori@lab.ntt.co.jp</email>
</author>
<published>2010-10-15T21:34:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e3c6cf61815b0af0c697aeed4c6f11762f913002'/>
<id>e3c6cf61815b0af0c697aeed4c6f11762f913002</id>
<content type='text'>
Fix a build error introduced by d6d1b650ae6acce73d55dd024 ("param: simple
locking for sysfs-writable charp parameters").

    CC      arch/um/kernel/trap.o
  arch/um/drivers/hostaudio_kern.c: In function 'hostaudio_open':
  arch/um/drivers/hostaudio_kern.c:204: error: '__param_dsp' undeclared (first use in this function)
  arch/um/drivers/hostaudio_kern.c:204: error: (Each undeclared identifier is reported only once
  arch/um/drivers/hostaudio_kern.c:204: error: for each function it appears in.)
  arch/um/drivers/hostaudio_kern.c: In function 'hostmixer_open_mixdev':
  arch/um/drivers/hostaudio_kern.c:265: error: '__param_mixer' undeclared (first use in this function)
  arch/um/drivers/hostaudio_kern.c:272: error: '__param_dsp' undeclared (first use in this function)

Reported-by: Toralf Förster &lt;toralf.foerster@gmx.de&gt;
Tested-by: Toralf Förster &lt;toralf.foerster@gmx.de&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Takashi Iwai &lt;tiwai@suse.de&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix a build error introduced by d6d1b650ae6acce73d55dd024 ("param: simple
locking for sysfs-writable charp parameters").

    CC      arch/um/kernel/trap.o
  arch/um/drivers/hostaudio_kern.c: In function 'hostaudio_open':
  arch/um/drivers/hostaudio_kern.c:204: error: '__param_dsp' undeclared (first use in this function)
  arch/um/drivers/hostaudio_kern.c:204: error: (Each undeclared identifier is reported only once
  arch/um/drivers/hostaudio_kern.c:204: error: for each function it appears in.)
  arch/um/drivers/hostaudio_kern.c: In function 'hostmixer_open_mixdev':
  arch/um/drivers/hostaudio_kern.c:265: error: '__param_mixer' undeclared (first use in this function)
  arch/um/drivers/hostaudio_kern.c:272: error: '__param_dsp' undeclared (first use in this function)

Reported-by: Toralf Förster &lt;toralf.foerster@gmx.de&gt;
Tested-by: Toralf Förster &lt;toralf.foerster@gmx.de&gt;
Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Takashi Iwai &lt;tiwai@suse.de&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ubd: fix incorrect sector handling during request restart</title>
<updated>2010-10-15T10:56:21+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-10-15T10:56:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=47526903feb52f4c26a6350370bdf74e337fcdb1'/>
<id>47526903feb52f4c26a6350370bdf74e337fcdb1</id>
<content type='text'>
Commit f81f2f7c (ubd: drop unnecessary rq-&gt;sector manipulation)
dropped request-&gt;sector manipulation in preparation for global request
handling cleanup; unfortunately, it incorrectly assumed that the
updated sector wasn't being used.

ubd tries to issue as many requests as possible to io_thread.  When
issuing fails due to memory pressure or other reasons, the device is
put on the restart list and issuing stops.  On IO completion, devices
on the restart list are scanned and IO issuing is restarted.

ubd issues IOs sg-by-sg and issuing can be stopped in the middle of a
request, so each device on the restart queue needs to remember where
to restart in its current request.  ubd needs to keep track of the
issue position itself because,

* blk_rq_pos(req) is now updated by the block layer to keep track of
  _completion_ position.

* Multiple io_req's for the current request may be in flight, so it's
  difficult to tell where blk_rq_pos(req) currently is.

Add ubd-&gt;rq_pos to keep track of the issue position and use it to
correctly restart io_req issue.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Richard Weinberger &lt;richard@nod.at&gt;
Tested-by: Richard Weinberger &lt;richard@nod.at&gt;
Tested-by: Chris Frey &lt;cdfrey@foursquare.net&gt;
Cc: stable@kernel.org
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit f81f2f7c (ubd: drop unnecessary rq-&gt;sector manipulation)
dropped request-&gt;sector manipulation in preparation for global request
handling cleanup; unfortunately, it incorrectly assumed that the
updated sector wasn't being used.

ubd tries to issue as many requests as possible to io_thread.  When
issuing fails due to memory pressure or other reasons, the device is
put on the restart list and issuing stops.  On IO completion, devices
on the restart list are scanned and IO issuing is restarted.

ubd issues IOs sg-by-sg and issuing can be stopped in the middle of a
request, so each device on the restart queue needs to remember where
to restart in its current request.  ubd needs to keep track of the
issue position itself because,

* blk_rq_pos(req) is now updated by the block layer to keep track of
  _completion_ position.

* Multiple io_req's for the current request may be in flight, so it's
  difficult to tell where blk_rq_pos(req) currently is.

Add ubd-&gt;rq_pos to keep track of the issue position and use it to
correctly restart io_req issue.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Reported-by: Richard Weinberger &lt;richard@nod.at&gt;
Tested-by: Richard Weinberger &lt;richard@nod.at&gt;
Tested-by: Chris Frey &lt;cdfrey@foursquare.net&gt;
Cc: stable@kernel.org
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>um: Proper Fix for f25c80a4: remove duplicate structure field initialization</title>
<updated>2010-09-30T02:30:11+00:00</updated>
<author>
<name>Boaz Harrosh</name>
<email>bharrosh@panasas.com</email>
</author>
<published>2010-09-29T08:34:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9337057d4335053dc14934a60d9c3e8fe4e32039'/>
<id>9337057d4335053dc14934a60d9c3e8fe4e32039</id>
<content type='text'>
uml_net_set_mac() was broken and luckily it was never used, before.
What it was trying to do is spin_lock before memcopy the mac address.
Linus attempted to fix it in assumption that someone decided the
lock was needed. But since it was never ever used at all, and was
just dead code, I think we can assume that it is not needed, after
all.

On the other hand patch [f25c80a4] was trying to use eth_mac_addr()
in eth_configure(), *which was the real fallout*. Because of state
checks done inside eth_mac_addr() the address was never set. I have
not reintroduced the memcpy wrapper, but I've put a comment for future
cats.

The code now is back to exactly as it was before [f25c80a4]. With
the cleanup applied. If the spin_lock is indeed needed then a contender
should supply a test case that fails, then fix it with the proper
locking, as a separate unrelated patch.

CC: Julia Lawall &lt;julia@diku.dk&gt;
CC: David S. Miller &lt;davem@davemloft.net&gt;
CC: Andrew Morton &lt;akpm@linux-foundation.org&gt;
CC: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;
Tested-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.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>
uml_net_set_mac() was broken and luckily it was never used, before.
What it was trying to do is spin_lock before memcopy the mac address.
Linus attempted to fix it in assumption that someone decided the
lock was needed. But since it was never ever used at all, and was
just dead code, I think we can assume that it is not needed, after
all.

On the other hand patch [f25c80a4] was trying to use eth_mac_addr()
in eth_configure(), *which was the real fallout*. Because of state
checks done inside eth_mac_addr() the address was never set. I have
not reintroduced the memcpy wrapper, but I've put a comment for future
cats.

The code now is back to exactly as it was before [f25c80a4]. With
the cleanup applied. If the spin_lock is indeed needed then a contender
should supply a test case that fails, then fix it with the proper
locking, as a separate unrelated patch.

CC: Julia Lawall &lt;julia@diku.dk&gt;
CC: David S. Miller &lt;davem@davemloft.net&gt;
CC: Andrew Morton &lt;akpm@linux-foundation.org&gt;
CC: Al Viro &lt;viro@ZenIV.linux.org.uk&gt;
Tested-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Signed-off-by: Boaz Harrosh &lt;bharrosh@panasas.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Input: sysrq - drop tty argument form handle_sysrq()</title>
<updated>2010-08-21T07:34:45+00:00</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2010-08-18T04:15:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f335397d177c906256ee1bba28e8c49e8ec63817'/>
<id>f335397d177c906256ee1bba28e8c49e8ec63817</id>
<content type='text'>
Sysrq operations do not accept tty argument anymore so no need to pass
it to us.

[Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;: fix build breakage in drm code
 caused by sysrq using bool but not including linux/types.h]

[Sachin Sant &lt;sachinp@in.ibm.com&gt;: fix build breakage in s390 keyboadr
 driver]

Acked-by: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Acked-by: Jason Wessel &lt;jason.wessel@windriver.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sysrq operations do not accept tty argument anymore so no need to pass
it to us.

[Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;: fix build breakage in drm code
 caused by sysrq using bool but not including linux/types.h]

[Sachin Sant &lt;sachinp@in.ibm.com&gt;: fix build breakage in s390 keyboadr
 driver]

Acked-by: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Acked-by: Jason Wessel &lt;jason.wessel@windriver.com&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Dmitry Torokhov &lt;dtor@mail.ru&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>param: simple locking for sysfs-writable charp parameters</title>
<updated>2010-08-11T13:34:31+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2010-08-12T05:04:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d6d1b650ae6acce73d55dd0246de22180303ae73'/>
<id>d6d1b650ae6acce73d55dd0246de22180303ae73</id>
<content type='text'>
Since the writing to sysfs can free the old one, we need to block that
when we access the charp variables.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Tested-by: Phil Carmody &lt;ext-phil.2.carmody@nokia.com&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Dan Williams &lt;dcbw@redhat.com&gt;
Cc: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Jing Huang &lt;huangj@brocade.com&gt;
Cc: James E.J. Bottomley &lt;James.Bottomley@suse.de&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-usb@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the writing to sysfs can free the old one, we need to block that
when we access the charp variables.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Tested-by: Phil Carmody &lt;ext-phil.2.carmody@nokia.com&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Cc: Dan Williams &lt;dcbw@redhat.com&gt;
Cc: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Jing Huang &lt;huangj@brocade.com&gt;
Cc: James E.J. Bottomley &lt;James.Bottomley@suse.de&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Cc: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-usb@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block</title>
<updated>2010-08-10T22:22:42+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-08-10T22:22:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2f9e825d3e0e2b407ae8f082de5c00afcf7378fb'/>
<id>2f9e825d3e0e2b407ae8f082de5c00afcf7378fb</id>
<content type='text'>
* 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block: (149 commits)
  block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n
  xen-blkfront: fix missing out label
  blkdev: fix blkdev_issue_zeroout return value
  block: update request stacking methods to support discards
  block: fix missing export of blk_types.h
  writeback: fix bad _bh spinlock nesting
  drbd: revert "delay probes", feature is being re-implemented differently
  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]
  drbd: Disable delay probes for the upcomming release
  writeback: cleanup bdi_register
  writeback: add new tracepoints
  writeback: remove unnecessary init_timer call
  writeback: optimize periodic bdi thread wakeups
  writeback: prevent unnecessary bdi threads wakeups
  writeback: move bdi threads exiting logic to the forker thread
  writeback: restructure bdi forker loop a little
  writeback: move last_active to bdi
  writeback: do not remove bdi from bdi_list
  writeback: simplify bdi code a little
  writeback: do not lose wake-ups in bdi threads
  ...

Fixed up pretty trivial conflicts in drivers/block/virtio_blk.c and
drivers/scsi/scsi_error.c as per Jens.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block: (149 commits)
  block: make sure that REQ_* types are seen even with CONFIG_BLOCK=n
  xen-blkfront: fix missing out label
  blkdev: fix blkdev_issue_zeroout return value
  block: update request stacking methods to support discards
  block: fix missing export of blk_types.h
  writeback: fix bad _bh spinlock nesting
  drbd: revert "delay probes", feature is being re-implemented differently
  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]
  drbd: Disable delay probes for the upcomming release
  writeback: cleanup bdi_register
  writeback: add new tracepoints
  writeback: remove unnecessary init_timer call
  writeback: optimize periodic bdi thread wakeups
  writeback: prevent unnecessary bdi threads wakeups
  writeback: move bdi threads exiting logic to the forker thread
  writeback: restructure bdi forker loop a little
  writeback: move last_active to bdi
  writeback: do not remove bdi from bdi_list
  writeback: simplify bdi code a little
  writeback: do not lose wake-ups in bdi threads
  ...

Fixed up pretty trivial conflicts in drivers/block/virtio_blk.c and
drivers/scsi/scsi_error.c as per Jens.
</pre>
</div>
</content>
</entry>
<entry>
<title>um: call free_irq() only on enabled channels</title>
<updated>2010-08-10T03:45:04+00:00</updated>
<author>
<name>Richard Weinberger</name>
<email>richard@nod.at</email>
</author>
<published>2010-08-10T00:20:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=47562277348da533f120acf2b0d4ff82a9444a1f'/>
<id>47562277348da533f120acf2b0d4ff82a9444a1f</id>
<content type='text'>
When I use OpenSUSE-11.2 on UML (&gt; 2.6.25)
I get lots of such errors:

Registering fd 1 twice
Irqs : 3, 3
Ids : 0x09cb41a0, 0x09cb4120
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:896 __free_irq+0x79/0x11a()
Trying to free already-free IRQ 3
Modules linked in:
09dadc6c:  [&lt;081b2edb&gt;] dump_stack+0x1c/0x20
09dadc84:  [&lt;080716da&gt;] warn_slowpath_common+0x49/0x77
09dadc9c:  [&lt;08071772&gt;] warn_slowpath_fmt+0x26/0x2a
09dadcb4:  [&lt;08094e08&gt;] __free_irq+0x79/0x11a
09dadce4:  [&lt;08094ed6&gt;] free_irq+0x2d/0x49
09dadcf4:  [&lt;0805b4bc&gt;] close_one_chan+0x70/0x9c
09dadd0c:  [&lt;0805b833&gt;] close_chan+0x17/0x22
09dadd1c:  [&lt;0805bdda&gt;] enable_chan+0x70/0x7c
09dadd3c:  [&lt;0805cbb7&gt;] line_open+0x34/0x9f
09dadd54:  [&lt;0805b21e&gt;] con_open+0x13/0x35
09dadd6c:  [&lt;0814dc89&gt;] tty_open+0x285/0x384
09dadda0:  [&lt;080b754e&gt;] chrdev_open+0xe0/0xf9
09daddc0:  [&lt;080b3fb2&gt;] __dentry_open+0xf3/0x1e2
09dadde4:  [&lt;080b4142&gt;] nameidata_to_filp+0x35/0x49
09daddfc:  [&lt;080bd270&gt;] do_last+0x409/0x50e
09dade28:  [&lt;080bea04&gt;] do_filp_open+0x175/0x446
09dadecc:  [&lt;080b3d89&gt;] do_sys_open+0x4a/0x128
09dadf04:  [&lt;080b3ea2&gt;] sys_open+0x19/0x21
09dadf28:  [&lt;0805ab5a&gt;] handle_syscall+0x7a/0x98
09dadf78:  [&lt;08068441&gt;] userspace+0x2c9/0x370
09dadfe0:  [&lt;08058bb3&gt;] fork_handler+0x53/0x5b
09dadffc:  [&lt;00766564&gt;] 0x766564

---[ end trace 9ebc1094aaf4bded ]---

This patch fixes the issue.

Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When I use OpenSUSE-11.2 on UML (&gt; 2.6.25)
I get lots of such errors:

Registering fd 1 twice
Irqs : 3, 3
Ids : 0x09cb41a0, 0x09cb4120
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:896 __free_irq+0x79/0x11a()
Trying to free already-free IRQ 3
Modules linked in:
09dadc6c:  [&lt;081b2edb&gt;] dump_stack+0x1c/0x20
09dadc84:  [&lt;080716da&gt;] warn_slowpath_common+0x49/0x77
09dadc9c:  [&lt;08071772&gt;] warn_slowpath_fmt+0x26/0x2a
09dadcb4:  [&lt;08094e08&gt;] __free_irq+0x79/0x11a
09dadce4:  [&lt;08094ed6&gt;] free_irq+0x2d/0x49
09dadcf4:  [&lt;0805b4bc&gt;] close_one_chan+0x70/0x9c
09dadd0c:  [&lt;0805b833&gt;] close_chan+0x17/0x22
09dadd1c:  [&lt;0805bdda&gt;] enable_chan+0x70/0x7c
09dadd3c:  [&lt;0805cbb7&gt;] line_open+0x34/0x9f
09dadd54:  [&lt;0805b21e&gt;] con_open+0x13/0x35
09dadd6c:  [&lt;0814dc89&gt;] tty_open+0x285/0x384
09dadda0:  [&lt;080b754e&gt;] chrdev_open+0xe0/0xf9
09daddc0:  [&lt;080b3fb2&gt;] __dentry_open+0xf3/0x1e2
09dadde4:  [&lt;080b4142&gt;] nameidata_to_filp+0x35/0x49
09daddfc:  [&lt;080bd270&gt;] do_last+0x409/0x50e
09dade28:  [&lt;080bea04&gt;] do_filp_open+0x175/0x446
09dadecc:  [&lt;080b3d89&gt;] do_sys_open+0x4a/0x128
09dadf04:  [&lt;080b3ea2&gt;] sys_open+0x19/0x21
09dadf28:  [&lt;0805ab5a&gt;] handle_syscall+0x7a/0x98
09dadf78:  [&lt;08068441&gt;] userspace+0x2c9/0x370
09dadfe0:  [&lt;08058bb3&gt;] fork_handler+0x53/0x5b
09dadffc:  [&lt;00766564&gt;] 0x766564

---[ end trace 9ebc1094aaf4bded ]---

This patch fixes the issue.

Signed-off-by: Richard Weinberger &lt;richard@nod.at&gt;
Cc: Jeff Dike &lt;jdike@addtoit.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6</title>
<updated>2010-08-08T00:07:31+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-08-08T00:07:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=faa38b5e0e092914764cdba9f83d31a3f794d182'/>
<id>faa38b5e0e092914764cdba9f83d31a3f794d182</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)
  ALSA: hda - Add pin-fix for HP dc5750
  ALSA: als4000: Fix potentially invalid DMA mode setup
  ALSA: als4000: enable burst mode
  ALSA: hda - Fix initial capsrc selection in patch_alc269()
  ASoC: TWL4030: Capture route runtime DAPM ordering fix
  ALSA: hda - Add PC-beep whitelist for an Intel board
  ALSA: hda - More relax for pending period handling
  ALSA: hda - Define AC_FMT_* constants
  ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs
  ALSA: hda - Add support for HDMI HBR passthrough
  ALSA: hda - Set Stream Type in Stream Format according to AES0
  ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed
  ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF
  ASoC: wm9081: fix resource reclaim in wm9081_register error path
  ASoC: wm8978: fix a memory leak if a wm8978_register fail
  ASoC: wm8974: fix a memory leak if another WM8974 is registered
  ASoC: wm8961: fix resource reclaim in wm8961_register error path
  ASoC: wm8955: fix resource reclaim in wm8955_register error path
  ASoC: wm8940: fix a memory leak if wm8940_register return error
  ASoC: wm8904: fix resource reclaim in wm8904_register error path
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)
  ALSA: hda - Add pin-fix for HP dc5750
  ALSA: als4000: Fix potentially invalid DMA mode setup
  ALSA: als4000: enable burst mode
  ALSA: hda - Fix initial capsrc selection in patch_alc269()
  ASoC: TWL4030: Capture route runtime DAPM ordering fix
  ALSA: hda - Add PC-beep whitelist for an Intel board
  ALSA: hda - More relax for pending period handling
  ALSA: hda - Define AC_FMT_* constants
  ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs
  ALSA: hda - Add support for HDMI HBR passthrough
  ALSA: hda - Set Stream Type in Stream Format according to AES0
  ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed
  ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF
  ASoC: wm9081: fix resource reclaim in wm9081_register error path
  ASoC: wm8978: fix a memory leak if a wm8978_register fail
  ASoC: wm8974: fix a memory leak if another WM8974 is registered
  ASoC: wm8961: fix resource reclaim in wm8961_register error path
  ASoC: wm8955: fix resource reclaim in wm8955_register error path
  ASoC: wm8940: fix a memory leak if wm8940_register return error
  ASoC: wm8904: fix resource reclaim in wm8904_register error path
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>block: push down BKL into .open and .release</title>
<updated>2010-08-07T16:25:34+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2010-08-07T16:25:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6e9624b8caec290d28b4c6d9ec75749df6372b87'/>
<id>6e9624b8caec290d28b4c6d9ec75749df6372b87</id>
<content type='text'>
The open and release block_device_operations are currently
called with the BKL held. In order to change that, we must
first make sure that all drivers that currently rely
on this have no regressions.

This blindly pushes the BKL into all .open and .release
operations for all block drivers to prepare for the
next step. The drivers can subsequently replace the BKL
with their own locks or remove it completely when it can
be shown that it is not needed.

The functions blkdev_get and blkdev_put are the only
remaining users of the big kernel lock in the block
layer, besides a few uses in the ioctl code, none
of which need to serialize with blkdev_{get,put}.

Most of these two functions is also under the protection
of bdev-&gt;bd_mutex, including the actual calls to
-&gt;open and -&gt;release, and the common code does not
access any global data structures that need the BKL.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The open and release block_device_operations are currently
called with the BKL held. In order to change that, we must
first make sure that all drivers that currently rely
on this have no regressions.

This blindly pushes the BKL into all .open and .release
operations for all block drivers to prepare for the
next step. The drivers can subsequently replace the BKL
with their own locks or remove it completely when it can
be shown that it is not needed.

The functions blkdev_get and blkdev_put are the only
remaining users of the big kernel lock in the block
layer, besides a few uses in the ioctl code, none
of which need to serialize with blkdev_{get,put}.

Most of these two functions is also under the protection
of bdev-&gt;bd_mutex, including the actual calls to
-&gt;open and -&gt;release, and the common code does not
access any global data structures that need the BKL.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Christoph Hellwig &lt;hch@infradead.org&gt;
Signed-off-by: Jens Axboe &lt;jaxboe@fusionio.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
