diff options
| author | Alexander Viro <viro@math.psu.edu> | 2002-10-28 02:50:28 -0800 |
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.(none)> | 2002-10-28 02:50:28 -0800 |
| commit | 1bec5152a23e778ddafe587bdf9736a69346e633 (patch) | |
| tree | 3f90f2ec8a319877a80a725b7c047a17be57e2cf /drivers/block | |
| parent | 288ed82d5d91aa860a2de4b795d542121928429b (diff) | |
[PATCH] randomness made per-disk
* per-major array eliminated, every disk is a separate source of
randomness
Diffstat (limited to 'drivers/block')
| -rw-r--r-- | drivers/block/DAC960.c | 4 | ||||
| -rw-r--r-- | drivers/block/floppy.c | 2 | ||||
| -rw-r--r-- | drivers/block/genhd.c | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index dca532fef7a2..37e1713eeafb 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c @@ -3014,7 +3014,7 @@ static void DAC960_V1_ProcessCompletedCommand(DAC960_Command_T *Command) complete(Command->Completion); Command->Completion = NULL; } - add_blkdev_randomness(DAC960_MAJOR + Controller->ControllerNumber); + add_disk_randomness(Controller->disks[Command->LogicalDriveNumber]); } else if ((CommandStatus == DAC960_V1_IrrecoverableDataError || CommandStatus == DAC960_V1_BadDataEncountered) && @@ -4120,7 +4120,7 @@ static void DAC960_V2_ProcessCompletedCommand(DAC960_Command_T *Command) complete(Command->Completion); Command->Completion = NULL; } - add_blkdev_randomness(DAC960_MAJOR + Controller->ControllerNumber); + add_disk_randomness(Controller->disks[Command->LogicalDriveNumber]); } else if (Command->V2.RequestSense.SenseKey == DAC960_SenseKey_MediumError && diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 7206ab3847a5..ee44a5a62baf 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -2297,7 +2297,7 @@ static inline void end_request(struct request *req, int uptodate) { if (end_that_request_first(req, uptodate, current_count_sectors)) return; - add_blkdev_randomness(MAJOR_NR); + add_disk_randomness(req->rq_disk); floppy_off((int)req->rq_disk->private_data); blkdev_dequeue_request(req); end_that_request_last(req); diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c index 24200d33cf0a..a7598b30a7ba 100644 --- a/drivers/block/genhd.c +++ b/drivers/block/genhd.c @@ -289,6 +289,7 @@ EXPORT_SYMBOL(disk_devclass); static void disk_release(struct device *dev) { struct gendisk *disk = dev->driver_data; + kfree(disk->random); kfree(disk->part); kfree(disk); } @@ -316,6 +317,7 @@ struct gendisk *alloc_disk(int minors) disk->disk_dev.driver_data = disk; device_initialize(&disk->disk_dev); } + rand_initialize_disk(disk); return disk; } |
