the rmmod ends up freeing the pcmcia_bus_socket while the wait
queue is still active. The killall cardmgr cases the the select()
to complete, and users to be removed from the "queue" - which ends
up writing to freed memory.
The following patch adds refcounting to pcmcia_bus_socket so we
won't free it until all users have gone. We also add "SOCKET_DEAD"
to mark the condition where the socket is no longer present in the
system.
Note that we don't wake up cardmgr when we remove sockets -
unfortunately cardmgr doesn't like receiving errors from read().
Really, cardmgr should treat EIO from read() as a fatal error
for that socket, and stop listening for events from it.
Roland McGrath [Thu, 15 Jan 2004 12:47:18 +0000 (04:47 -0800)]
[PATCH] fix pdeath_signal SMP locking
Obviously almost noone uses the pdeath_signal feature, since this has gone
unnoticed for quite some time.
This patch calls the function that does the right locking for the context
of this call (inside exit_notify). The names of the signal.c entrypoints
are a little confusing.
David Mosberger [Thu, 15 Jan 2004 08:39:13 +0000 (00:39 -0800)]
ia64: Replace unwcheck shell-script with a Python script which works
correctly even on 32-bit hosts. As an added bonus, it's faster,
too. Run "unwcheck" by default, but for now, don't let unwcheck
errors cause the kernel build to fail.
David Jeffery [Thu, 15 Jan 2004 07:53:07 +0000 (02:53 -0500)]
[PATCH] ips fix for large mem 64bit machines
This patch fixes DMA bugs on x86-64 and ia64 machines. The driver was
using commands that only support 32bit addresses in places that could
return 64bit addresses. One place was DMAing off the stack. The other
place was causing problems on x86-64 machines by calling pci_map()
functions on a region allocated by pci_alloc_consistent().
David Jeffery [Thu, 15 Jan 2004 07:51:50 +0000 (02:51 -0500)]
[PATCH] ips 2/2: minor fixes
This patch fixes two minor bugs. It allows zero length write commands
through to devices. It also prevents the writing of any '\0'
characters at the end of version numbers to ips's /proc/scsi files.
James Bottomley [Thu, 15 Jan 2004 05:23:57 +0000 (00:23 -0500)]
g_NCR5380 - 2.6.0 - problem with reloading module
From: "Randy.Dunlap" <rddunlap@osdl.org>
The problem is that the detect function requests an IO region
of 16 bytes (at least when a command line override parameter is
used) but the release function only tries to release 8 bytes,
and this request isn't done because it doesn't match any allocated
IO region. [NCR53C400 extensions are not enabled, so
NCR5380_region_size is 8, not 16, but the request uses
NCR5380_region_size regardless.]
Fix: save the allocated region size in instance->n_io_ports and release
that size only;
Matthew Wilcox [Wed, 14 Jan 2004 06:47:05 +0000 (01:47 -0500)]
[PATCH] Re: Building sym 2.1.18f on linux/alpha
On Tue, Jan 13, 2004 at 06:02:08PM +0300, Sergey Tikhonov wrote:
> The final kernel could not pass linking stage with 2.1.18f version
> (included into 2.6.1 kernel patch).
> The linker complains that :
> drivers/built-in.o(.init.text+0x8cec): In function 'sym2_probe':
> : undfined reference to 'local symbols in discarded section .exit.text'
>
> I compared arch/alpha/kernel/vmlinux.lds.S with one from the i386 tree.
> The '.exit.text' and '.exit.data'
> sections were moved out of DISCARD attributes in the i386 version. I did
> the same with alpha version
> and it helped.
Thanks for this report; you uncovered a real bug. Actually two real
bugs; one is that parisc is not discarding the .init.text and .exit.text
sections (so I didn't notice this bug) and the other is that sym_detach
is marked __devexit, yet called from a __devinit function.
Jes Sorensen [Wed, 14 Jan 2004 03:26:25 +0000 (19:26 -0800)]
[PATCH] ia64: quiet down SMP boot messages
This patch gets rid of some superfluous printk's which get tedious on
machines with insane number of CPUs. The virtual/physical address bit
info is already available via /proc/pal, so there is no need to print
it at boot- time.
Bjorn Helgaas [Wed, 14 Jan 2004 03:18:29 +0000 (19:18 -0800)]
[PATCH] ia64: move HCDP under serial console #ifdef
Currently you can select HCDP independent of serial console. This
doesn't seem very useful, and makes the setup_serial_hcdp() reference
unresolved if the serial driver is built as a module.
CONFIG_SERIAL_8250_CONSOLE is only selectable if the serial core is
built in (SERIAL_8250=y), so this patch makes sure we don't try to
call setup_serial_hcdp() unless it is actually built in to the kernel.
(I think we should also make HCDP selection dependent on
SERIAL_8250_CONSOLE=y in Kconfig; I'll send a separate patch
for that since it's not ia64-specific.)
Jes Sorensen [Wed, 14 Jan 2004 02:56:03 +0000 (18:56 -0800)]
[PATCH] ia64: header cleanup
I fixed the code to compile with CONFIG_ACPI_NUMA and
!CONFIG_DISCONTIG since it's actually possible to compile that
configuration as well as cleaned up the #include usage a litte.
Alex Williamson [Mon, 12 Jan 2004 08:04:10 +0000 (00:04 -0800)]
[PATCH] ia64: sba_iommu update
This patch does a couple things:
* Allows iommu page size different than PAGE_SIZE. This was
largely done by Bjorn. The motivation for this is that sx1000
hardware officially only supports use of the iommu with a 4k
page size. Thus the default is now 4k for sx1000 and PAGE_SIZE
for zx1.
* Cleanup the runtime statistics gathering such that we can turn
it on for some info w/o impacting runtime performance.
Andreas Schwab [Mon, 12 Jan 2004 04:10:14 +0000 (20:10 -0800)]
[PATCH] ia64: __ia64_memcpy_fromio() may be missing from kernel
When building a highly modular, non-generic kernel it can happen that
arch/ia64/lib/io.o is not included in the image because nothing built-in
needs __ia64_memcpy_fromio, etc., yet it may be called from a module. We
should force it to be linked in.
David Mosberger [Mon, 12 Jan 2004 03:20:44 +0000 (19:20 -0800)]
ia64: add generic defconfig file
Here's a generic_defconfig that works on all the ia64
platforms I'm aware of, and we can always update it if it's
missing a driver or two. Compile tested 'make compressed' and
'make modules', and boot tested on sn2, and I think Alex boot
tested on an HP machine.
Adrian Bunk [Sun, 11 Jan 2004 03:48:04 +0000 (22:48 -0500)]
[PATCH] qla1280.c doesn't compile
On Wed, Jan 07, 2004 at 11:28:31PM -0800, Andrew Morton wrote:
>...
> Changes since 2.6.1-rc1-mm2:
>...
> -qla1280-update.patch
> +qla1280-update-2.patch
>
> Updated qlogic patch
>...
I got the following compile error when trying to compile this driver
statically into a kernel with hotplug enabled:
<-- snip -->
...
drivers/scsi/qla1280.c:4849: error: `qla1280_remove_one' undeclared here
(not in a function)
drivers/scsi/qla1280.c:4849: error: initializer element is not constant
drivers/scsi/qla1280.c:4849: error: (near initialization for
`qla1280_pci_driver.remove')
make[2]: *** [drivers/scsi/qla1280.o] Error 1
<-- snip -->
Since I don't see a good reason why qla1280_remove_one is #ifdef'ed out
in the non-modular case the patch below fixes this problem by removing
two #ifdef's.
James Bottomley [Sat, 10 Jan 2004 16:14:57 +0000 (11:14 -0500)]
Mac SCSI fixes (from Matthias Urlichs)
From: Geert Uytterhoeven <geert@linux-m68k.org>
Mac SCSI fixes (from Matthias Urlichs):
- Inline functions need to be defined before being used.
- out_8() takes an address and a value, not the other way round.
James Bottomley [Sat, 10 Jan 2004 16:09:04 +0000 (11:09 -0500)]
sym2 speed selection fix
From: Alex Tomas <alex@clusterfs.com>
without following patch I couldn't get 160MB from my disk. removed line
restores previous clocking value (0 in my case). so, driver thinks disk
isn't DT-capable ...
Simon Kelley [Sat, 10 Jan 2004 14:59:37 +0000 (09:59 -0500)]
[wireless atmel] various updates
Below is a patch against 2.6.1-rc1 which has that fix and
quite a few other components. viz:
* Bumped version to 0.9
* Dmitry Torokhov's skb-leak and netif_carrier patches.
* Added a couple of fields to /proc/driver/atmel
* Fixed failure to call unregister_netdev in a couple of error-unwind
paths. I think this fixes the
unregister_netdevice: waiting for eth1 to become free.
bugs, but I don't have definative proof.
* Remove floating-point constants just in case the compiler doesn't.
* Fixed bug in scanning.
* Added firmware versioning, driver will search through different
available versions of firmware 'till it finds an available one.
* Changed firmware URL in configure help to a directory rather than a
file, so I can release new named versions.
* Added support for later releases of the firmware, which are WPA aware.
Firmware verion is automatically detected, so users who upgrade their
kernel but not their firmware won't have problems.
The PCI support and possible WPA support will have to wait for another day.
Mirko Lindner [Sat, 10 Jan 2004 11:17:56 +0000 (06:17 -0500)]
[PATCH] sk98lin-2.6: Kernel Update to Driver Version v6.21
Patch 1/4 (Update to version 6.21)
* Add: Common module update
* Add: New function for PCI initialization (SkGeInitPCI)
* Add: Yukon Plus changes (ChipID, PCI...)
* Add: Code for DIAG tool
* Fix: Problems while unloading the linux driver
* Fix: PrefPort=B not allowed on single NICs
* Fix: Fixed Linux System crash when using vlans
* Fix: Remove useless register_netdev
* Fix: Initalize Board before network configuration
* Fix: Modifications regarding try_module_get() and capable()
James Bottomley [Sat, 10 Jan 2004 10:37:47 +0000 (05:37 -0500)]
SCSI sg,st block layer TCQ fix
Usually, the mid layer ends the block tag (if one was in use)
early to release the resources. However, things like sg and st
don't go through the code path that does the release, so put a
fallback release in __scsi_release_request() for them.
skfp_probe used to be called from Space.c but isn't any more.
Therefore it no longer needs to be global. All the calls to insert_device()
pass skfp_probe as a second arg, so just use it directly.
Jeff, this also is janitor type stuff, so just put it in net-2.5-exp
Felipe Damasio [Sat, 10 Jan 2004 09:16:36 +0000 (04:16 -0500)]
[netdrvr 3c527] remove cli/sti
Richard Procter and I worked to remove cli/sti to add proper SMP support (I did the original stuff and Richard did the actual current code :)).
Besides that, Richard did a great jog improving the perfomance of the driver quite a bit:
- Improve mc32_command by 770% (438% non-inlined) over the semaphore version (at a cost of 1 sem + 2 completions per driver).
- Removed mutex covering mc32_send_packet (hard_start_xmit). This lets the interrupt handler operate concurrently and removes unnecessary locking. It makes the code only slightly more brittle
On Tue, Jan 06, 2004 at 07:33:25PM +0100, Adrian Bunk wrote:
> On Wed, Dec 31, 2003 at 12:36:49AM -0800, Linus Torvalds wrote:
> >...
> > Summary of changes from v2.6.0 to v2.6.1-rc1
> > ============================================
> >...
> > Patrick Mansfield:
> > o consolidate and log scsi command on send and completion
> >...
>
> This adds a #define TIMEOUT to scsi.h conflicting with a different
> TIMEOUT #define in drivers/scsi/eata_generic.h:
Sorry Adrian, here is a patch renaming TIMEOUT to TIMEOUT_ERROR. Still
not a good name for the usage in SCSI core, but it does not conflict, and
matches the other names for the IO completion results (SUCCESS, FAILED,
etc., they and others should really be prefixed with at least SCSI).
eata does not use the TIMEOUT it defines, but there are enough defines of
TIMEOUT that it could be a problem in other drivers.
Jes Sorensen [Sat, 10 Jan 2004 06:47:47 +0000 (01:47 -0500)]
[PATCH] qla1280
I am attaching the latest version of the qla1280 driver for inclusion in
the next 2.6.x release. It is mostly based on Christoph's cleanup work
and a couple of changes of my own. I don't know if it is too late for
2.6.1, but otherwise it would be nice to get it into 2.6.2.
I have built and tested this using 2.6.0-test11 on an ia64, but I don't
think there were any major SCSI changes since then.