drivers/block/floppy.c: remove IN/OUT macros, indent switch/case
Remove ugly IN/OUT macros, use direct case and code Add missing semicolon after ECALL Signed-off-by: Joe Perches <joe@perches.com> Cc: Stephen Hemminger <shemminger@vyatta.com> Cc: Jens Axboe <jens.axboe@oracle.com> Cc: Marcin Slusarz <marcin.slusarz@gmail.com> Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
96534f1dd5
Коммит
da27365342
|
@ -3466,8 +3466,6 @@ static int fd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
|
||||||
unsigned long param)
|
unsigned long param)
|
||||||
{
|
{
|
||||||
#define FD_IOCTL_ALLOWED (mode & (FMODE_WRITE|FMODE_WRITE_IOCTL))
|
#define FD_IOCTL_ALLOWED (mode & (FMODE_WRITE|FMODE_WRITE_IOCTL))
|
||||||
#define OUT(c,x) case c: outparam = (const char *) (x); break
|
|
||||||
#define IN(c,x,tag) case c: *(x) = inparam. tag ; return 0
|
|
||||||
|
|
||||||
int drive = (long)bdev->bd_disk->private_data;
|
int drive = (long)bdev->bd_disk->private_data;
|
||||||
int type = ITYPE(UDRS->fd_device);
|
int type = ITYPE(UDRS->fd_device);
|
||||||
|
@ -3509,122 +3507,120 @@ static int fd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
|
||||||
/* copyin */
|
/* copyin */
|
||||||
memset(&inparam, 0, sizeof(inparam));
|
memset(&inparam, 0, sizeof(inparam));
|
||||||
if (_IOC_DIR(cmd) & _IOC_WRITE)
|
if (_IOC_DIR(cmd) & _IOC_WRITE)
|
||||||
ECALL(fd_copyin((void __user *)param, &inparam, size))
|
ECALL(fd_copyin((void __user *)param, &inparam, size));
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case FDEJECT:
|
case FDEJECT:
|
||||||
if (UDRS->fd_ref != 1)
|
if (UDRS->fd_ref != 1)
|
||||||
/* somebody else has this drive open */
|
/* somebody else has this drive open */
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
LOCK_FDC(drive, 1);
|
LOCK_FDC(drive, 1);
|
||||||
|
|
||||||
/* do the actual eject. Fails on
|
/* do the actual eject. Fails on
|
||||||
* non-Sparc architectures */
|
* non-Sparc architectures */
|
||||||
ret = fd_eject(UNIT(drive));
|
ret = fd_eject(UNIT(drive));
|
||||||
|
|
||||||
USETF(FD_DISK_CHANGED);
|
USETF(FD_DISK_CHANGED);
|
||||||
USETF(FD_VERIFY);
|
USETF(FD_VERIFY);
|
||||||
process_fd_request();
|
process_fd_request();
|
||||||
return ret;
|
return ret;
|
||||||
case FDCLRPRM:
|
case FDCLRPRM:
|
||||||
LOCK_FDC(drive, 1);
|
LOCK_FDC(drive, 1);
|
||||||
current_type[drive] = NULL;
|
current_type[drive] = NULL;
|
||||||
floppy_sizes[drive] = MAX_DISK_SIZE << 1;
|
floppy_sizes[drive] = MAX_DISK_SIZE << 1;
|
||||||
UDRS->keep_data = 0;
|
UDRS->keep_data = 0;
|
||||||
return invalidate_drive(bdev);
|
return invalidate_drive(bdev);
|
||||||
case FDSETPRM:
|
case FDSETPRM:
|
||||||
case FDDEFPRM:
|
case FDDEFPRM:
|
||||||
return set_geometry(cmd, &inparam.g,
|
return set_geometry(cmd, &inparam.g, drive, type, bdev);
|
||||||
drive, type, bdev);
|
case FDGETPRM:
|
||||||
case FDGETPRM:
|
ECALL(get_floppy_geometry(drive, type,
|
||||||
ECALL(get_floppy_geometry(drive, type,
|
(struct floppy_struct **)
|
||||||
(struct floppy_struct **)
|
&outparam));
|
||||||
&outparam));
|
break;
|
||||||
break;
|
case FDMSGON:
|
||||||
|
UDP->flags |= FTD_MSG;
|
||||||
case FDMSGON:
|
return 0;
|
||||||
UDP->flags |= FTD_MSG;
|
case FDMSGOFF:
|
||||||
return 0;
|
UDP->flags &= ~FTD_MSG;
|
||||||
case FDMSGOFF:
|
return 0;
|
||||||
UDP->flags &= ~FTD_MSG;
|
case FDFMTBEG:
|
||||||
return 0;
|
LOCK_FDC(drive, 1);
|
||||||
|
CALL(poll_drive(1, FD_RAW_NEED_DISK));
|
||||||
case FDFMTBEG:
|
ret = UDRS->flags;
|
||||||
LOCK_FDC(drive, 1);
|
process_fd_request();
|
||||||
CALL(poll_drive(1, FD_RAW_NEED_DISK));
|
if (ret & FD_VERIFY)
|
||||||
ret = UDRS->flags;
|
return -ENODEV;
|
||||||
process_fd_request();
|
if (!(ret & FD_DISK_WRITABLE))
|
||||||
if (ret & FD_VERIFY)
|
return -EROFS;
|
||||||
return -ENODEV;
|
return 0;
|
||||||
if (!(ret & FD_DISK_WRITABLE))
|
case FDFMTTRK:
|
||||||
return -EROFS;
|
if (UDRS->fd_ref != 1)
|
||||||
return 0;
|
return -EBUSY;
|
||||||
case FDFMTTRK:
|
return do_format(drive, &inparam.f);
|
||||||
if (UDRS->fd_ref != 1)
|
case FDFMTEND:
|
||||||
return -EBUSY;
|
case FDFLUSH:
|
||||||
return do_format(drive, &inparam.f);
|
LOCK_FDC(drive, 1);
|
||||||
case FDFMTEND:
|
return invalidate_drive(bdev);
|
||||||
case FDFLUSH:
|
case FDSETEMSGTRESH:
|
||||||
LOCK_FDC(drive, 1);
|
UDP->max_errors.reporting = (unsigned short)(param & 0x0f);
|
||||||
return invalidate_drive(bdev);
|
return 0;
|
||||||
|
case FDGETMAXERRS:
|
||||||
case FDSETEMSGTRESH:
|
outparam = (const char *)&UDP->max_errors;
|
||||||
UDP->max_errors.reporting =
|
break;
|
||||||
(unsigned short)(param & 0x0f);
|
case FDSETMAXERRS:
|
||||||
return 0;
|
UDP->max_errors = inparam.max_errors;
|
||||||
OUT(FDGETMAXERRS, &UDP->max_errors);
|
break;
|
||||||
IN(FDSETMAXERRS, &UDP->max_errors, max_errors);
|
case FDGETDRVTYP:
|
||||||
|
outparam = drive_name(type, drive);
|
||||||
case FDGETDRVTYP:
|
SUPBOUND(size, strlen(outparam) + 1);
|
||||||
outparam = drive_name(type, drive);
|
break;
|
||||||
SUPBOUND(size, strlen(outparam) + 1);
|
case FDSETDRVPRM:
|
||||||
break;
|
*UDP = inparam.dp;
|
||||||
|
break;
|
||||||
IN(FDSETDRVPRM, UDP, dp);
|
case FDGETDRVPRM:
|
||||||
OUT(FDGETDRVPRM, UDP);
|
outparam = (const char *)UDP;
|
||||||
|
break;
|
||||||
case FDPOLLDRVSTAT:
|
case FDPOLLDRVSTAT:
|
||||||
LOCK_FDC(drive, 1);
|
LOCK_FDC(drive, 1);
|
||||||
CALL(poll_drive(1, FD_RAW_NEED_DISK));
|
CALL(poll_drive(1, FD_RAW_NEED_DISK));
|
||||||
process_fd_request();
|
process_fd_request();
|
||||||
/* fall through */
|
/* fall through */
|
||||||
OUT(FDGETDRVSTAT, UDRS);
|
case FDGETDRVSTAT:
|
||||||
|
outparam = (const char *)UDRS;
|
||||||
case FDRESET:
|
break;
|
||||||
return user_reset_fdc(drive, (int)param, 1);
|
case FDRESET:
|
||||||
|
return user_reset_fdc(drive, (int)param, 1);
|
||||||
OUT(FDGETFDCSTAT, UFDCS);
|
case FDGETFDCSTAT:
|
||||||
|
outparam = (const char *)UFDCS;
|
||||||
case FDWERRORCLR:
|
break;
|
||||||
memset(UDRWE, 0, sizeof(*UDRWE));
|
case FDWERRORCLR:
|
||||||
return 0;
|
memset(UDRWE, 0, sizeof(*UDRWE));
|
||||||
OUT(FDWERRORGET, UDRWE);
|
return 0;
|
||||||
|
case FDWERRORGET:
|
||||||
case FDRAWCMD:
|
outparam = (const char *)UDRWE;
|
||||||
if (type)
|
break;
|
||||||
return -EINVAL;
|
case FDRAWCMD:
|
||||||
LOCK_FDC(drive, 1);
|
if (type)
|
||||||
set_floppy(drive);
|
|
||||||
CALL(i = raw_cmd_ioctl(cmd, (void __user *)param));
|
|
||||||
process_fd_request();
|
|
||||||
return i;
|
|
||||||
|
|
||||||
case FDTWADDLE:
|
|
||||||
LOCK_FDC(drive, 1);
|
|
||||||
twaddle();
|
|
||||||
process_fd_request();
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
LOCK_FDC(drive, 1);
|
||||||
|
set_floppy(drive);
|
||||||
|
CALL(i = raw_cmd_ioctl(cmd, (void __user *)param));
|
||||||
|
process_fd_request();
|
||||||
|
return i;
|
||||||
|
case FDTWADDLE:
|
||||||
|
LOCK_FDC(drive, 1);
|
||||||
|
twaddle();
|
||||||
|
process_fd_request();
|
||||||
|
return 0;
|
||||||
|
default:
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
if (_IOC_DIR(cmd) & _IOC_READ)
|
if (_IOC_DIR(cmd) & _IOC_READ)
|
||||||
return fd_copyout((void __user *)param, outparam, size);
|
return fd_copyout((void __user *)param, outparam, size);
|
||||||
else
|
|
||||||
return 0;
|
return 0;
|
||||||
#undef OUT
|
|
||||||
#undef IN
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init config_types(void)
|
static void __init config_types(void)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче