kernel-ark/drivers
Ian Campbell 69a4d56bae [PATCH] pcmcia: fix i82365 request_region double usage
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f354942cb301fed273f423fb5c4f57bde3efc5b2
converted the check_region() calls in drivers/pcmcia/i82365.c into
request_regions.  Unfortunately this seems to have broken things.

isa_probe() used to call check_region() and then call add_pcic() which would
request_region().

Now isa_probe() calls request_region() and then calls add_pcic() which calls
request_region() again, this fails and add_pcic() returns immediately without
doing all the setup etc.

On the face of it the patch below fixes the problem, by not doing the second
request region in add_pcic().  I think this is preferable to remove the call
in isa_probe() since identify() touches the I/O regions and is called before
add_pcic().

However I haven't fully grokked the meaning of the code which follows the
request_region() in isa_probe(), so I'm not sure that the handling WRT
multiple sockets and multiple bridge chips is correct.  In particular I'm not
convinced that the regions for subsequent sockets and/or bridges will be
requested at all.  I suspect a more thorough reworking by someone who
understands what is going on there might be in order.

I should mention that I'm actually messing about with this on an ARM platform
with wacky memory and i/o mapping offsets etc, it doesn't quite work yet for
other reasons which preclude full testing etc, but I think the problem above
is still present for more normal x86 stuff.

Signed-off-by: Ian Campbell <icampbell@arcom.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-07 18:24:04 -07:00
..
acorn
acpi If ACPI doesn't find an irq listed, don't accept 0 as a valid PCI irq. 2005-07-02 10:35:33 -07:00
atm
base
block
bluetooth
cdrom
char [PATCH] mostly_read data section 2005-07-07 18:23:46 -07:00
cpufreq [PATCH] pm: fix u32 vs. pm_message_t confusion in cpufreq 2005-07-07 18:23:43 -07:00
crypto [CRYPTO] Update IV correctly for Padlock CBC encryption 2005-07-06 13:54:09 -07:00
dio
eisa
fc4
firmware
i2c [PATCH] openfirmware: generate device table for userspace 2005-07-06 12:55:20 -07:00
ide [PATCH] openfirmware: generate device table for userspace 2005-07-06 12:55:20 -07:00
ieee1394 ieee1394: fix broken signed char assumption. 2005-07-06 13:05:50 -07:00
infiniband [PATCH] IB uverbs: add mthca user QP support 2005-07-07 18:23:50 -07:00
input
isdn
macintosh [PATCH] openfirmware: implement hotplug for macio devices 2005-07-06 12:55:20 -07:00
mca
md
media [PATCH] v4l: LGDT3302 read status fix 2005-07-07 18:24:04 -07:00
message [PATCH] pm: more u32 vs. pm_message_t fixes 2005-07-07 18:23:43 -07:00
misc
mmc
mtd
net [PATCH] pm: more u32 vs. pm_message_t fixes 2005-07-07 18:23:43 -07:00
nubus
oprofile
parisc
parport
pci [PATCH] pm: more u32 vs. pm_message_t fixes 2005-07-07 18:23:43 -07:00
pcmcia [PATCH] pcmcia: fix i82365 request_region double usage 2005-07-07 18:24:04 -07:00
pnp
s390
sbus [SPARC]: bpp: remove sleep_on usage 2005-07-04 13:24:14 -07:00
scsi [PATCH] openfirmware: generate device table for userspace 2005-07-06 12:55:20 -07:00
serial [PATCH] openfirmware: generate device table for userspace 2005-07-06 12:55:20 -07:00
sh
sn
tc
telephony
usb
video [PATCH] coverity: fix fbsysfs null pointer check 2005-07-07 18:23:47 -07:00
w1
zorro
Kconfig
Makefile