Messages in this thread | | | Date | Wed, 15 Dec 1999 20:26:10 +0000 (GMT) | From | Riley Williams <> | Subject | read[bwl] and ioremap problem |
| |
Hi Linus, Alan.
> In short, the way to recognize a broken driver is to basically > search for drivers that use the non-ISA read/write functions, > WITHOUT using ioremap(). They need to be converted to either use > ioremap() OR to use the isa_ versions of the functions.
> Somebody could probably write a simple shell-script with a few > greps to easily highlight "suspicious" files.
Here's a script I wrote and ran through the linux-2.3.33/drivers directory. It should list all files containing read[bwl] that do not also contain ioremap and that's probably the first place to look...
===8<=== CUT ===>8===
#!/bin/bash cd /usr/src
function locate() { find linux-*/drivers -name '*.[ch]' $* }
function readdwl() { locate -exec grep 'read[bwl]' '{}' /dev/null ';' \ | cut -d : -f 1 | uniq | sort }
function process() { for Z in `readdwl` ; do if ! fgrep ioremap $Z > /dev/null ; then echo $Z fi done }
process | tee ~/ioremap exit 0
===8<=== CUT ===>8===
...and here's the output it gave me...
===8<=== CUT ===>8===
linux-2.3.33/drivers/acorn/net/ether1.c linux-2.3.33/drivers/acorn/net/ether3.c linux-2.3.33/drivers/atm/nicstarmac.c linux-2.3.33/drivers/block/macide.c linux-2.3.33/drivers/block/ps2esdi.c linux-2.3.33/drivers/block/smart1,2.h linux-2.3.33/drivers/block/xd.c linux-2.3.33/drivers/block/xd.h linux-2.3.33/drivers/char/agp/agp.h linux-2.3.33/drivers/char/bttv.h linux-2.3.33/drivers/char/buz.h linux-2.3.33/drivers/char/bw-qcam.c linux-2.3.33/drivers/char/console.c linux-2.3.33/drivers/char/i2c.c linux-2.3.33/drivers/char/ip2/i2hw.h linux-2.3.33/drivers/char/lp.c linux-2.3.33/drivers/char/msp3400.c linux-2.3.33/drivers/char/radio-cadet.c linux-2.3.33/drivers/char/saa5249.c linux-2.3.33/drivers/char/saa7110.c linux-2.3.33/drivers/char/saa7111.c linux-2.3.33/drivers/char/saa7146.h linux-2.3.33/drivers/char/vc_screen.c linux-2.3.33/drivers/char/zr36120.h linux-2.3.33/drivers/dio/dio.c linux-2.3.33/drivers/isdn/act2000/act2000_isa.c linux-2.3.33/drivers/isdn/eicon/eicon_io.c linux-2.3.33/drivers/isdn/eicon/eicon_isa.c linux-2.3.33/drivers/isdn/icn/icn.c linux-2.3.33/drivers/isdn/icn/icn.h linux-2.3.33/drivers/isdn/isdn_common.c linux-2.3.33/drivers/isdn/isdn_common.h linux-2.3.33/drivers/isdn/isdn_tty.c linux-2.3.33/drivers/isdn/pcbit/layer2.c linux-2.3.33/drivers/isdn/pcbit/layer2.h linux-2.3.33/drivers/isdn/sc/init.c linux-2.3.33/drivers/net/3c503.c linux-2.3.33/drivers/net/3c507.c linux-2.3.33/drivers/net/acenic.h linux-2.3.33/drivers/net/am79c961a.c linux-2.3.33/drivers/net/apne.c linux-2.3.33/drivers/net/arc-rimi.c linux-2.3.33/drivers/net/ariadne2.c linux-2.3.33/drivers/net/arlan.h linux-2.3.33/drivers/net/cs89x0.c linux-2.3.33/drivers/net/depca.c linux-2.3.33/drivers/net/e2100.c linux-2.3.33/drivers/net/ewrk3.c linux-2.3.33/drivers/net/fc/iph5526_novram.c linux-2.3.33/drivers/net/hplance.c linux-2.3.33/drivers/net/lance.c linux-2.3.33/drivers/net/pcmcia/wavelan_cs.h linux-2.3.33/drivers/net/sk98lin/h/skdrv1st.h linux-2.3.33/drivers/net/sk_g16.c linux-2.3.33/drivers/net/sk_mca.c linux-2.3.33/drivers/net/smc-mca.c linux-2.3.33/drivers/net/smc-ultra.c linux-2.3.33/drivers/net/smc-ultra32.c linux-2.3.33/drivers/net/sunhme.c linux-2.3.33/drivers/net/sunhme.h linux-2.3.33/drivers/net/tokenring/ibmtr.c linux-2.3.33/drivers/net/tokenring/ibmtr.h linux-2.3.33/drivers/net/wd.c linux-2.3.33/drivers/sbus/audio/cs4231.c linux-2.3.33/drivers/sbus/audio/cs4231.h linux-2.3.33/drivers/sbus/char/envctrl.c linux-2.3.33/drivers/sbus/char/sab82532.c linux-2.3.33/drivers/scsi/53c7,8xx.h linux-2.3.33/drivers/scsi/53c7xx.h linux-2.3.33/drivers/scsi/dtc.h linux-2.3.33/drivers/scsi/fdomain.c linux-2.3.33/drivers/scsi/g_NCR5380.h linux-2.3.33/drivers/scsi/in2000.c linux-2.3.33/drivers/scsi/ips.c linux-2.3.33/drivers/scsi/mac_esp.c linux-2.3.33/drivers/scsi/seagate.c linux-2.3.33/drivers/scsi/sim710.h linux-2.3.33/drivers/scsi/sym53c8xx_defs.h linux-2.3.33/drivers/scsi/t128.c linux-2.3.33/drivers/scsi/t128.h linux-2.3.33/drivers/sound/es1370.c linux-2.3.33/drivers/sound/es1371.c linux-2.3.33/drivers/sound/lowlevel/awe_wave.c linux-2.3.33/drivers/sound/msnd.h linux-2.3.33/drivers/sound/msnd_pinnacle.c linux-2.3.33/drivers/sound/nm256.h linux-2.3.33/drivers/usb/acm.c linux-2.3.33/drivers/usb/ohci-debug.c linux-2.3.33/drivers/usb/ohci-hcd.h linux-2.3.33/drivers/usb/ohci-root-hub.c linux-2.3.33/drivers/usb/ohci.h linux-2.3.33/drivers/video/cgsixfb.c linux-2.3.33/drivers/video/creatorfb.c linux-2.3.33/drivers/video/cyber2000fb.h linux-2.3.33/drivers/video/fbcon-afb.c linux-2.3.33/drivers/video/fbcon-cfb16.c linux-2.3.33/drivers/video/fbcon-cfb2.c linux-2.3.33/drivers/video/fbcon-cfb24.c linux-2.3.33/drivers/video/fbcon-cfb32.c linux-2.3.33/drivers/video/fbcon-cfb4.c linux-2.3.33/drivers/video/fbcon-cfb8.c linux-2.3.33/drivers/video/fbcon-ilbm.c linux-2.3.33/drivers/video/fbcon-iplan2p2.c linux-2.3.33/drivers/video/fbcon-iplan2p4.c linux-2.3.33/drivers/video/fbcon-iplan2p8.c linux-2.3.33/drivers/video/fbcon-mac.c linux-2.3.33/drivers/video/fbcon-mfb.c linux-2.3.33/drivers/video/fbcon-vga-planes.c linux-2.3.33/drivers/video/fbcon-vga.c linux-2.3.33/drivers/video/fbcon.c linux-2.3.33/drivers/video/hpfb.c linux-2.3.33/drivers/video/leofb.c linux-2.3.33/drivers/video/mdacon.c linux-2.3.33/drivers/video/newport_con.c linux-2.3.33/drivers/video/promcon.c linux-2.3.33/drivers/video/tgafb.h linux-2.3.33/drivers/video/vga.h linux-2.3.33/drivers/video/vgacon.c
===8<=== CUT ===>8===
Hope that helps...
Best wishes from Riley.
* Copyright (C) 1999, Memory Alpha Systems. * All rights and wrongs reserved.
+----------------------------------------------------------------------+ | There is something frustrating about the quality and speed of Linux | | development, ie., the quality is too high and the speed is too high, | | in other words, I can implement this XXXX feature, but I bet someone | | else has already done so and is just about to release their patch. | +----------------------------------------------------------------------+ * http://www.memalpha.cx/Linux/Kernel/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |