mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
ide: use per-device request queue locks (v2)
* Move hack for flush requests from choose_drive() to do_ide_request(). * Add ide_plug_device() helper and convert core IDE code from using per-hwgroup lock as a request lock to use the ->queue_lock instead. * Remove no longer needed: - choose_drive() function - WAKEUP() macro - 'sleeping' flag from ide_hwif_t - 'service_{start,time}' fields from ide_drive_t This patch results in much simpler and more maintainable code (besides being a scalability improvement). v2: * Fixes/improvements based on review from Elias: - take as many requests off the queue as possible - remove now redundant BUG_ON() Cc: Elias Oltmanns <eo@nebensachen.de> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
631de3708d
commit
201bffa464
4 changed files with 79 additions and 159 deletions
|
@ -603,8 +603,6 @@ struct ide_drive_s {
|
|||
unsigned long dev_flags;
|
||||
|
||||
unsigned long sleep; /* sleep until this time */
|
||||
unsigned long service_start; /* time we started last request */
|
||||
unsigned long service_time; /* service time of last request */
|
||||
unsigned long timeout; /* max time to wait for irq */
|
||||
|
||||
special_t special; /* special action flags */
|
||||
|
@ -872,8 +870,6 @@ typedef struct hwgroup_s {
|
|||
|
||||
/* BOOL: protects all fields below */
|
||||
volatile int busy;
|
||||
/* BOOL: wake us up on timer expiry */
|
||||
unsigned int sleeping : 1;
|
||||
/* BOOL: polling active & poll_timeout field valid */
|
||||
unsigned int polling : 1;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue