original_kernel/drivers/pcmcia
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
..
Kconfig [PATCH] pcmcia: select crc32 in Kconfig for PCMCIA 2005-06-27 18:03:21 -07:00
Makefile [PATCH] pcmcia: move pcmcia resource handling out of cs.c 2005-06-27 18:03:20 -07:00
au1000_db1x00.c
au1000_generic.c
au1000_generic.h
au1000_pb1x00.c
au1000_xxs1500.c
cardbus.c
cirrus.h
cistpl.c [PATCH] pcmcia: resource handling fixes 2005-06-27 18:03:21 -07:00
cs.c [PATCH] pcmcia: release_class 2005-06-27 18:03:20 -07:00
cs_internal.h [PATCH] pcmcia: rename some functions 2005-06-27 18:03:19 -07:00
ds.c [PATCH] pcmcia: fix modalias attribute in sysfs 2005-06-30 08:45:08 -07:00
ds_internal.h [PATCH] pcmcia: merge struct pcmcia_bus_socket into struct pcmcia_socket 2005-06-27 18:03:19 -07:00
hd64465_ss.c
i82092.c
i82092aa.h
i82365.c [PATCH] pcmcia: fix i82365 request_region double usage 2005-07-07 18:24:04 -07:00
i82365.h
m32r_cfc.c
m32r_cfc.h
m32r_pcc.c
m32r_pcc.h
o2micro.h
pcmcia_compat.c [PATCH] pcmcia: ds.c cleanup 2005-06-27 18:03:20 -07:00
pcmcia_ioctl.c [PATCH] pcmcia: properly handle all errors of register_chrdev 2005-06-27 18:03:22 -07:00
pcmcia_resource.c [PATCH] pcmcia: 8 and 16 bit access for static_map 2005-06-27 18:03:22 -07:00
pd6729.c
pd6729.h
pxa2xx_base.c
pxa2xx_base.h
pxa2xx_lubbock.c
pxa2xx_mainstone.c
pxa2xx_sharpsl.c
ricoh.h
rsrc_mgr.c [PATCH] pcmcia: move pcmcia resource handling out of cs.c 2005-06-27 18:03:20 -07:00
rsrc_nonstatic.c [PATCH] ACPI-based PCI resources: PCMCIA bugfix, but resources missing in trees 2005-06-27 18:03:22 -07:00
sa11xx_base.c
sa11xx_base.h
sa1100_assabet.c
sa1100_badge4.c
sa1100_cerf.c
sa1100_generic.c
sa1100_generic.h
sa1100_h3600.c
sa1100_jornada720.c
sa1100_neponset.c
sa1100_shannon.c
sa1100_simpad.c
sa1111_generic.c
sa1111_generic.h
soc_common.c
soc_common.h
socket_sysfs.c [PATCH] pcmcia: rescan bus always upon echoing into setup_done 2005-06-27 18:03:08 -07:00
tcic.c
tcic.h
ti113x.h
topic.h
vg468.h
vrc4171_card.c
vrc4173_cardu.c
vrc4173_cardu.h
yenta_socket.c [PATCH] pci: yenta cardbus fix 2005-06-27 18:03:05 -07:00
yenta_socket.h