Bug 5061

Summary: unable to remove socket power
Product: Drivers Reporter: Sanjoy Mahajan (sanjoy)
Component: PCMCIAAssignee: linux-pcmcia
Status: RESOLVED CODE_FIX    
Severity: normal CC: akpm, linux
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.13-rc6 Subsystem:
Regression: --- Bisected commit-id:
Bug Depends on:    
Bug Blocks: 5062    
Attachments: [PATCH] pcmcia/yenta: avoid PCI write posting problems

Description Sanjoy Mahajan 2005-08-13 21:45:43 UTC
Distribution: Debian testing

Hardware Environment: TP 600X, CardBus bridge: Texas Instruments PCI1450, using
Intersil (prism54) wlan card

Software Environment: in-kernel pcmcia drivers

Problem Description: 'cardctl eject' produces 
  PCMCIA: socket e248602c: *** DANGER *** unable to remove socket power

Ejecting the card physically does not produce those messages.

I notice this problem only with a 'low-latency preemptible kernel' (how the
choice is described in the make menuconfig).  In particular, the diff between
the kernel config that does not show the problem and the kernel config that does:

+CONFIG_DEBUG_PREEMPT=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_LOCK_KERNEL=y
-CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PREEMPT_BKL=y
+CONFIG_PREEMPT=y



Steps to reproduce:

Stick in my WLAN card (prism54 chipset), then 'cardctl eject'
Comment 1 Daniel Ritz 2005-08-17 14:11:45 UTC
Created attachment 5661 [details]
[PATCH] pcmcia/yenta: avoid PCI write posting problems

[PATCH] pcmcia/yenta: avoid PCI write posting problems

extend cb_writel(), exca_writeb(), exca_writel() to do a read[lb]() after
the write[lb]() to avoid possible problem with PCI write posting.

Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>