diff options
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/ide-tape.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 06d21bba4ea8..bf40d8c824ad 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -596,15 +596,6 @@ typedef struct { | |||
596 | #define IDETAPE_CAPABILITIES_PAGE 0x2a | 596 | #define IDETAPE_CAPABILITIES_PAGE 0x2a |
597 | 597 | ||
598 | /* | 598 | /* |
599 | * Run time configurable parameters. | ||
600 | */ | ||
601 | typedef struct { | ||
602 | int dsc_rw_frequency; | ||
603 | int dsc_media_access_frequency; | ||
604 | int nr_stages; | ||
605 | } idetape_config_t; | ||
606 | |||
607 | /* | ||
608 | * The variables below are used for the character device interface. | 599 | * The variables below are used for the character device interface. |
609 | * Additional state variables are defined in our ide_drive_t structure. | 600 | * Additional state variables are defined in our ide_drive_t structure. |
610 | */ | 601 | */ |
@@ -2849,16 +2840,21 @@ static int idetape_rewind_tape (ide_drive_t *drive) | |||
2849 | static int idetape_blkdev_ioctl(ide_drive_t *drive, unsigned int cmd, unsigned long arg) | 2840 | static int idetape_blkdev_ioctl(ide_drive_t *drive, unsigned int cmd, unsigned long arg) |
2850 | { | 2841 | { |
2851 | idetape_tape_t *tape = drive->driver_data; | 2842 | idetape_tape_t *tape = drive->driver_data; |
2852 | idetape_config_t config; | ||
2853 | void __user *argp = (void __user *)arg; | 2843 | void __user *argp = (void __user *)arg; |
2854 | 2844 | ||
2845 | struct idetape_config { | ||
2846 | int dsc_rw_frequency; | ||
2847 | int dsc_media_access_frequency; | ||
2848 | int nr_stages; | ||
2849 | } config; | ||
2850 | |||
2855 | #if IDETAPE_DEBUG_LOG | 2851 | #if IDETAPE_DEBUG_LOG |
2856 | if (tape->debug_level >= 4) | 2852 | if (tape->debug_level >= 4) |
2857 | printk(KERN_INFO "ide-tape: Reached idetape_blkdev_ioctl\n"); | 2853 | printk(KERN_INFO "ide-tape: Reached idetape_blkdev_ioctl\n"); |
2858 | #endif /* IDETAPE_DEBUG_LOG */ | 2854 | #endif /* IDETAPE_DEBUG_LOG */ |
2859 | switch (cmd) { | 2855 | switch (cmd) { |
2860 | case 0x0340: | 2856 | case 0x0340: |
2861 | if (copy_from_user(&config, argp, sizeof (idetape_config_t))) | 2857 | if (copy_from_user(&config, argp, sizeof(config))) |
2862 | return -EFAULT; | 2858 | return -EFAULT; |
2863 | tape->best_dsc_rw_frequency = config.dsc_rw_frequency; | 2859 | tape->best_dsc_rw_frequency = config.dsc_rw_frequency; |
2864 | tape->max_stages = config.nr_stages; | 2860 | tape->max_stages = config.nr_stages; |
@@ -2866,7 +2862,7 @@ static int idetape_blkdev_ioctl(ide_drive_t *drive, unsigned int cmd, unsigned l | |||
2866 | case 0x0350: | 2862 | case 0x0350: |
2867 | config.dsc_rw_frequency = (int) tape->best_dsc_rw_frequency; | 2863 | config.dsc_rw_frequency = (int) tape->best_dsc_rw_frequency; |
2868 | config.nr_stages = tape->max_stages; | 2864 | config.nr_stages = tape->max_stages; |
2869 | if (copy_to_user(argp, &config, sizeof (idetape_config_t))) | 2865 | if (copy_to_user(argp, &config, sizeof(config))) |
2870 | return -EFAULT; | 2866 | return -EFAULT; |
2871 | break; | 2867 | break; |
2872 | default: | 2868 | default: |