Re: Rewriting floppy.c was Re: Free Linux Driver Development!

From: Bartlomiej Zolnierkiewicz
Date: Thu Feb 01 2007 - 08:12:45 EST


On 31 Jan 2007 11:08:14 +0100, Andi Kleen <ak@xxxxxxx> wrote:
Greg KH <greg@xxxxxxxxx> writes:
>
> What? Throw a fresh-faced newbie instantly into the tar-pit of despair
> that floppy.c is? Do you want everyone just to run screaming from
> kernel development never to be seen again?

floppy.c is not really that ugly or complicated...

It just needs some care:

* cleanup of the over-usage of macros (DP macro etc)
* DocBook documentation would be nice
* make debugging printks optional by using macros in a smart way
(see libata code for examples)
* tracking and fixing current regressions

Once the above is done there would be more room
for the future cleanups and improvements like:

* using bios directly in copy_buffer()
(or avoiding copy completely if possible - need somebody to look at code)
* map user pages instead of memcpy-ing them in fd_copy{in,out}()
* unifying/merging arch specific code into floppy.c (not sure of this one)
* smarter way to handle IRQs

floppy.c rewrite offers an unique chance to learn by practice
from doing simple tasks (macros cleanup) to more advances ones
(involving block layer mechanisms) up to really difficult ones
(IRQ/"actual work" handling methods).

I could help with reviewing patches in case anybody is interested
and have patience to deal with few days delays for reply. However
please don't add me to MAINTAINERS as floppy diver maintainer.

:)

Doing a from-scratch rewrite of floppy.c only supporting new
hardware and no obscure formats ("newfloppy.c") would be an excellent
newbie project imho. This means for someone who is still pretty
new, but wants to get their fingers wet with more complicated changes.

Then over time (old-)floppy.c could be phased out.

* this is unlikely that we need to add support for new hardware
* by doing the rewrite from scratch we will lose changes history
and possibility to easily track regressions
* for a long time we would have to deal with both drivers

This is just not worth it IMHO.

Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/