Wim Van Sebroeck [Mon, 29 Dec 2003 04:13:21 +0000 (20:13 -0800)]
[PATCH] Watchdog update
Kconfig:
Reflect new watchdog Documentation directory.
[USB] hid blacklist addition:
Add the Berkshire Products USB PC Watchdog to the hid blacklist.
This to avoid problems with USB-Disconnects when the card feels it
should reboot...
Ingo Molnar [Mon, 29 Dec 2003 02:23:53 +0000 (18:23 -0800)]
[PATCH] Fix context switch accounting
Noted by Nick Piggin, fix based on a patch by Linus.
I've done some additional cleanups: fixed a compilation warning on UP
and cleaned up the goto pick_next_task code. Moved the 'unlikely' to
the test as a whole.
I've tested this patch and the context-switch stats look OK.
Dmitry Torokhov [Thu, 18 Dec 2003 13:35:52 +0000 (05:35 -0800)]
[PATCH] Input: remove synaptics config option
Remove Synaptics config option. Since mousedev was fixed with regard to
touchpads generating absolute events there should no troubles for users
migrating from older kernel or different hardware so we can have it always
compiled in.
Dmitry Torokhov [Thu, 18 Dec 2003 13:35:36 +0000 (05:35 -0800)]
[PATCH] Input: add serio_[un]register_port_delayed to fix deadlock
Add serio_[un]register_port_delayed to allow delayed execution of
register/unregister code (via kseriod) when it is not clear whether
serio_sem has been taken or not. Use in i8042.c to avoid deadlock
Dmitry Torokhov [Thu, 18 Dec 2003 13:35:20 +0000 (05:35 -0800)]
[PATCH] Input: psmouse fixes
- Remove psmouse_pm_callback since i8042 now has its own resume
handler which will issue reconnect request
- Do not close/open serio port in psmouse_reconnect since i8042
should restore ports to the proper state before calling reconnect
Dmitry Torokhov [Thu, 18 Dec 2003 13:34:47 +0000 (05:34 -0800)]
[PATCH] Input: implement resume methods
- Implement resume methods using serio_reconnect facility
- Register i8042 with sysfs
- Register i8042 with older PM scheme to restore keyboard
and mouse for APM users
- Convert parameter handling to the new style
- Unregister port not only when there is no free IRQ but
also if the port fails to activate.
Dmitry Torokhov [Thu, 18 Dec 2003 13:34:30 +0000 (05:34 -0800)]
[PATCH] Input: add psmouse_proto parameter
New parameter psmouse_proto to replace psmouse_noext. Allows to specify
highest PS/2 protocol extension that kernel has permission to negotiate
(bare|imps|exps). psmouse_noext marked as deprecated and emits a warning
when used. parameter parsing converted to the new scheme.
Vojtech Pavlik [Thu, 18 Dec 2003 13:33:58 +0000 (05:33 -0800)]
[PATCH] Fixes for keyboard 2.4 compatibility
I have two patches I'd like to get tested by a wider audience before
sending them to Linus for the 2.6 tree.
The first one fixes an issue in current 2.6-test with AT keyboard repeat
rate setting, the second one makes setkeycodes/getkeycodes work the same
as 2.4, so that people can keep their setups. It also fixes japanese and
korean key handling.
I just want to share a little change that I've did to psmouse_pm_callback()
which without this, my synaptics touchpad would prevent my laptop (IBM
Thinkpad T30) from suspending.
Dmitry Torokhov [Thu, 18 Dec 2003 13:33:25 +0000 (05:33 -0800)]
[PATCH] Input: unregister i8042 port when writing to control register fails
I think that if we can't write to the control register it's not less critical
than not having a free IRQ so we better unregister port in this case as well.
Peter Osterlund [Thu, 18 Dec 2003 13:33:09 +0000 (05:33 -0800)]
[PATCH] synaptics powerpro fix
Made the packet checking code less strict, so that the driver works also for
touchpads that don't strictly follow the synaptics absolute protocol.
Problem reported by Anders Kaseorg using a PowerPro C 3:16 laptop.
Dmitry Torokhov [Thu, 18 Dec 2003 13:32:52 +0000 (05:32 -0800)]
[PATCH] Synaptics: use serio_reconnect
Input/Synaptics:
1. Support for pass-through port moved from Synaptics driver to psmouse
itself, it is cleaner and should allow using it in other drivers if
needed.
2. The driver makes use of new reconnect functionality in serio. It will
try to keep the same input device after resume or when it resets itself.
3. If mouse is disconnected or other mouse plugged in while sleeping the
driver should correctly recognize that and create a new serio/input
device.
Dmitry Torokhov [Thu, 18 Dec 2003 13:32:03 +0000 (05:32 -0800)]
[PATCH] Add black list to handler<->device matching
Input: Introduce an optional blacklist field in input_handler structure.
When loading a new device or a new handler try to match device
against handler's black list before doing match on required
attributes.
This allows to get rid of "surprises" in connect functions, IMO
connect should only fail when it physically can not connect, not
because it decides it does not like device.
Dmitry Torokhov [Thu, 18 Dec 2003 13:31:47 +0000 (05:31 -0800)]
[PATCH] serio: possible race between port removal and kseriod
Input: There is a possibility that serio might get deleted while there
are outstanding events involving that serio waiting for kseriod
to process them. Invalidate them so kseriod thread will just
drop dead events.
Jeff Garzik [Wed, 17 Dec 2003 12:35:44 +0000 (07:35 -0500)]
[libata promise] fix another ugly bug
For the SX4, only one Host DMA (local DIMM) engine is on the hardware,
while there is an ATA engine for each SATA port. This means that
Host DMA transactions must be queued. When previously fixing this problem
(the driver had previously assumed an HDMA engine per port), I stored
the HDMA packet queue in a per-port data structure.
This was incorrect: this patch changes it to correctly use a
per-host data structure, not a per-port structure.
Jes Sorensen [Wed, 17 Dec 2003 00:26:43 +0000 (16:26 -0800)]
[PATCH] qla1280 crash fix in error handling
This fixes a bug in the qla1280 driver where it would leave a pointer to
an on the stack completion event in a command structure if
qla1280_mailbox_command fails. The result is that the interrupt handler
later tries to complete() garbage on the stack. The mailbox command can
fail if a device on the bus decides to lock up etc.
Jens Axboe [Wed, 17 Dec 2003 00:12:29 +0000 (16:12 -0800)]
[PATCH] CDROM_SEND_PACKET bug
I just found Yet Another Bug in scsi_ioctl - CDROM_SEND_PACKET puts a
kernel pointer in hdr->cmdp, where sg_io() expects to find user address.
This worked up until recently because of the memcpy bug, but now it
doesn't because we do the proper copy_from_user().
This fix undoes the user copy code from sg_io, and instead makes the
SG_IO ioctl copy it locally. This makes SG_IO and CDROM_SEND_PACKET
agree on the calling convention, and everybody is happy.
I've tested that both
cdrecord -dev=/dev/hdc -inq
and
cdrecord -dev=ATAPI:/dev/hdc -inq
works now. The former will use SG_IO, the latter CDROM_SEND_PACKET (and
incidentally would work in both 2.4 and 2.6, if it wasn't for
CDROM_SEND_PACKET sucking badly in 2.4).
Jens Axboe [Mon, 15 Dec 2003 23:51:55 +0000 (15:51 -0800)]
[PATCH] Fix IDE bus reset and DMA disable when reading blank DVD-R
From Jon Burgess:
There is a problems with blank DVD media using the ide-cd driver.
When we attempt to read the blank disk, the drive responds to the read
request by returning a "blank media" error. The kernel doesn't have
any special case handling for this sense value and retries the request
a couple of times, then gives up and does a bus reset and disables DMA
to the device.
Which obviously doesn't help the situation.
The sense key value of 8 isn't listed in ide-cd.h, but it is listed in
scsi.h as a "BLANK_CHECK" error.
This trivial patch treats this error condition as a reason to abort
the request. This behaviour is the same as what we do with a blank CD-R.
It looks like the same fix might be desired for 2.4 as well, although
is perhaps not so important since scsi-ide is normally used instead.
Dmitry Torokhov [Mon, 15 Dec 2003 19:56:37 +0000 (14:56 -0500)]
[PATCH] Fwd: Re: Atmel - possible SKB leak?
Jeff,
Atmel driver in 2.6.0-test11 is leaking SKBs if card gets disassociated
from an AP when it's about to transfer packet. Simon (atmel maintainer)
is OK with the patch. Given the fact that we are leaking memory I think
it may be beneficial to push it to Linus (if you like the patch).
Andrew Morton [Mon, 15 Dec 2003 19:52:31 +0000 (14:52 -0500)]
[PATCH] Re: Deadlock in 3c574_cs.c (fwd)
Patch looks fine to me, thanks. I've queued up the below.
From: Ville Nuorvala <vnuorval@tcs.hut.fi>
I've experienced random lockups witch become almost certain under heavy
loads, like when doing ping6 -f. The culprit seems to be the 3c574_cs
driver, which locks lp->window_lock twice when calling update_stats() from
el3_interrupt().
Neil Brown [Mon, 15 Dec 2003 08:35:56 +0000 (00:35 -0800)]
[PATCH] Fix possible bio corruption with RAID5
1/ make sure raid5 doesn't try to handle multiple overlaping
requests at the same time as this would confuse things badly.
Currently it justs BUGs if this is attempted.
2/ Fix a possible data-loss-on-write problem. If two or
more bio's that write to the same page are processed at the
same time, only the first was actually commited to storage.
3/ Fix a use-after-free bug. raid5 keeps the bio's it is given
in linked lists when more than one bio touch a single page.
In some cases the tail of this list can be freed, and
the current test for 'are we at the end' isn't reliable.
This patch strengths the test to make it reliable.
Linus Torvalds [Sun, 14 Dec 2003 10:28:27 +0000 (02:28 -0800)]
Fix thread group leader zombie leak
Petr Vandrovec noticed a problem where the thread group leader
would not be properly reaped if the parent of the thread group
was ignoring SIGCHLD, and the thread group leader had exited
before the last sub-thread.
Linus Torvalds [Sat, 13 Dec 2003 13:36:30 +0000 (05:36 -0800)]
More subtle SMP bugs in prepare_to_wait()/finish_wait().
This time we have a SMP memory ordering issue in prepare_to_wait(),
where we really need to make sure that subsequent tests for the
event we are waiting for can not migrate up to before the wait
queue has been set up.
[PATCH] HPFS: missing lock_kernel() in hpfs_readdir()
In 2.5.x, the BKL was pushed from vfs_readdir() into the filesystem
specific functions. But only the unlock_kernel() made it into the HPFS
code, lock_kernel() got lost on the way. This rendered the filesystem
unusable.
This adds the missing lock_kernel(). It's been tested by Timo Maier who
also reported the problem earlier today.
Linus Torvalds [Fri, 12 Dec 2003 06:20:08 +0000 (22:20 -0800)]
Fix subtle bug in "finish_wait()", which can cause kernel stack
corruption on SMP because of another CPU still accessing a waitqueue
even after it was de-allocated.
Use a careful version of the list emptiness check to make sure we
don't de-allocate the stack frame before the waitqueue is all done.
Herbert Xu [Tue, 9 Dec 2003 09:40:44 +0000 (01:40 -0800)]
[PATCH] USB: Fix connect/disconnect race
This patch was integrated by you in 2.4 six months ago. Unfortunately
it never got into 2.5. Without it you can end up with crashes such
as http://bugs.debian.org/218670
Tom Rini [Tue, 9 Dec 2003 01:42:34 +0000 (17:42 -0800)]
[PATCH] USB: mark the scanner driver as obsolete
On Mon, Dec 01, 2003 at 11:21:58AM -0800, Greg KH wrote:
> Can't you use xsane without the scanner kernel driver? I thought the
> latest versions used libusb/usbfs to talk directly to the hardware.
> Because of this, the USB scanner driver is marked to be removed from the
> kernel sometime in the near future.
After a bit of mucking around (and possibly finding a bug with debian's
libusb/xsane/hotplug interaction, nothing seems to run
/etc/hotplug/usb/libusbscanner and thus only root can scan, anyone whose
got this working please let me know), the problem does not exist if I
only use libusb xsane.
Matthew Dharm [Tue, 9 Dec 2003 01:35:37 +0000 (17:35 -0800)]
[PATCH] USB storage: fix for jumpshot and datafab devices
This patch fixes some obvious errors in the jumpshot and datafab drivers.
This should close out Bugzilla bug #1408
> Date: Mon, 1 Dec 2003 12:14:53 -0500 (EST)
> From: Alan Stern <stern@rowland.harvard.edu>
> Subject: Patch from Eduard Hasenleithner
> To: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
> cc: USB Storage List <usb-storage@one-eyed-alien.net>
>
> Matt:
>
> Did you see this patch? It was posted to the usb-development mailing list
> about a week ago, before I started making all my changes. It is clearly
> correct and necessary.
>
> Alan Stern
Jens Axboe [Tue, 9 Dec 2003 01:03:05 +0000 (17:03 -0800)]
[PATCH] scsi_ioctl memcpy'ing user address
James reported a bug in scsi_ioctl.c where it mem copies a user pointer
instead of using copy_from_user(). I inadvertently introduced this one
when getting rid of CDROM_SEND_PACKET. Here's a trivial patch to fix it.
David Brownell [Mon, 8 Dec 2003 05:28:46 +0000 (21:28 -0800)]
[PATCH] USB: fix remove device after set_configuration
If a device can't be configured, the current test9 code forgets
to clean it out of sysfs. This resolves that issue, so the retry
in usb_new_device() stands a chance of working.
The enumeration code still doesn't handle such errors well, but
at least this way that hub port can be used for another device.
James McMechan [Sun, 7 Dec 2003 13:57:40 +0000 (05:57 -0800)]
[PATCH] tmpfs oops fix
The problem was that the cursor was in the list being walked, and when
the pointer pointed to the cursor the list_del/list_add_tail pair would
oops trying to find the entry pointed to by the prev pointer of the
deleted cursor element.
The solution I found was to move the list_del earlier, before the
beginning of the list walk. since it is not used during the list walk and
should not count in the list enumeration it can be deleted, then the
list pointer cannot point to it so it can be added safely with the
list_add_tail without oopsing, and everything works as expected.
I am unable to oops this version with any of my test programs.
Jeff Garzik [Fri, 5 Dec 2003 15:34:00 +0000 (07:34 -0800)]
[PATCH] fix oops on unload in pcnet32
The driver was calling pci_unregister_driver for each _device_, and then
again at the end of the module unload routine. Remove the call that's
inside the loop, pci_unregister_driver should only be called once.
Jeff Garzik [Fri, 5 Dec 2003 08:41:06 +0000 (03:41 -0500)]
[libata promise] Properly initialize DIMM, on SX4
On-board DIMM should be sized and initialized by the driver. Previously,
a single DIMM size was simply (and incorrectly) assumed, and
initialization was presumed to have been done by the card's BIOS.
Contributed by Promise, updated by David Milburn @ Red Hat.
Jeff Garzik [Fri, 5 Dec 2003 08:21:27 +0000 (03:21 -0500)]
[netdrvr pcnet32] fix oops on unload
Driver was calling pci_unregister_driver for each _device_, and then
again at the end of the module unload routine. Remove the call that's
inside the loop, pci_unregister_driver should only be called once.
Ulrich Drepper [Thu, 4 Dec 2003 14:26:06 +0000 (06:26 -0800)]
[PATCH] Fix 'noexec' behaviour
We should not allow mmap() with PROT_EXEC on mounts marked "noexec",
since otherwise there is no way for user-supplied executable loaders
(like ld.so and emulator environments) to properly honour the
"noexec"ness of the target.
Jean Delvare [Thu, 4 Dec 2003 06:14:33 +0000 (22:14 -0800)]
[PATCH] I2C: fix i2c_smbus_write_byte() for i2c-nforce2
This patch fixes i2c_smbus_write_byte() being broken for i2c-nforce2.
This causes trouble when that module is used together with eeprom (which
is also in 2.6). We have had three user reports about the problem.
Credits go to Mark D. Studebaker for finding and fixing the problem.
Jens Axboe [Wed, 3 Dec 2003 23:53:31 +0000 (15:53 -0800)]
[PATCH] fix broken x86_64 rdtscll
The scheduler is completed b0rked on x86_64, and I finally found out
why. sched_clock() always returned 0, because rdtscll() always returned
0. The 'a' in the macro doesn't agree with the 'a' in the function,
yippe :-)
Ingo Molnar [Wed, 3 Dec 2003 04:59:12 +0000 (20:59 -0800)]
[PATCH] Fix /proc access to dead thread group list oops
The pid_alive() check within the loop is incorrect. If we are within
the tasklist lock and the thread group leader is valid then the thread
chain will be fully intact.
Instead, the check should be _outside_ the loop, since if the group
leader no longer exists, the whole list is gone and we must not try
to access it.