diff options
Diffstat (limited to 'drivers/acorn/block/mfmhd.c')
-rw-r--r-- | drivers/acorn/block/mfmhd.c | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/drivers/acorn/block/mfmhd.c b/drivers/acorn/block/mfmhd.c index 4b65f74d66b1..ce074f6f3369 100644 --- a/drivers/acorn/block/mfmhd.c +++ b/drivers/acorn/block/mfmhd.c | |||
@@ -129,19 +129,6 @@ static DEFINE_SPINLOCK(mfm_lock); | |||
129 | #define MAJOR_NR MFM_ACORN_MAJOR | 129 | #define MAJOR_NR MFM_ACORN_MAJOR |
130 | #define QUEUE (mfm_queue) | 130 | #define QUEUE (mfm_queue) |
131 | #define CURRENT elv_next_request(mfm_queue) | 131 | #define CURRENT elv_next_request(mfm_queue) |
132 | /* | ||
133 | * This sort of stuff should be in a header file shared with ide.c, hd.c, xd.c etc | ||
134 | */ | ||
135 | #ifndef HDIO_GETGEO | ||
136 | #define HDIO_GETGEO 0x301 | ||
137 | struct hd_geometry { | ||
138 | unsigned char heads; | ||
139 | unsigned char sectors; | ||
140 | unsigned short cylinders; | ||
141 | unsigned long start; | ||
142 | }; | ||
143 | #endif | ||
144 | |||
145 | 132 | ||
146 | /* | 133 | /* |
147 | * Configuration section | 134 | * Configuration section |
@@ -1153,22 +1140,13 @@ static int mfm_initdrives(void) | |||
1153 | * The 'front' end of the mfm driver follows... | 1140 | * The 'front' end of the mfm driver follows... |
1154 | */ | 1141 | */ |
1155 | 1142 | ||
1156 | static int mfm_ioctl(struct inode *inode, struct file *file, u_int cmd, u_long arg) | 1143 | static int mfm_getgeo(struct block_device *bdev, struct hd_geometry *geo) |
1157 | { | 1144 | { |
1158 | struct mfm_info *p = inode->i_bdev->bd_disk->private_data; | 1145 | struct mfm_info *p = bdev->bd_disk->private_data; |
1159 | struct hd_geometry *geo = (struct hd_geometry *) arg; | 1146 | |
1160 | if (cmd != HDIO_GETGEO) | 1147 | geo->heads = p->heads; |
1161 | return -EINVAL; | 1148 | geo->sectors = p->sectors; |
1162 | if (!arg) | 1149 | geo->cylinders = p->cylinders; |
1163 | return -EINVAL; | ||
1164 | if (put_user (p->heads, &geo->heads)) | ||
1165 | return -EFAULT; | ||
1166 | if (put_user (p->sectors, &geo->sectors)) | ||
1167 | return -EFAULT; | ||
1168 | if (put_user (p->cylinders, &geo->cylinders)) | ||
1169 | return -EFAULT; | ||
1170 | if (put_user (get_start_sect(inode->i_bdev), &geo->start)) | ||
1171 | return -EFAULT; | ||
1172 | return 0; | 1150 | return 0; |
1173 | } | 1151 | } |
1174 | 1152 | ||
@@ -1219,7 +1197,7 @@ void xd_set_geometry(struct block_device *bdev, unsigned char secsptrack, | |||
1219 | static struct block_device_operations mfm_fops = | 1197 | static struct block_device_operations mfm_fops = |
1220 | { | 1198 | { |
1221 | .owner = THIS_MODULE, | 1199 | .owner = THIS_MODULE, |
1222 | .ioctl = mfm_ioctl, | 1200 | .getgeo = mfm_getgeo, |
1223 | }; | 1201 | }; |
1224 | 1202 | ||
1225 | /* | 1203 | /* |