drivers/block/floppy.c: remove IN/OUT macros, indent switch/case
[safe/jmp/linux-2.6] / drivers / block / floppy.c
index 7c0c7d0..b58ceae 100644 (file)
@@ -314,8 +314,6 @@ static int initialising = 1;
 #define PH_HEAD(floppy, head) (((((floppy)->stretch & 2) >> 1) ^ head) << 2)
 #define STRETCH(floppy)        ((floppy)->stretch & FD_STRETCH)
 
-#define CLEARSTRUCT(x) memset((x), 0, sizeof(*(x)))
-
 /* read/write */
 #define COMMAND                (raw_cmd->cmd[0])
 #define DR_SELECT      (raw_cmd->cmd[1])
@@ -1262,9 +1260,12 @@ static inline void perpendicular_mode(void)
                default:
                        DPRINT("Invalid data rate for perpendicular mode!\n");
                        cont->done(0);
-                       FDCS->reset = 1;        /* convenient way to return to
-                                                * redo without to much hassle (deep
-                                                * stack et al. */
+                       FDCS->reset = 1;
+                                       /*
+                                        * convenient way to return to
+                                        * redo without too much hassle
+                                        * (deep stack et al.)
+                                        */
                        return;
                }
        } else
@@ -1977,8 +1978,8 @@ static void floppy_ready(void)
 #endif
        if (!(raw_cmd->flags & FD_RAW_NO_MOTOR) &&
            disk_change(current_drive) && !DP->select_delay)
-               twaddle();      /* this clears the dcl on certain drive/controller
-                                * combinations */
+               twaddle();      /* this clears the dcl on certain
+                                * drive/controller combinations */
 
 #ifdef fd_chose_dma_mode
        if ((raw_cmd->flags & FD_RAW_READ) || (raw_cmd->flags & FD_RAW_WRITE)) {
@@ -2806,15 +2807,14 @@ static int make_raw_rw_request(void)
            ((CT(COMMAND) == FD_READ ||
              (!in_sector_offset && blk_rq_sectors(current_req) >= ssize)) &&
             max_sector > 2 * max_buffer_sectors + buffer_min &&
-            max_size + fsector_t > 2 * max_buffer_sectors + buffer_min)
-           /* not enough space */
-           ) {
+            max_size + fsector_t > 2 * max_buffer_sectors + buffer_min)) {
+               /* not enough space */
                buffer_track = -1;
                buffer_drive = current_drive;
                buffer_max = buffer_min = aligned_sector_t;
        }
        raw_cmd->kernel_data = floppy_track_buffer +
-           ((aligned_sector_t - buffer_min) << 9);
+               ((aligned_sector_t - buffer_min) << 9);
 
        if (CT(COMMAND) == FD_WRITE) {
                /* copy write buffer to track buffer.
@@ -3171,11 +3171,12 @@ static inline int raw_cmd_copyout(int cmd, char __user *param,
                COPYOUT(*ptr);
                param += sizeof(struct floppy_raw_cmd);
                if ((ptr->flags & FD_RAW_READ) && ptr->buffer_length) {
-                       if (ptr->length >= 0
-                           && ptr->length <= ptr->buffer_length)
-                               ECALL(fd_copyout
-                                     (ptr->data, ptr->kernel_data,
-                                      ptr->buffer_length - ptr->length));
+                       if (ptr->length >= 0 &&
+                           ptr->length <= ptr->buffer_length) {
+                               long length = ptr->buffer_length - ptr->length;
+                               ECALL(fd_copyout(ptr->data, ptr->kernel_data,
+                                                length));
+                       }
                }
                ptr = ptr->next;
        }
@@ -3465,8 +3466,6 @@ static int fd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
                    unsigned long param)
 {
 #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 type = ITYPE(UDRS->fd_device);
@@ -3506,124 +3505,122 @@ static int fd_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
                return -EINVAL;
 
        /* copyin */
-       CLEARSTRUCT(&inparam);
+       memset(&inparam, 0, sizeof(inparam));
        if (_IOC_DIR(cmd) & _IOC_WRITE)
-           ECALL(fd_copyin((void __user *)param, &inparam, size))
-
-               switch (cmd) {
-               case FDEJECT:
-                       if (UDRS->fd_ref != 1)
-                               /* somebody else has this drive open */
-                               return -EBUSY;
-                       LOCK_FDC(drive, 1);
-
-                       /* do the actual eject. Fails on
-                        * non-Sparc architectures */
-                       ret = fd_eject(UNIT(drive));
-
-                       USETF(FD_DISK_CHANGED);
-                       USETF(FD_VERIFY);
-                       process_fd_request();
-                       return ret;
-               case FDCLRPRM:
-                       LOCK_FDC(drive, 1);
-                       current_type[drive] = NULL;
-                       floppy_sizes[drive] = MAX_DISK_SIZE << 1;
-                       UDRS->keep_data = 0;
-                       return invalidate_drive(bdev);
-               case FDSETPRM:
-               case FDDEFPRM:
-                       return set_geometry(cmd, &inparam.g,
-                                           drive, type, bdev);
-               case FDGETPRM:
-                       ECALL(get_floppy_geometry(drive, type,
-                                                 (struct floppy_struct **)
-                                                 &outparam));
-                       break;
-
-               case FDMSGON:
-                       UDP->flags |= FTD_MSG;
-                       return 0;
-               case FDMSGOFF:
-                       UDP->flags &= ~FTD_MSG;
-                       return 0;
-
-               case FDFMTBEG:
-                       LOCK_FDC(drive, 1);
-                       CALL(poll_drive(1, FD_RAW_NEED_DISK));
-                       ret = UDRS->flags;
-                       process_fd_request();
-                       if (ret & FD_VERIFY)
-                               return -ENODEV;
-                       if (!(ret & FD_DISK_WRITABLE))
-                               return -EROFS;
-                       return 0;
-               case FDFMTTRK:
-                       if (UDRS->fd_ref != 1)
-                               return -EBUSY;
-                       return do_format(drive, &inparam.f);
-               case FDFMTEND:
-               case FDFLUSH:
-                       LOCK_FDC(drive, 1);
-                       return invalidate_drive(bdev);
-
-               case FDSETEMSGTRESH:
-                       UDP->max_errors.reporting =
-                           (unsigned short)(param & 0x0f);
-                       return 0;
-                       OUT(FDGETMAXERRS, &UDP->max_errors);
-                       IN(FDSETMAXERRS, &UDP->max_errors, max_errors);
-
-               case FDGETDRVTYP:
-                       outparam = drive_name(type, drive);
-                       SUPBOUND(size, strlen(outparam) + 1);
-                       break;
+               ECALL(fd_copyin((void __user *)param, &inparam, size));
 
-                       IN(FDSETDRVPRM, UDP, dp);
-                       OUT(FDGETDRVPRM, UDP);
-
-               case FDPOLLDRVSTAT:
-                       LOCK_FDC(drive, 1);
-                       CALL(poll_drive(1, FD_RAW_NEED_DISK));
-                       process_fd_request();
-                       /* fall through */
-                       OUT(FDGETDRVSTAT, UDRS);
-
-               case FDRESET:
-                       return user_reset_fdc(drive, (int)param, 1);
-
-                       OUT(FDGETFDCSTAT, UFDCS);
-
-               case FDWERRORCLR:
-                       CLEARSTRUCT(UDRWE);
-                       return 0;
-                       OUT(FDWERRORGET, UDRWE);
-
-               case FDRAWCMD:
-                       if (type)
-                               return -EINVAL;
-                       LOCK_FDC(drive, 1);
-                       set_floppy(drive);
-                       CALL(i = raw_cmd_ioctl(cmd, (void __user *)param));
-                       process_fd_request();
-                       return i;
+       switch (cmd) {
+       case FDEJECT:
+               if (UDRS->fd_ref != 1)
+                       /* somebody else has this drive open */
+                       return -EBUSY;
+               LOCK_FDC(drive, 1);
 
-               case FDTWADDLE:
-                       LOCK_FDC(drive, 1);
-                       twaddle();
-                       process_fd_request();
-                       return 0;
+               /* do the actual eject. Fails on
+                * non-Sparc architectures */
+               ret = fd_eject(UNIT(drive));
 
-               default:
+               USETF(FD_DISK_CHANGED);
+               USETF(FD_VERIFY);
+               process_fd_request();
+               return ret;
+       case FDCLRPRM:
+               LOCK_FDC(drive, 1);
+               current_type[drive] = NULL;
+               floppy_sizes[drive] = MAX_DISK_SIZE << 1;
+               UDRS->keep_data = 0;
+               return invalidate_drive(bdev);
+       case FDSETPRM:
+       case FDDEFPRM:
+               return set_geometry(cmd, &inparam.g, drive, type, bdev);
+       case FDGETPRM:
+               ECALL(get_floppy_geometry(drive, type,
+                                         (struct floppy_struct **)
+                                         &outparam));
+               break;
+       case FDMSGON:
+               UDP->flags |= FTD_MSG;
+               return 0;
+       case FDMSGOFF:
+               UDP->flags &= ~FTD_MSG;
+               return 0;
+       case FDFMTBEG:
+               LOCK_FDC(drive, 1);
+               CALL(poll_drive(1, FD_RAW_NEED_DISK));
+               ret = UDRS->flags;
+               process_fd_request();
+               if (ret & FD_VERIFY)
+                       return -ENODEV;
+               if (!(ret & FD_DISK_WRITABLE))
+                       return -EROFS;
+               return 0;
+       case FDFMTTRK:
+               if (UDRS->fd_ref != 1)
+                       return -EBUSY;
+               return do_format(drive, &inparam.f);
+       case FDFMTEND:
+       case FDFLUSH:
+               LOCK_FDC(drive, 1);
+               return invalidate_drive(bdev);
+       case FDSETEMSGTRESH:
+               UDP->max_errors.reporting = (unsigned short)(param & 0x0f);
+               return 0;
+       case FDGETMAXERRS:
+               outparam = (const char *)&UDP->max_errors;
+               break;
+       case FDSETMAXERRS:
+               UDP->max_errors = inparam.max_errors;
+               break;
+       case FDGETDRVTYP:
+               outparam = drive_name(type, drive);
+               SUPBOUND(size, strlen(outparam) + 1);
+               break;
+       case FDSETDRVPRM:
+               *UDP = inparam.dp;
+               break;
+       case FDGETDRVPRM:
+               outparam = (const char *)UDP;
+               break;
+       case FDPOLLDRVSTAT:
+               LOCK_FDC(drive, 1);
+               CALL(poll_drive(1, FD_RAW_NEED_DISK));
+               process_fd_request();
+               /* fall through */
+       case FDGETDRVSTAT:
+               outparam = (const char *)UDRS;
+               break;
+       case FDRESET:
+               return user_reset_fdc(drive, (int)param, 1);
+       case FDGETFDCSTAT:
+               outparam = (const char *)UFDCS;
+               break;
+       case FDWERRORCLR:
+               memset(UDRWE, 0, sizeof(*UDRWE));
+               return 0;
+       case FDWERRORGET:
+               outparam = (const char *)UDRWE;
+               break;
+       case FDRAWCMD:
+               if (type)
                        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)
                return fd_copyout((void __user *)param, outparam, size);
-       else
-               return 0;
-#undef OUT
-#undef IN
+
+       return 0;
 }
 
 static void __init config_types(void)
@@ -3827,8 +3824,7 @@ static int check_floppy_change(struct gendisk *disk)
  * a disk in the drive, and whether that disk is writable.
  */
 
-static void floppy_rb0_complete(struct bio *bio,
-                              int err)
+static void floppy_rb0_complete(struct bio *bio, int err)
 {
        complete((struct completion *)bio->bi_private);
 }
@@ -4120,9 +4116,9 @@ static int __init floppy_setup(char *str)
                                else
                                        param = config_params[i].def_param;
                                if (config_params[i].fn)
-                                       config_params[i].
-                                           fn(ints, param,
-                                              config_params[i].param2);
+                                       config_params[i].fn(ints, param,
+                                                           config_params[i].
+                                                           param2);
                                if (config_params[i].var) {
                                        DPRINT("%s=%d\n", str, param);
                                        *config_params[i].var = param;
@@ -4180,8 +4176,8 @@ static const struct dev_pm_ops floppy_pm_ops = {
 
 static struct platform_driver floppy_driver = {
        .driver = {
-               .name = "floppy",
-               .pm = &floppy_pm_ops,
+                  .name = "floppy",
+                  .pm = &floppy_pm_ops,
        },
 };
 
@@ -4258,11 +4254,11 @@ static int __init floppy_init(void)
 
        for (i = 0; i < N_FDC; i++) {
                fdc = i;
-               CLEARSTRUCT(FDCS);
+               memset(FDCS, 0, sizeof(*FDCS));
                FDCS->dtr = -1;
                FDCS->dor = 0x4;
 #if defined(__sparc__) || defined(__mc68000__)
-               /*sparcs/sun3x don't have a DOR reset which we can fall back on to */
+       /*sparcs/sun3x don't have a DOR reset which we can fall back on to */
 #ifdef __mc68000__
                if (MACH_IS_SUN3X)
 #endif
@@ -4291,8 +4287,8 @@ static int __init floppy_init(void)
 
        /* initialise drive state */
        for (drive = 0; drive < N_DRIVE; drive++) {
-               CLEARSTRUCT(UDRS);
-               CLEARSTRUCT(UDRWE);
+               memset(UDRS, 0, sizeof(*UDRS));
+               memset(UDRWE, 0, sizeof(*UDRWE));
                USETF(FD_DISK_NEWCHANGE);
                USETF(FD_DISK_CHANGED);
                USETF(FD_VERIFY);
@@ -4429,8 +4425,10 @@ static int floppy_request_regions(int fdc)
        const struct io_region *p;
 
        for (p = io_regions; p < ARRAY_END(io_regions); p++) {
-               if (!request_region(FDCS->address + p->offset, p->size, "floppy")) {
-                       DPRINT("Floppy io-port 0x%04lx in use\n", FDCS->address + p->offset);
+               if (!request_region(FDCS->address + p->offset,
+                                   p->size, "floppy")) {
+                       DPRINT("Floppy io-port 0x%04lx in use\n",
+                              FDCS->address + p->offset);
                        floppy_release_allocated_regions(fdc, p);
                        return -EBUSY;
                }
@@ -4586,8 +4584,9 @@ static void __init parse_floppy_cfg_string(char *cfg)
        char *ptr;
 
        while (*cfg) {
-               for (ptr = cfg; *cfg && *cfg != ' ' && *cfg != '\t'; cfg++)
-                       ;
+               ptr = cfg;
+               while (*cfg && *cfg != ' ' && *cfg != '\t')
+                       cfg++;
                if (*cfg) {
                        *cfg = '\0';
                        cfg++;