Jens Axboe [Mon, 8 Mar 2004 04:29:23 +0000 (20:29 -0800)]
[PATCH] fix blk_start_queue()
Here's the second attempt at fixing blk_start_queue(). The only change
since last version is using proper atomic bitops. If we moved the
read/write full to a different variable, we could rely on the queue lock
for plugging and stop/start of queue (by far the most used bit
operations there) and skip the atomic bitops.
Jens Axboe [Mon, 8 Mar 2004 00:03:34 +0000 (16:03 -0800)]
[PATCH] blk_insert_request() buglet
blk_insert_request() unconditionally calls q->request_fn(q) regardless
of the plug state of the queue. This means that we could invoke
request_fn with a plugged queue, which is an invalid state.
The attached patch updates wanXL card driver. Please apply to Linux 2.6.
Thanks.
Changes:
* fixed initialization kernel panic, introduced with recent alloc_netdev()
wan patch,
* wanxl_rx_intr() port# now checked before accessing port structure,
* cleanups etc.
--
Krzysztof Halasa, B*FH
Andrew Morton [Sat, 6 Mar 2004 16:51:43 +0000 (08:51 -0800)]
[PATCH] fix i2c compile warnings
drivers/i2c/busses/i2c-elv.c: In function `i2c_bitelv_init':
drivers/i2c/busses/i2c-elv.c:155: warning: unsigned int format, long int arg (arg 2)
drivers/i2c/busses/i2c-elv.c:155: warning: unsigned int format, long int arg (arg 2)
drivers/i2c/busses/i2c-velleman.c: In function `i2c_bitvelle_init':
drivers/i2c/busses/i2c-velleman.c:141: warning: unsigned int format, long int arg (arg 2)
drivers/i2c/busses/i2c-velleman.c:141: warning: unsigned int format, long int arg (arg 2)
Andrew Morton [Sat, 6 Mar 2004 16:51:13 +0000 (08:51 -0800)]
[PATCH] Fix nobh_prepare_write() race
Dave Kleikamp <shaggy@austin.ibm.com> points out a race between
nobh_prepare_write() and end_buffer_read_sync(). end_buffer_read_sync()
calls unlock_buffer(), waking the nobh_prepare_write() thread, which
immediately frees the buffer_head. end_buffer_read_sync() then calls
put_bh() which decrements b_count for the already freed structure. The
SLAB_DEBUG code detects the slab corruption.
We fix this by giving nobh_prepare_write() a private buffer_head end_o
handler which doesn't touch the buffer's contents after unlocking it.
Andrew Morton [Sat, 6 Mar 2004 16:51:03 +0000 (08:51 -0800)]
[PATCH] CONFIG_LBD fixes
From: Eric Sandeen <sandeen@sgi.com>
Several functions in buffer.c are using unsigned long where they should be
using sector_t.
Also, use pgoff_t in several places so it is easier to tell what is beingused
as a pagecache index, what is being used as a disk index and what is being
used as an offset-into-page.
Andrew Morton [Sat, 6 Mar 2004 16:50:53 +0000 (08:50 -0800)]
[PATCH] fix oops in emu10k1_wavein_open() error recovery
If a large pci_alloc_consistent() GFP_ATOMIC allocation fails this driver's
recovery code will call emu10k1_wavein_close() far earlier than it should: it
goes splat in emu10k1_timer_uninstall().
Fix it by simply removing that call: we haven't allocated any resources yet
anyway.
Note that one of the callers of emu10k1_wavein_open(), emu10k1_audio_read()
will sit there stupidly retrying the open. But it has a sleep in there so
something might eventually give way.
Andrew Morton [Sat, 6 Mar 2004 16:50:43 +0000 (08:50 -0800)]
[PATCH] i2o subsystem minor bugfixes
From: Markus Lidel <Markus.Lidel@shadowconnect.com>
drivers/message/i2o/i2o_block.c:
- corrected the initialization sequence of the request queues.
- added initialization to queue spinlocks.
- release device in i2o_scan because else the device could not be queried.
- i2o_block event threads wait on signal KILL but signal TERM was sent.
drivers/message/i2o/i2o_core.c:
- set the HRT length to 0 at initialization, to avoid calling free on
unallocated memory.
- i2o_core event threads wait on signal KILL but signal TERM was sent.
- added a limit of 3 tries to get the HRT from the controller.
- removed the dpt parameter, which was used to force DPT controllers get
handled by the i2o driver. Now all available i2o controllers will be
handled by this driver.
drivers/message/i2o/i2o_scsi.c:
- beautifying of printk calls.
- added scsi_unregister to properly clean up on module unload.
drivers/message/i2o/Kconfig:
- added help for i2o_block and i2o_scsi to describe the differences between
the two drivers.
include/linux/i2o-dev.h:
- cleaned typo "tate" into "state".
include/linux/i2o.h:
- removed defines from i2o_block and insert it here.
Andrew Morton [Sat, 6 Mar 2004 16:49:52 +0000 (08:49 -0800)]
[PATCH] serial_core.h needs sched.h
In file included from drivers/misc/ibmasm/uart.c:27:
include/linux/serial_core.h: In function `uart_handle_dcd_change':
include/linux/serial_core.h:407: `TASK_INTERRUPTIBLE' undeclared (first use in this function)
Andrew Morton [Sat, 6 Mar 2004 16:49:11 +0000 (08:49 -0800)]
[PATCH] char/rio/rioctrl: fix ioctl return values
From: "Randy.Dunlap" <rddunlap@osdl.org>
From: Tony Breeds <tony@bakeyournoodle.com>
It fixes 3 places where the ioctl returns positives instead of negatives.
I've gotten feedback from the maintainer (Rogier Wolff (sp?) and he has no
objections.
Andrew Morton [Sat, 6 Mar 2004 16:48:52 +0000 (08:48 -0800)]
[PATCH] ppc64: Convert mm_context_t to a struct
From: David Gibson <david@gibson.dropbear.id.au>
Converts the mm_context_t on ppc64 to be a struct. This lets us separate
the low_hpages flag into a separate field rather than folding it into the
actual context id. That makes things neater, since the flag is
conceptually separate and has, for example, should be propogate across a
fork whereas the context ID obviously isn't. The mm_context_id is the only
place to put arch-specific information in the mm_struct.
This patch will also make some interesting extensions to the hugepage
support much easier, such as allowing dynamic resizing of the hugepage
address space, or using special pagetables for hugepages.
Andrew Morton [Sat, 6 Mar 2004 16:48:32 +0000 (08:48 -0800)]
[PATCH] ppc64: iSeries_vio_dev cleanup
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch declares iSeries_vio_dev in an include file and includes it where
necessary. It also fixes arch/ppc64/kernel/mf.c to use the generic dma API
with iSeries_vio_dev.
Andrew Morton [Sat, 6 Mar 2004 16:48:11 +0000 (08:48 -0800)]
[PATCH] fastcall / regparm fixes
From: Gerd Knorr <kraxel@suse.de>
Current gcc's error out if a function's declaration and definition disagree
about the register passing convention.
The patch adds a new `fastcall' declatation primitive, and uses that in all
the FASTCALL functions which we could find. A number of inconsistencies were
fixed up along the way.
Andrew Morton [Sat, 6 Mar 2004 16:47:39 +0000 (08:47 -0800)]
[PATCH] svcauth_gss oops fix
From: "J. Bruce Fields" <bfields@fieldses.org>
I've done some testing with 2.6.4-rc1. It looks fine, except that one
critical patch got dropped somewhere along the way, without which
rpcsec_gss will oops.
We've changed gss_get_mic to write mic in place instead of kmalloc'ing new
memory for it; change must also be reflected in server side code.
Trond Myklebust [Sat, 6 Mar 2004 08:11:47 +0000 (00:11 -0800)]
[PATCH] Fix knfsd filehandles...
Here's a fix for an obvious typo in changeset
neilb@cse.unsw.edu.au|ChangeSet|20040305155724|31191
that was causing ESTALE errors galore on my NFS testrig.
The code initializing the "high" BATs on CPUs like the 750FX got
broken when copied over from 2.4. This cause random problems with
machines using those CPUs (iBook 2s typically).
Dave Jones [Fri, 5 Mar 2004 07:19:34 +0000 (23:19 -0800)]
[PATCH] mismatched syscall protos.
Sparse noticed a bunch of mismatched prototypes in the new syscalls.h file
when compiling net/socket.c Whilst most of them are just missing __user
tags, the last argument of sys_socketpair was completely different.
Russell King [Fri, 5 Mar 2004 21:35:39 +0000 (21:35 +0000)]
[SERIAL] Correct Oxford Semiconductor 16PCI952 PCI type entry.
WRT 2.4, Ed Vance put this fix into 2.4:
According to the data sheet, the OX16PCI952 has port 0 in BAR0 and
port 1 in BAR1. (unlike the OX16C954, BTW) The 921600 base baud value
is your oscillator rate divided by the default oversample rate, 16.
Since 2.6 PCI IDs have been updated to use the real device ID for
this part, we really should include this fix as well.
Russell King [Fri, 5 Mar 2004 21:12:13 +0000 (21:12 +0000)]
[SERIAL] Don't initialise port->mctrl before calling ->startup
If a serial port is hung up using vhangup() with HUPCL cleared (so
DTR isn't dropped), and then re-opened, we don't want to drop the
DTR line. This occurs during the login process, and dropping DTR
would cause a modem to hang up.
Harald Welte [Fri, 5 Mar 2004 20:41:31 +0000 (20:41 +0000)]
[SERIAL] Fix supprot for AFAVLAB 8port boards in 2.6.x
I didn't yet use one of my AFAVLAB boards with 2.6.x until now. The
upper 4 ports are not detected at all. I suppose the bug was
introduced while porting the driver from 2.4.x.
Please consider applying the following patch. It also adds support
for a new 8 port board called P030.
Bjorn Helgaas [Fri, 5 Mar 2004 20:16:43 +0000 (20:16 +0000)]
[SERIAL] Make serial console work for any port (take 2)
The current serial console code only works for ports that are either
defined in SERIAL_PORT_DFNS (and set up by serial8250_isa_init_ports())
or registered by early_serial_setup().
On ia64, SERIAL_PORT_DFNS is empty because we discover everything
via ACPI and PCI. And we only use early_serial_setup() for one port
described by the HCDP firmware table.
This patch against 2.6.4-rc1 makes it work for any valid port. If we
don't know about the port early, we just return -ENODEV from the
setup() function, which leaves the serial console disabled. After the
driver has found all the ports, we try to register the serial console
again if it hasn't been enabled already.
Keith Owens noticed that the first version of this patch broke some
serial console setups because many early serial ports are registered
with "type == PORT_UNKNOWN". So this version tests "port->ops"
instead, and Keith has confirmed that this works for him.
Marcel Holtmann [Fri, 5 Mar 2004 19:53:50 +0000 (20:53 +0100)]
[Bluetooth] Dynamic allocation of the RFCOMM TTY devices
Only allocate the RFCOMM TTY devices when they are really in use. This
prevents the system from calling hotplug and udev 256 times to create or
remove every device node. In fact this makes the loading and unloading
of the RFCOMM module much faster.
Marcel Holtmann [Fri, 5 Mar 2004 18:43:26 +0000 (19:43 +0100)]
[Bluetooth] Add notify callback for host drivers
This patch adds a notification callback to the hci_dev structure which
is used by the HCI core to tell the driver about connection creation
and clearing. It also notifies about changed voice setting.
Marcel Holtmann [Fri, 5 Mar 2004 18:27:52 +0000 (19:27 +0100)]
[Bluetooth] Send HCI_Reset for some Broadcom dongles
This patch introduces a quirk flag for sending the HCI_Reset command. In
general the HCI_Reset is not needed, but some Broadcom dongles uses this
reset command to switch from HID to HCI mode. And it is not safe to send
the HCI_Reset to every Bluetooth device, because the CSR firmware prior
HCI 12.x will reset the host transport and this is wrong according to the
Bluetooth specification.
Neil Brown [Thu, 4 Mar 2004 23:57:24 +0000 (15:57 -0800)]
[PATCH] kNFSd - Tidy up new filehandle type.
nfsd uses several different mechanisms for identifying the filesystem
from the filehandle.
This patch:
Marks type 2 as deprecated - it wastes space, and space in the filehandle
is not unlimited
Adds type 3 which handles new, large device number in 32bits of space
Tidies up the code for determining which type to use in a newly created
filehandle - the addition of type 2 broke this code.
Brian Gerst [Thu, 4 Mar 2004 15:05:03 +0000 (07:05 -0800)]
[PATCH] PnP BIOS exception fixes
This fixes two errors in fixup_exception() for PnP BIOS faults:
- Check for the correct segments used for the BIOS
- Fix asm constraints so that EIP and ESP are properly reloaded
Deepak Saxena [Thu, 4 Mar 2004 22:17:06 +0000 (22:17 +0000)]
[ARM PATCH] 1757/1: Allow building of LE kernels with BE-default toolchain
Patch from Deepak Saxena
The ARM makefile currently assumes that the compiler being used
defaults to little-endian builds unless the big-endian options
are provided. This may not always be the case (my toolchains default
to BE since that's what I mostly work with) so this patch forces
endianess options to be passed to the toolchain. W/O this,
building without CONFIG_CPU_BIG_ENDIAN on a big-endian toolchain
will still result in a big-endian kernel.