ubd_kern: make it 'struct hd_driveid'-free

* Change ubd_id in ubd_ioctl() from 'struct hd_driveid *id'
  to 'u16 *id' and update driver accordingly.

* Include <linux/ata.h> directly instead of through <linux/hdreg.h>.

There should be no functional changes caused by this patch.

Cc: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent d8881cda
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "linux/kernel.h" #include "linux/kernel.h"
#include "linux/module.h" #include "linux/module.h"
#include "linux/blkdev.h" #include "linux/blkdev.h"
#include "linux/ata.h"
#include "linux/hdreg.h" #include "linux/hdreg.h"
#include "linux/init.h" #include "linux/init.h"
#include "linux/cdrom.h" #include "linux/cdrom.h"
...@@ -1308,16 +1309,15 @@ static int ubd_ioctl(struct block_device *bdev, fmode_t mode, ...@@ -1308,16 +1309,15 @@ static int ubd_ioctl(struct block_device *bdev, fmode_t mode,
unsigned int cmd, unsigned long arg) unsigned int cmd, unsigned long arg)
{ {
struct ubd *ubd_dev = bdev->bd_disk->private_data; struct ubd *ubd_dev = bdev->bd_disk->private_data;
struct hd_driveid ubd_id = { u16 ubd_id[ATA_ID_WORDS];
.cyls = 0,
.heads = 128,
.sectors = 32,
};
switch (cmd) { switch (cmd) {
struct cdrom_volctrl volume; struct cdrom_volctrl volume;
case HDIO_GET_IDENTITY: case HDIO_GET_IDENTITY:
ubd_id.cyls = ubd_dev->size / (128 * 32 * 512); memset(&ubd_id, 0, ATA_ID_WORDS * 2);
ubd_id[ATA_ID_CYLS] = ubd_dev->size / (128 * 32 * 512);
ubd_id[ATA_ID_HEADS] = 128;
ubd_id[ATA_ID_SECTORS] = 32;
if(copy_to_user((char __user *) arg, (char *) &ubd_id, if(copy_to_user((char __user *) arg, (char *) &ubd_id,
sizeof(ubd_id))) sizeof(ubd_id)))
return -EFAULT; return -EFAULT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment