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: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
d8881cdab5
commit
73855e13b2
|
@ -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,
|
||||||
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;
|
||||||
|
|
Reference in New Issue