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'
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>