Please do not edit this list for now. Email changes to me if you like. Nick Piggin <piggin@cyberone.com.au>
last updated from 2.6.0-test10-mm1
rmk: unconverted keyboard/mouse drivers (there's a deadline of 2.6.0
viro: large absence of locking.
viro: parport is nearly as bad as that and there the code is more hairy.
(Albert Cahalan) Lots of people (check Google) get this message from the
There seem to be too many reports of keyboards and mice failing or acting
rmk: UCB1[23]00 drivers, currently sitting in drivers/misc in the ARM
viro: actually, misc.c has a good chance to die. With cdev-cidr that's
dongle drivers need to be converted to sir-dev
irport need to be converted to sir-kthread
new drivers (irtty-sir/smsc-ircc2/donauboe) need more testing
rmk: Refuse IrDA initialisation if sizeof(structures) is incorrect (I'm
hch: shost->my_devices isn't locked down at all
Convert am53c974, dpt_i2o, initio and pci2220i to DMA-mapping
Make inia100, cpqfc, pci2000 and dc390t compile
-
wd33c99 based: a2091 a3000 gpv11 mvme174 sgiwd93
53c7xx based: amiga7xxx bvme6000 mvme16x initio am53c974 pci2000 pci2220i dc390t
-
It also might be possible to shift the 53c7xx based drivers over to 53c700 which does the new EH stuff, but I don't have the hardware to check such a shift.
For the non-compiling stuff, I've probably missed a few that just aren't compilable on my platforms, so any updates would be welcome. Also, are some of our non-compiling or unconverted drivers obsolete?
rmk: I have a pending todo: I need to put the scsi error handling through
James B: USB hot-removal crash: "It's a known scsi refcounting issue."
James B: refcounting issues in SCSI and in the block layer.
AIO/direct-IO writes can race with truncate and wreck filesystems.
viro: fs/char_dev.c needs removal of aeb stuff and merge of cdev-cidr.
forward-port sct's O_DIRECT fixes (Badari has a patch)
viro: there is some generic stuff for namei/namespace/super, but that's a
andi: also soft needs to be fixed - there are quite a lot of
trond: NFS has a mmap-versus-truncate problem
Alan: 32bit uid support is *still* broken for process accounting.
viro: core sysctl code is racy. And its interaction wiuth sysfs
(ingo) rwsems (on x86) are limited to 32766 waiting processes. This
kobject refcounting (comments from Al Viro):
_anything_ can grab a temporary reference to kobject. IOW, if kobject is embedded into something that could be freed - it _MUST_ have a destructor and that destructor _MUST_ be the destructor for containing object.
Any violation of the above (and we already have a bunch of those) is a user-triggerable memory corruption.
We can tolerate it for a while in 2.5 (e.g. during work on susbsystem we can decide to switch to that way of handling objects and have subsystem vulnerable for a while), but all such windows must be closed before 2.6 and during 2.6 we can't open them at all.
All block drivers which control multiple gendisks with a single
GFP_DMA32 (or something like that). Lots of ideas. jejb, zaitcev,
access_process_vm() doesn't flush right. We probably need new flushing
UDP apps can in theory deadlock, because the ip_append_data path can end
up sleeping while the socket lock is held.
It is OK to sleep with the socket held held, normally. But in this case the sleep happens while waiting for socket memory/space to become available, if another context needs to take the socket lock to free up the space we could hang.
I sent a rough patch on how to fix this to Alexey, and he is analyzing the situation. I expect a final fix from him next week or so.
Semantics for IPSEC during operations such as TCP connect suck currently.
When we first try to connect to a destination, we may need to ask the IPSEC key management daemon to resolve the IPSEC routes for us. For the purposes of what the kernel needs to do, you can think of it like ARP. We can't send the packet out properly until we resolve the path.
What happens now for IPSEC is basically this:
O_NONBLOCK: returns -EAGAIN over and over until route is resolved
!O_NONBLOCK: Sleeps until route is resolved
These semantics are total crap. The solution, which Alexey is working on, is to allow incomplete routes to exist. These "incomplete" routes merely put the packet onto a "resolution queue", and once the key manager does it's thing we finish the output of the packet. This is precisely how ARP works.
I don't know when Alexey will be done with this.
viro: 64-bit dev_t (not a mustfix for 2.6.0). 32-bit dev_t is done, 64-bit
There are about 60 or 70 security related checks that need doing
A couple of hundred real looking bugzilla bugs
