Linux 2.5 Status/TODO page.
This list is a resurrection of what Ted Ts'o kept at
http://linux24.sourceforge.net/.
As with its predecessor, its almost always out of date, please send updates
to davej@suse.de
Hopefully up to date as of 2.5.25
Latest version of this list is always available at http://www.codemonkey.org.uk/Linux-2.5.html
1. Should Be Fixed Already (Confirmation Wanted)
- blkmtd tries to create two slab caches with the same name.
2. Capable Of Corrupting Your FS/data.
3. Security.
- Fix module remove race bug (still to be done: TTY, ldisc, I2C)
4. Boot Time Failures.
- preempt is tickling a bug on some systems in sys_wait4() that
only seems to trigger when slab poisoning is enabled.
5. Compile errors.
- Still a few things are broken due to missing include
- LVM is currently broken deliberately.
This is likely to be dropped soon in favour of LVM2
- x86 mpparse undeclared reference to mp_ioapic_routing
- Zoran zr36120 driver needs quite a bit of attention. Still uses
now obsolete i2c-old.h
- Various SCSI drivers fail compilation in 2.5-dj due to removal of the
old-style error handling. Read this document
for info on how to fix.
- Various framebuffer drivers fail to compile due to an incomplete merge.
- IDE fails if CONFIG_BLK_DEV_IDEPCI=n with ide.c:2845: structure has no member named `pci_dev'
- undefined reference to `ahc_tailq' 'ahc_shutdown' etc in scsidrv.o
- Intermezzo needs attention.
- Still uses i_zombie
- not up to date with scheduler changes (uses p_pptr)
- Cyclades resource problems.
- drivers/char/cyclades.c:5096: structure has no member named `resource'
- drivers/char/cyclades.c:5097: structure has no member named `res_start'
- drivers/char/cyclades.c:5098: structure has no member named `res_len'
- drivers/char/cyclades.c:5286: structure has no member named `resource'
- drivers/char/cyclades.c:5287: structure has no member named `res_start'
- drivers/char/cyclades.c:5288: structure has no member named `res_len'
- Numerous drivers broken with 'virt_to_bus_not_defined_use_pci_map',
'bus_to_virt_not_defined_use_pci_map' or similar warnings. See Documentation/DMA-mapping.txt
There is a workaround in -dj for those who don't have the smarts to fix these.
- drivers/char/synclink.c
- drivers/block/cpqarray.c
- drivers/block/DAC960.c
- drivers/net/rrunner.c
- drivers/net/rcpci45.c
- drivers/net/tlan.c
- drivers/net/defxx.c
- drivers/scsi/advansys.c
- drivers/scsi/BusLogic.c
- drivers/scsi/dpt_i2o.c
- drivers/scsi/ips.c
- drivers/scsi/eata_dma.c
- drivers/scsi/scsiiom.c
- drivers/scsi/AM53C974.c
- drivers/scsi/atp870u.c
- drivers/scsi/gdth.c
- drivers/scsi/ini9100u.c
- drivers/scsi/inia100.c
- drivers/message/i2o/i2o_core.c
- drivers/message/i2o/i2o_config.c
- drivers/message/i2o/i2o_block.c
- drivers/message/i2o/i2o_lan.c
- drivers/message/i2o/i2o_scsi.c
- Space.c missing {'s in struct definitions
- Some kdev_t issues remain (mostly fixed, a few more fixes are in -dj)
- drivers/scsi/fd_mcs.c:1397: invalid operands to binary &
- sound/oss/msnd_pinnacle.c:644: invalid operands to binary &
- drivers/telephony/ixj.c:2277: invalid operands to binary &
- Various items still in need of bio updates.
- drivers/ide/ataraid.c
- In function `ataraid_make_request':
- 105: structure has no member named `b_rdev'
- In function `ataraid_split_request':
- 182: structure has no member named `b_rsector'
- 193: too many arguments to function `generic_make_request'
- 194: too many arguments to function `generic_make_request'
- In function `ataraid_init':
- 249: `hardsect_size' undeclared (first use in this function)
- In function `ataraid_exit':
- 289: `hardsect_size' undeclared (first use in this function)
- drivers/ide/pdcraid.c
- In function `pdcraid0_make_request':
- 214: structure has no member named `b_rsector'
- 228: structure has no member named `b_rdev'
- 235: structure has no member named `b_rdev'
- 235: structure has no member named `b_rdev'
- 277: structure has no member named `b_rdev'
- 278: structure has no member named `b_rsector'
- 320: too many arguments to function `generic_make_request'
- In function `read_disk_sb':
- 434: incompatible type for argument 1 of `put_dev_sector'
- In function `probedisk':
- 466: incompatible type for argument 1 of `bdget'
- In function `pdcraid_init_one':
- 552: invalid operands to binary !=
- drivers/ide/hptraid.c
- In function `hptraid_make_request':
- 149: structure has no member named `b_rsector'
- 163: structure has no member named `b_rdev'
- 170: structure has no member named `b_rdev'
- 217: structure has no member named `b_rdev'
- 218: structure has no member named `b_rsector'
- In function `read_disk_sb':
- 238: incompatible type for argument 1 of `put_dev_sector'
- In function `probedisk':
- 271: incompatible type for argument 1 of `bdget'
- 318: too few arguments to function `blkdev_put'
- In function `hptraid_init_one':
- 371: invalid operands to binary !=
- drivers/scsi/NCR5380.c
- drivers/scsi/NCR5380.c:619: `io_request_lock' undeclared (first use in this function)
- drivers/block/DAC960.c
- 1948: too few arguments to function `blk_init_queue'
- 1961: structure has no member named `MaxSectorsPerRequest
- drivers/cdrom/sbpcd.c
- In function `sbpcd_end_request':
- drivers/cdrom/sbpcd.c:4884: structure has no member named `queue'
- drivers/cdrom/sbpcd.c: In function `sbpcd_init':
- drivers/cdrom/sbpcd.c:5861: too few arguments to function `blk_init_queue'
- drivers/cdrom/sbpcd.c:5919: incompatible types in assignment
- drivers/mtd/ftl.c:1358: too few arguments to function `blk_init_queue'
- drivers/mtd/nftlcore.c:1030: too few arguments to function `blk_init_queue
- drivers/message/i2o/i2o_block.c:1425: too few arguments to function `blk_init_queue'
- drivers/message/i2o/i2o_block.c:1822: too few arguments to function `blk_init_queue'
- drivers/md/raid5.c
- drivers/md/multipath.c
- Various SCSI drivers in need of ->address work.
- drivers/net/fc/iph5526.c
- drivers/scsi/advansys.c
- drivers/scsi/pci2000.c
- drivers/scsi/pci2220i.c
- drivers/scsi/BusLogic.c
- drivers/scsi/dpt_i2o.c
- drivers/scsi/aha152x.c
- drivers/scsi/aha1740.c
- drivers/scsi/fd_mcs.c
- drivers/scsi/fdomain.c
- drivers/scsi/in2000.c
- drivers/scsi/NCR5380.c
- drivers/scsi/in2000.c
- drivers/scsi/ips.c
- drivers/scsi/NCR53c406a.c
- drivers/scsi/sym53c416.c
- drivers/scsi/seagate.c
- drivers/scsi/eata_pio.c
- drivers/scsi/NCR53C9x.c
- drivers/scsi/scsiiom.c
- drivers/scsi/AM53C974.c
- drivers/scsi/megaraid.c
- drivers/scsi/atp870u.c
- drivers/scsi/gdth.c
- drivers/scsi/ini9100u.c
- drivers/scsi/inia100.c
- drivers/scsi/scsi_debug.c.
- drivers/usb/storage/datafab.c
- drivers/usb/storage/jumpshot.c
- drivers/message/i2o/i2o_scsi.c
- drivers/scsi/53c7,8xx.c
- drivers/scsi/gdth.c:3346: macro `GDTH_UNLOCK_SCSI_DONE' used with too many (2) args
- drivers/scsi/megaraid.c
- In function `megadev_ioctl':
- 4560: wrong type argument to unary exclamation mark
- In function `mega_del_logdrv':
- 5107: `IO_LOCK' undeclared (first use in this function)
- drivers/scsi/gdth_proc.c
- 1393: macro `GDTH_LOCK_SCSI_DONE' used with just one arg
- 1393: parse error before `)'
- 1393: invalid type argument of `->'
- 1395: `dev' undeclared (first use in this function)
- drivers/scsi/cpqfcTSinit.c
- In function `cpqfcTS_ioctl':
- 597: `wait' undeclared (first use in this function)
- In function `cpqfcTS_TargetDeviceReset':
- 1536: `wait' undeclared (first use in this function)
- drivers/ieee1394/pcilynx.c
- In function `mem_open':
- drivers/ieee1394/pcilynx.c:647: `num_of_cards' undeclared (first use in this function)
- drivers/ieee1394/pcilynx.c:647: `cards' undeclared (first use in this function)
- drivers/ieee1394/pcilynx.c: In function `aux_poll':
- drivers/ieee1394/pcilynx.c:706: `cards' undeclared (first use in this function)
- drivers/scsi/pci2220i.c:37: #error Convert me to understand page+offset based scatterlists
- drivers/scsi/53c700.scr
- :68: unterminated character constant
- 163: unterminated character constant
- 190: unterminated character constant
- drivers/scsi/ibmmca.c
- In function `interrupt_handler':
- 508: request for member `host_lock' in something not a structure or union
- 1445: request for member `host_lock' in something not a structure or union
- drivers/scsi/scsiiom.c
- 267: `DC390_LOCK_IO' undeclared (first use in this function)
- 343: `DC390_UNLOCK_IO' undeclared (first use in this function)
- drivers/scsi/tmscsim.c
- In function `dc390_set_info':
- 2561: request for member `pScsiHost' in something not a structure or union
- 2610: `p' undeclared (first use in this function)
- drivers/ieee1394/pcilynx.c
- In function `mem_open':
- 647: `num_of_cards' undeclared (first use in this function)
- 647: `cards' undeclared (first use in this function)
- In function `aux_poll':
- 706: `cards' undeclared (first use in this function)
-
- drivers/mtd/devices/blkmtd.c: In function `blkmtd_erase':
- drivers/mtd/devices/blkmtd.c:549: incompatible type for argument 1 of `bdevname'
- drivers/mtd/ftl.c:
- In function `ftl_reread_partitions':
- 1179: `whole' undeclared (first use in this function)
- 1175: label `leave' used but not defined
- In function `do_ftl_request':
- 1206: switch quantity not an integer
- In function `ftl_notify_add':
- 1297: incompatible type for argument 1 of `ftl_reread_partitions'
- drivers/video/cyber2000fb.c: In function `cyberpro_pci_probe':
- 1707: `MCLK_MULT' undeclared (first use in this function)
- 1708: `MCLK_DIV' undeclared (first use in this function)
- drivers/net/wan/farsync.c still uses `rmem_start' & `rmem_end'
- vesafb needs virt_to_bus work. patch in -dj
- Miro radio driver needs includes fixing due to ALSA. patch in -dj
- net/core/dev.c:1465: void value not ignored as it ought to be
6. Oopses / obvious bugs / Needs checking / broken userspace.
- Sebastian Droege reports mounting CDs via ide-scsi causes
oops in blk_rq_map_sg()
- Aaron Tiensivu reports that between
2.5.6 to 2.5.7, something in the netfilter changes broke his setup
where packets come in eth0 and go out eth1
- David Macbanay reports that
krecord closes right after start since 2.5.6. Worked fine between 2.5.5 to 2.5.6pre3
- David Macbanay also reports that
sometime after kernel 2.5.1 the Evolution email program locks up whenever
Calender, Tasks, or Contacts is selected. I have to go to another terminal
and kill it.
UPDATE: this seems to be an evolution problem
- IDE floppy oops. (Triggers BUG_ON() in elevator.c:237)
BUG_ON(list_entry_rq(insert_here->next)->flags & REQ_STARTED);
- 2.5.17 changed the format of /proc/meminfo. Programs relying on
it being in the old format are likely broken. One particularly bad
breakage is 'gtop'.
- tyketto at wizard.com reports that since 2.5.16, the cdrom ioctls
haven't been working as a non-root user, making apps like workbone fail.
- Some systems oops in the IDE TCQ code.
7. In Progress.
8. Obvious Projects For People (well if you have the hardware..)
- Numerous drivers still need bio work.
- Make syncppp use new ppp code.
- Fix SPX socket code. In progress (acme?)
- VIA timer issues. Workaround in old 2.4-ac may not be correct approach
- ide-scsi oops on load
9. Fix Exists But Isnt Merged.
fixed in -dj
- khubd zombie process.
- Update SGI VisWS to new-style IRQ handling (Ingo)
Visws code needs updating period. Patches are available at
http://sf.net/projects/linux-visws.
Should probably go in after the x86 subarch patches.
- Fix boards with different TSC per CPU and kill TSC use
Detection framework present in old -ac, switchover code not implemented
- Devfs races (mostly done - Al Viro)
- mm->rss is modified in some places without holding the page_table_lock (sct)
- VM: page->mapping->flush() callback in page_launder() for easier
integration with journaling filesystem and maybe the network
filesystems
- Floppy driver needs io port reservation fixed to cooperate with PNPBIOS
(AntonA's fix in -dj should work).
- Various LTP tests fail, and numerous patches fixing them exist.
10. To Do.
- This <"http://linus.bkbits.net:8080/linux-2.5/patch@1.248.2.6?nav=index.html|ChangeSet|cset@1.248.2.6">Changeset
introduced a problem where dbench 64 on a small partition with 1k block
sizes causes oopsen.
- readprofile seems to be not profiling a lot of functions any more.
- OV511 vfrees from timer context.
- PS2 driver needs io port reservation fixed to cooperate with PNPBIOS
per super block write_super needs an async flag
- VM: physical->virtual reverse mapping, so we can do much better page
aging with less CPU usage spikes
- VM: better IO clustering for swap (and filesystem) IO
- VM: move all the global VM variables, lists, etc. into the pgdat
struct for better NUMA scalability
- VM: (maybe) some QoS things, as far as they are major improvements
with minor intrusion
- VM: thrashing control, maybe process suspension with some forced swapping ?
- VM: include Ben LaHaise's code, which moves readahead to the VMA level,
this way we can do streaming swap IO, complete with drop_behind()
- Union mount (Al Viro)
- Per Process rtsigio limit
- Check all devices use resources properly (Everyone now has to use
request_region and check the return since we no longer single thread
driver inits in all module cases. Also memory regions are now
requestable and a lot of old drivers dont know this yet. -- Alan
Cox. Most common drivers are now done, as of pre10)
- Protection on i_size (sct) [Al Viro mostly done]
- Potential races in file locking code (Christian Ehrhardt -- patch
which may fix some of these posted by trond, at
http://boudicca.tux.org/hypermail/linux-kernel/2000week45/0404.html)
- locks_verify_area checks the wrong range if O_APPEND is set and
the current file position is not at the end of the file.
- ditto if the file position changes between the call to
locks_verify_area and the actual read/write (requires a shared
file pointer, an attacker can use this to circumvent virtually
any mandatory lock).
- active writes should prevent anyone from getting mandatory
locks for the area beeing written.
- active reads should prevent anyone from getting mandatory write
locks for the area beeing read.
- Possible race in b-tree code for HFS, HPFS, NTFS: insert into the
tree whild doing a readdir (Matthew Wilcox)
- Eepro100 driver can sometimes report out of resources on reboot
(Josue Emmanuel Amaro) (and at other times, according to Jeff Garzik)
- A deadlock fix for nbd went into 2.4.18rc2ac2. 2.5 needs
a bio-fied version of this fix. Steve Whitehouse has a patch in progress
- x86 sub-arch support.
- Cache colour the start of stack. (See old 2.4-ac)
11. To Do But Non Showstopper
- Various items on the Janitor TODO.
- Various LTP tests still fail.
- Dependancies of various includes are still over complex.
Graph of is barfbag material. It's likely
removing inclusion of sched.h from more places would fix this
incestious relationship.
12. To Check.
13. Probably Post 2.6
This list sort-of kept up to date by davej.