- 05 Feb, 2004 38 commits
-
-
Alexander Viro authored
* killed imm_pb_claim() call in imm_init()
-
Alexander Viro authored
* switched imm to passing around references to imm_struct instead of host numbers.
-
Alexander Viro authored
* imm.c fed through Lindent, functions unused elsewhere (by now - all of them) made static.
-
Alexander Viro authored
paride has a ->private field for use by low-level drivers. It's not 64bit-clean - it's int, but is used to store a pointer (bpck6). Fix: replace with unsigned long, update typecasts in users.
-
Alexander Viro authored
pd_identify() converted to pd_special_command().
-
Alexander Viro authored
pd_init_units() merged into pd_detect(), pd_drive_count made local to pd_detect().
-
Alexander Viro authored
Now disk->present is not needed - we can always check for disk->gd. Field removed, pd_probe_drive() became void(struct pd_unit *), pd_detect() cleaned up,
-
Alexander Viro authored
Moved allocation and setup (but not adding) of gendisk into pd_probe_drive().
-
Alexander Viro authored
Switched everything except pd_identify() to use of special requests. New helper: pd_special_command() - builds special request, feeds it into queue and waits for completion. Moved pi_connect()/pi_disconnect() to the beginning/end of pi_identify.
-
Alexander Viro authored
Reordered stuff made pd_ready() inlined renamed ps_timeout to pd_timeout renamed ps_tq to fsm_tq renamed ps_set_intr to fsm_schedule removed unused pd_wait_open.
-
Alexander Viro authored
Moved calls of ->connect and ->disconnect into run_fsm(). The only change is that now do_pd_start_io() is ran when we are connected.
-
Alexander Viro authored
Equivalent transformation: now that all phase functions are called claimed, we can simplify the logics around claiming - new variable (pd_claimed) keeps track of claim/unclaim we'd done. We check it in the beginning of the loop and do claiming if it's not set.
-
Alexander Viro authored
Equivalent transformation: * phase = do_pd_io replaced with phase = NULL, corresponding check + open-coded equivalent added in run_fsm loop. * do_pd_io() is gone.
-
Alexander Viro authored
Equivalent transformation: next_request() call expanded.
-
Alexander Viro authored
Equivalent transformation: call of pi_do_claimed() in run_fsm() expanded; recursive call of run_fsm() replaced with loop.
-
Alexander Viro authored
Equivalent transformation: pi_unclaim() moved from phase functions to run_fsm().
-
Alexander Viro authored
Equivalent transformation: * calls of pi_disconnect() in phase functions expanded. * since both do_pd_read_start() and do_pd_write_start() are always called claimed (as the matter of fact, all phase functions except do_pd_io() are), we can replace call of pi_connect() with direct method call - pi_claim() is no-op there.
-
Alexander Viro authored
Equivalent transformation: * new type - enum action. phase functions return it now. run_fsm() looks at the result of phase() and does the corresponding action - next_request(), pi_do_claimed() or ps_set_intr().
-
Alexander Viro authored
Equivalent transformation: * ps_continuation renamed - it's "phase" now. * run_fsm() does what ps_tq_int() used to do * calls of pi_do_claimed(..., func) replaced with phase = func; pi_do_claimed(..., run_fsm); Now all phase functions are called from run_fsm() and we can start pulling the common code into it.
-
Alexander Viro authored
Equivalent transformation: do_pd_reqeust1() calls lambda-expanded, function killed. resulting call of ps_set_intr() in next_request() has been moved past dropping pd_lock.
-
Alexander Viro authored
Equivalent transformation: instead of having do_pd_request1() calling do_pd_io() via pi_do_claimed() and do_pd_io() calling do_pd_io_start() via ps_set_intr(), do it the other way round.
-
Alexander Viro authored
Equivalent transformation: Handling of bogus requests taken into do_pd_io_start() - we call next_request(0) as we would for any other error. We need to call pi_unclaim() before that - on other paths that would happen as a side effect of pi_disconnect(). Setting variables moved into do_pd_io_start() - they don't need pd_lock being held, so we can shift that outside.
-
Alexander Viro authored
Equivalent transformation: * new function: do_pd_io_start(). Checks pd_cmd and calls do_pd_read_start() or do_pd_write_start(). * do_pd_read() and do_pd_write() merged into do_pd_io(), which schedules execution of do_pd_io_start().
-
Alexander Viro authored
pd_busy gone - we can check for pd_req != NULL instead.
-
Alexander Viro authored
Logics around "if not ready, schedule the same step again" taken out of ps_tq_intr() and into the steps that need it.
-
Alexander Viro authored
Removed junk (see the analysis in the previous patch), removed ps_set_intr() arguments.
-
Alexander Viro authored
Preparation to crapectomy - expanded include of pseudo.h, split the part of pd_do_request() into pd_do_request1(), leaving in pd_do_request() only the check that FSM is not running and call of pd_do_request1(). Added locking analysis - it's in drivers/block/paride/Transition-notes and it will be used on the next step. Even though the subsequent steps are small, they rely on properties of the damn thing and proof of these properties is hairy. Amazing perversions people manage to produce when writing a trivial FSM - the code is very convoluted for no good reason...
-
Alexander Viro authored
* new helper: pi_schedule_claimed() - pi_do_claimed() sans the call of continuation if we don't have to wait; returns 1 if we don't have to wait and 0 otherwise.
-
Alexander Viro authored
daisy.c used to access the topology list with no locking whatsoever. Protected by spinlock, fixed numerous bugs in handling of the single-linked list (I'm not kidding - just take a look at the old parport_daisy_fini() and weep; it is supposed to go through a simple list and remove all entries that satisfy a condition).
-
Alexander Viro authored
bw-qcam.c turned into proper parport driver. Instead of (racy) scanning the list of ports we use ->attach() and ->detach().
-
Alexander Viro authored
parport_gsc.c turned into proper parisc driver; instead of scanning the list of ports upon rmmod in search of ones that had been created by us, we do cleanup where it belongs - in parisc driver ->remove().
-
Alexander Viro authored
A bunch of parport_enumerate() users was duplicating parport_find_...() without proper locking. Replaced with use of appropriate helpers, races closed.
-
Alexander Viro authored
We use a new mutex to protect all additions/removals of drivers and ports. That cures a lot of insanity: * driver removals can't hit us in the middle of attach_driver_chain(). Old code simply dies on that. * port removals can't hit us in the middle of driver registration. Again, old code dies on that. * driver ->detach() is allowed to block now. * we are guaranteed that by the time when parport_unregister_driver() returns, all ->detach() calls are finished. Old code did _not_ guarantee that (read: was inherently racy since rmmod of driver could race with port removal and get driver->detach(port) called after the module was gone). * we are guaranteed that driver->attach(port) won't be called more than once. With the old code that was a matter of luck. * removed piles and piles of braindead code.
-
Alexander Viro authored
Current tree has all allocated ports on portlist. However, most of the portlist users assume that we only have announced ports there and break badly if they happen to see the list after port driver has created a port (parport_register_port()) but before it finishes the setup (and calls parport_announce_port()). The only place that wants to see all allocated port is parport_register_port() itself and only to pick the first unused port number. We add a new list (all_ports) and put ports there when allocated; that list is kept ordered by port->number. Ports are placed on portlist only by parport_announce_port(). Gobs of shite in parport_register_port() removed, pile of races closed...
-
bk://gkernel.bkbits.net/libata-2.5Linus Torvalds authored
into home.osdl.org:/home/torvalds/v2.5/linux
-
Jeff Garzik authored
into redhat.com:/spare/repo/libata-2.5
-
http://typhoon.bkbits.net/typhoon-2.5Jeff Garzik authored
into redhat.com:/spare/repo/net-drivers-2.5
-
Simon Kelley authored
Add PCI device support - there are atmel_pci.ko and atmel_cs.ko modules and a library module called atmel.ko Tweak the PCMCIA card -> firmware table for new cards. Fix workarounds for uniquely broken 3com cards, which were rendered unuable by the 0.9 changes. Bump version to 0.91
-
- 04 Feb, 2004 2 commits
-
-
Matthew Wilcox authored
Hi Jes. I really do have a Rev. 5 card, and it works much better treated as a Tigon I than as a Tigon II.
-
Javier Achirica authored
-