Jean Delvare [Tue, 30 Dec 2003 04:10:08 +0000 (20:10 -0800)]
[PATCH] I2C: Fix SCx200 dependancies
The following patch fixes incorrect dependencies (as far as I can see)
for the SCx200 modules. A similar patch (with even more fixes) is also
needed for Linux 2.4, and will be part of my next wave to Marcelo. Note
that I don't have the necessary hardware to actually test anything, but
a quick look at the code doesn't leave much place for doubt IMHO.
This fixes byte writes (used by the eeprom driver) in the i2c-amd756
driver. It is similar to recent fixes for the i2c-amd8111 and
i2c-nforce2 drivers.
This patch is based on the lm_sensors project CVS, from revisions 1.45 and 1.1
of lm75.c and lm75.h, respectively.
The patch fixes the conversion routines (according to datasheet) and moves
them into a header file - as these conversions can be used by several drivers
which emulate LM75s as subclients. Also, temps are now reported in 1/1000 C
in sysfs as per documentation.
Mark M. Hoffman [Wed, 17 Dec 2003 08:04:29 +0000 (00:04 -0800)]
[PATCH] I2C: remove initialization of limits by w83781d driver
This patch is from the lm_sensors project CVS, from this revision:
1.111 (mds) remove initialization of limits by driver
It is better to set these limits by a combination of /etc/sensors.conf
and 'sensors -s'; "mechanism not policy." And what's not to like about
a patch that removes 163 lines?
Jean Delvare [Wed, 17 Dec 2003 07:44:31 +0000 (23:44 -0800)]
[PATCH] I2C: fix i2c-amd8111 driver.
This patch fixes i2c_smbus_write_byte() being broken for i2c-amd8111.
This causes trouble when that module is used together with eeprom (which
is also in 2.6). We have had no report so far, but the problem is
similar to the one addressed by a recent patch to i2c-nforce2.
Credits go to Hans-Frieder Vogt for finding and fixing the problem. Mark
D. Studebaker found and fixed the original problem in i2c-nforce2.
This is a serious bug fix, and I believe you shouldn't wait too long
before applying it.
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.
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.
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:26:44 +0000 (22:26 -0800)]
[PATCH] I2C: it87 and via686a alarms
> it87 and via686a violate the sysfs standard by having "alarm" instead
> of "alarms", would you please fix in your next patch?
I'm not the only one allowed to send patches to Greg, you know ;)
Anyway, here we go. Greg, here is a patch that corrects the standard
violation reported by Mark. Tested to compile.
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.
Jean Delvare [Thu, 4 Dec 2003 05:53:58 +0000 (21:53 -0800)]
[PATCH] I2C: add KT600 support to i2c-viapro driver
This patch adds support for the KT600 to the i2c-viapro driver. It was
confirmed to work by Lou, lm-sensors at fixit dot nospammail dot net in
this post:
http://archives.andrew.net.au/lm-sensors/msg05299.html
Jean Delvare [Thu, 4 Dec 2003 05:53:39 +0000 (21:53 -0800)]
[PATCH] I2C: add Serverworks CSB6 support to i2c-piix4
This patch adds support for the Serverworks CSB6 to i2c-piix4 driver. It
was confirmed to work by lasirona at yahoo dot com in support ticket
#1424:
http://secure.netroedge.com/~lm78/readticket.cgi?ticket=1424
Jean Delvare [Thu, 4 Dec 2003 05:53:21 +0000 (21:53 -0800)]
[PATCH] I2C: fix author of i2c-savage4.c driver
This patch rehabilitates Alexander Wold as the author of the i2c-savage4
driver. For some reason, his name was not mentioned anywhere in the
first place.
The change was requested by Alexander Wold himself.
Jean Delvare [Thu, 4 Dec 2003 05:43:05 +0000 (21:43 -0800)]
[PATCH] I2C: make I2C chipset drivers use temp_hyst[1-3]
Summary of the changes:
adm1021.c: No changes, that chipset uses a real min/max model.
eeeprom.c: No changes (obviously).
it87.c: Remove buggy comments (obviously taken from via686a) about
max and min temperature limits being over and hyst. This
isn't the case for this driver (min/max model).
lm75.c: Simple sysfs file name change (temp_min to temp_hyst).
lm78.c: Simple sysfs file name change (temp_min to temp_hyst).
lm85.c: No changes needed (min/max model).
via686a.c: Rename functions and macros from min/max to hyst/over, what
it really is. Remove unnecessary comments. Rename sysfs
files from temp_min[1-3] to temp_hyst[1-3].
w83781d.c: Rename variables from temp_min* to temp_hyst* (needed so
that the macros keep working). Update macro calls
accordingly. Fix writing temp to max and hyst being
swapped.
Additional remarks:
The lm75 and lm78 having a single temperature channel, there is no
number appended to the file names. Shouldn't a "1" be appended in this
case? I think it would make it easier for the future library to catch
all the files.
I made sure the drivers would still compile after the changes, but did
not test them otherwise (no working 2.6.0 kernel here, and not all the
hardware anyway).
Jean Delvare [Thu, 4 Dec 2003 05:41:40 +0000 (21:41 -0800)]
[PATCH] I2C: sysfs interface documentation
1* No more current hysteresis value. I don't think we ever saw a chip
which monitors current, and if we ever do, I would be very, very
surprised if it would have an hysteresis value.
2* Temperature input and max can have 4 values. [from the previous
patch]
3* Split temperature min and hysteresis into two separate files.
4* New file temp_crit. [from previous patch]
The new file temp_crit is subject to change later as we decide more
precisely how we want to handle values that are common to more than one
temperature channels.
Jean Delvare [Thu, 4 Dec 2003 05:35:42 +0000 (21:35 -0800)]
[PATCH] I2C: Fix i2c-algo-bit for adapers that cannot read SCL back
Here follows a patch to i2c-algo-bit.c as found in linux-2.6.0-test9,
with two fixes for adapters that cannot read SCL back. Althouth real
adapters should be able to read SCL back, there are some that
cannot, for example the ADM1032 evaluation board I am using. Such
adapters where supposed to be already supported, but I found a probable
bug and improved support.
These changes were applied to our i2c CVS repository two weeks ago and
have been reviewed by Mark D. Studebaker.
List of changes:
* Fix sclhi() for adapters that do not have getscl().
* Enable bit_test for adapters that do not have getscl().
* Mostly rewrite test_bus(), cleaner and probably faster.
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 :-)
Jean Delvare [Wed, 3 Dec 2003 16:44:29 +0000 (08:44 -0800)]
[PATCH] I2C: i2c documentation (2 of 2)
This is a patch to writing-clients. The current version in Linux 2.6
still mentions the old module reference counting mechanism. The patch
brings it to the same version we have in i2c CVS, where that section has
been updated.
Jean Delvare [Wed, 3 Dec 2003 16:43:55 +0000 (08:43 -0800)]
[PATCH] I2C: i2c documentation (1 of 2)
This is the document I wrote (and you reviewed) about porting client
drivers to Linux 2.6. The retained name is "porting-clients" (in line
with writing-clients). I won't commit it to i2c/lm_sensors2 CVS, since
that document is of no use outside of the 2.6 kernel (and I'm bored
keeping files in sync).
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.
Hirofumi Ogawa [Mon, 1 Dec 2003 02:40:47 +0000 (18:40 -0800)]
[PATCH] Missing initialization of /proc/net/tcp seq_file
We need to initialize st->state in tcp_seq_start(). Otherwise
tcp_seq_stop() is run with previous st->state, and it calls the unneeded
unlock etc, causing a kernel crash.
Ben Collins [Wed, 26 Nov 2003 04:15:46 +0000 (20:15 -0800)]
[PATCH] Lastminute IEEE-1394 fixes
I've got a lot more changes than what's included here. I've put this
down to the bear minimum to get things working sanely.
Mainly, I just want to get all the people hit by this a chance to use
2.6.0 without having to get our tree. Changes itemized:
- Fix deadlock possibility in csr.c:read_maps()
- Fix kmalloc to use ATOMIC in highlevel.c.
- s/in_interrupt/irqs_disabled/ in ieee1394_transactions.c to fix
warnings when transactions occured.
- Introduce a release callback for the host driver and use it correctly.
- Reorganize the nodemgr probe so we do an initial scan to discover
devices, check IRM/CycleMaster, then do a final full probe when things
are kosher. Fixes a problem where device registration and hotplug
would cause some serious problems when a bus reset was forced in the
middle of the probe.
[PATCH] prevent oops from read of proc entry for tty drivers
There are /proc handles there setup by proc_tty_register_driver, but there is
no module ownership association, so anything that reads after module unload
will blow.
The trivial fix is to propagate the owner of tty_driver to proc entry.
David S. Miller [Mon, 24 Nov 2003 11:44:51 +0000 (03:44 -0800)]
[NET]: In sock_queue_rcv_skb(), do not deref skb->len after it is queued to the socket.
In implementations that use no socket locking, such as RAW sockets,
once we queue the SKB to the socket another cpu can remove the SKB
from the socket queue and free up the SKB making the skb->len access
touch freed memory.
Based upon a report from Burton Windle, kernel bugzilla #937