[PATCH] fix OOPS for multiple IDE PCI modules and CONFIG_PROC_FS=y
The problem is that when loading next IDE PCI module memory used by
previously registered ide_pci_host_proc_list entry is already unmapped
(because of __{dev}initdata). This doesn't happen in built-in case
because this memory is freed after all drivers are initialized.
Fix it by removing __{dev}initdata from all ide_pci_host_proc_t.
Thanks to Andre Tomt <andre@tomt.net> for help in debugging this.
Adam Belay [Sun, 8 Feb 2004 15:44:15 +0000 (15:44 +0000)]
[PNP]: Card matching code fix
This patch updates the matching code to ensure that all requested
devices are present on the card, even if they are in use. It is
necessary for some ALSA drivers to work properly because early vendors
would have different sets of devices on the same card ids. It is from
Takashi Iwai <tiwai@suse.de>.
Adam Belay [Sun, 8 Feb 2004 15:31:19 +0000 (15:31 +0000)]
[PNP]: Disable resources fix
Some PnPBIOSes do not follow the specifications with regard to
disabling devices. This patch preserves the tag bits, while zeroing
the resource settings. Previously we would zero the entire buffer.
It has been tested and appears to correct the issue while remaining
compatible with unbroken PnPBIOSes.
Adam Belay [Sun, 8 Feb 2004 15:28:23 +0000 (15:28 +0000)]
[PNP]: Resource flags update
This patch reorganizes resource flags to ensure that manual resource
settings are properly recognized. This fix is necessary for many ALSA
drivers. It also prevents comparisons between unset resource
structures. The bug was discovered by Rene Herman
<rene.herman@keyaccess.nl>, who also wrote an initial version of this
patch. I made further improvements to ensure that the pnp subsystem
was compatible with this initial change.
Adam Belay [Sun, 8 Feb 2004 15:23:01 +0000 (15:23 +0000)]
[PNP]: Fix Serial PnP driver
The serial driver currently fails to unregister its pnp driver upon
module unload. This patch corrects the problem by calling
pnp_unregister_driver and implementing a proper remove function.
[SUNRPC]: Use completions instead of sleep_on for rpciod.
The rpciod shutdown code gives ugly sleep_on without BKL warnings in
-mm. And it looks indeed somewhat racy.
The easy fix would be to simply use a completion as in the patch below,
but that removes all the signal fuzzing semantics the current code has.
I don't really understand why we want to cancel the operation by
signals, but I think it'd be better to leave that to people familar with
the code anyway..
Andrew Morton [Sun, 8 Feb 2004 01:44:08 +0000 (17:44 -0800)]
[PATCH] cciss: rmmod oops fix
From: mikem@beardog.cca.cpqcorp.net
This patch fixes an Oops when unloading the driver. Bug fix. Please
consider this for inclusion.
All of the patches sent out are needed to get the driver in the 2.6 tree up
to the level of the driver that is in the 2.4 tree, excluding this patch
which is not required in 2.4.
More patches will be coming. They include multi-path failover support,
support for more than 8 controllers, and msi support. Presently working on a
per logical volume queueing scheme.
Andrew Morton [Sun, 8 Feb 2004 01:43:49 +0000 (17:43 -0800)]
[PATCH] cciss: improve /proc presentation
From: mikem@beardog.cca.cpqcorp.net
This patch changes the way we fill out the /proc files we create. It now has
human readable volume sizes, RAID levels, etc. Also removes some fields that
were orginally for debug purposes. This is in the 2.4 tree.
Andrew Morton [Sun, 8 Feb 2004 01:43:21 +0000 (17:43 -0800)]
[PATCH] cciss: intialisation oops fix
From: mikem@beardog.cca.cpqcorp.net
This patch moves the check of the controller to before trying to enable it.
If a controller is disabled the system will Oops without this fix. This in
the 2.4 tree.
Andrew Morton [Sun, 8 Feb 2004 01:43:12 +0000 (17:43 -0800)]
[PATCH] cciss: disble prefetching in ASIC
From: mikem@beardog.cca.cpqcorp.net
This patch addresses a bug in the ASIC on the 6400 series controllers. When
prefetching from host memory we grab an extra 750 or so bytes of data. If
this occurs on a memory boundary the machine will MCA. This bug affects IPF
and Alpha based platforms. It is not known to be a problem on x86.
Prefetch will be disabled via the f/w. We need to enable it on x86 to
address a _big_ performance hit on RAID 1 operations.
Andrew Morton [Sun, 8 Feb 2004 01:43:02 +0000 (17:43 -0800)]
[PATCH] cciss: IRQ sharing fix
From: mikem@beardog.cca.cpqcorp.net
This patch fixes a bug when sharing IRQs with another controller that
receives a lot of interrupts. Without this check we will panic the system
when unloading and reloading the driver. This is in 2.4.
Andrew Morton [Sun, 8 Feb 2004 01:42:53 +0000 (17:42 -0800)]
[PATCH] cciss: Add support for SA 6i embedded controller
From: mikem@beardog.cca.cpqcorp.net
This patch adds support for the next generation embedded cciss controller.
It also bumps the version and changes the author to HP. This patch is in
2.4.
[PATCH] fix duplication of DMA {black,white}list in icside.c
Always compile ide-dma.c if CONFIG_BLK_DEV_IDEDMA=y, mark PCI specific code
with CONFIG_BLK_DEV_IDEDMA_PCI for now (it should migrate to ide_pcidma.c
over a time). This fixes a small bug - in_drive_list() from icside.c used
!strstr() instead of strstr() so it was missing two entries from a blacklist.
[PATCH] remove MOD_INC_USE_COUNT from drivers/ide/
From: Christoph Hellwig <hch@lst.de>
Instead of using the old MOD_INC_USE_COUNT and getting warnings all the
time preventing module unload can be much easier achived by just not
implementing a module_exit handler.
Andrew Morton [Sat, 7 Feb 2004 04:49:38 +0000 (22:49 -0600)]
[PATCH] Fix qla2xxx warnings
On ppc64:
drivers/scsi/qla2xxx/qla_dbg.c: In function `qla2300_fw_dump':
drivers/scsi/qla2xxx/qla_dbg.c:64: warning: int format, different type arg (arg 5)
drivers/scsi/qla2xxx/qla_dbg.c: In function `qla2100_fw_dump':
drivers/scsi/qla2xxx/qla_dbg.c:600: warning: int format, different type arg (arg 5)
drivers/scsi/qla2xxx/qla_os.c: In function `qla2x00_proc_info':
drivers/scsi/qla2xxx/qla_os.c:2386: warning: cast to pointer from integer of different size
drivers/scsi/qla2xxx/qla_os.c:2386: warning: cast to pointer from integer of different size
The qla_dbg() warning occurs because on ppc64 size_t is a long. sizeof
returns a size_t.
I used %Z rather than the more modern %z, because gcc-2.95 warns about %z.
printk supports both.
For printing out dma_addr_t's, we really don't know what size they are here,
so treating them as unsigned long long is best.
Matthew Wilcox [Fri, 6 Feb 2004 11:45:05 +0000 (03:45 -0800)]
[PATCH] New ptrace.h definitions
ARM added a definition for PT_SINGLESTEP which conflicted with
our definition. So define PT_SINGLESTEP_BIT, PT_BLOCKSTEP_BIT and
PT_BLOCKSTEP to prevent similar problems in the future. (James Bottomley)
Shmulik Hen [Fri, 6 Feb 2004 08:20:43 +0000 (00:20 -0800)]
[VLAN]: Export VLAN tag get/set functionality.
Enable intermediate network drivers like bonding to get or set a
VLAN tag in an skb without a need to know about how tagging is done
according to a network adapter's capabilities.
Andrew Morton [Fri, 6 Feb 2004 07:09:25 +0000 (23:09 -0800)]
[NET]: Simply net_ratelimit().
Reimplement net_ratelimit() in terms of the new printk_ratelimit().
As net_ratelimit() already has it own sysctls we generalise
printk_ratelimit() a bit so that networking does not lose its existing
sysctls and so that it can use different time constants from the more generic
printk_ratelimit().
[NET]: Support for lots of netdevs -- faster dev_alloc_name
Convert dev_alloc_name from O(n^2) lookup to O(n) by using a page as
bitmap to figure out how many devices of that pattern have been allocated.
This works for up to 32k devices (PAGE_SIZE*8) on i386, more on other
platforms. Correctly handles the boundary cases where number of devices
won't fit because name length is limited.
Adds strnchr to the string libraries since we need to find the % format
character, but only care if it is in the first 15 bytes.