[Stgt-devel] Prototype MMC DVD-ROM and burnable DVD+R implementation

ronnie sahlberg ronniesahlberg
Thu May 1 22:24:44 CEST 2008


Hi,

That looks good to me.   please push that patchset and I will re-sync
and start adding RESERVE/RELEASE to all commands.



On Fri, May 2, 2008 at 12:54 AM, FUJITA Tomonori
<fujita.tomonori at lab.ntt.co.jp> wrote:
> On Tue, 29 Apr 2008 16:31:19 +1000
>
> "ronnie sahlberg" <ronniesahlberg at gmail.com> wrote:
>
>
> > Ok, thanks.
>  >
>  > I redid the patches as you requested but I cant send SMTP mails from
>  > my home machines
>  > so hence git-send-email didnt work. :-(
>  >
>  > I have attached a tgz that contains the patch series created by
>  > git-format-patch instead.
>  > Please apply.
>
>  Thanks a lot,
>
>  There are the style problems. I fixed them this time but please use
>  checkpatch.pl before submitting patches next time.
>
>  Here's a patch to fix the style problems (can be applied after
>  applying all your patches). If nothing is wrong, I'll push your
>  patchset. Please check the attached patch.
>
>
>  diff --git a/usr/mmc.c b/usr/mmc.c
>  index 37c51cf..6c0dcac 100644
>  --- a/usr/mmc.c
>  +++ b/usr/mmc.c
>  @@ -56,7 +56,6 @@ struct mmc_info {
>         int current_profile;
>   };
>
>  -
>   static int mmc_rw(int host_no, struct scsi_cmd *cmd)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>  @@ -71,24 +70,26 @@ static int mmc_rw(int host_no, struct scsi_cmd *cmd)
>
>         switch (mmc->current_profile) {
>         case PROFILE_DVD_ROM:
>  -               switch(cmd->scb[0]) {
>  +               switch (cmd->scb[0]) {
>                 case WRITE_6:
>                 case WRITE_10:
>                 case WRITE_12:
>                 case WRITE_16:
>                         scsi_set_in_resid_by_actual(cmd, 0);
>  -                       sense_data_build(cmd, ILLEGAL_REQUEST, ASC_INCOMPATIBLE_FORMAT);
>  +                       sense_data_build(cmd, ILLEGAL_REQUEST,
>  +                                        ASC_INCOMPATIBLE_FORMAT);
>                         return SAM_STAT_CHECK_CONDITION;
>                 }
>                 break;
>         case PROFILE_DVD_PLUS_R:
>  -               switch(cmd->scb[0]) {
>  +               switch (cmd->scb[0]) {
>                 case READ_6:
>                 case READ_10:
>                 case READ_12:
>                 case READ_16:
>                         scsi_set_in_resid_by_actual(cmd, 0);
>  -                       sense_data_build(cmd, ILLEGAL_REQUEST, ASC_LBA_OUT_OF_RANGE);
>  +                       sense_data_build(cmd, ILLEGAL_REQUEST,
>  +                                        ASC_LBA_OUT_OF_RANGE);
>                         return SAM_STAT_CHECK_CONDITION;
>                 }
>                 break;
>  @@ -99,10 +100,10 @@ static int mmc_rw(int host_no, struct scsi_cmd *cmd)
>         cmd->offset = (scsi_rw_offset(cmd->scb) << MMC_BLK_SHIFT);
>
>         /* update the size of the device */
>  -       end_offset = cmd->offset + (((uint64_t)scsi_rw_count(cmd->scb)) << MMC_BLK_SHIFT);
>  -       if (end_offset > cmd->dev->size) {
>  +       end_offset = cmd->offset +
>  +               (((uint64_t)scsi_rw_count(cmd->scb)) << MMC_BLK_SHIFT);
>  +       if (end_offset > cmd->dev->size)
>                 cmd->dev->size = end_offset;
>  -       }
>
>         ret = cmd->dev->bst->bs_cmd_submit(cmd);
>         if (ret) {
>  @@ -139,14 +140,13 @@ static int mmc_read_capacity(int host_no, struct scsi_cmd *cmd)
>         data = scsi_get_in_buffer(cmd);
>         size = cmd->dev->size >> MMC_BLK_SHIFT;
>
>  -       if (size == 0) {
>  -               data[0] = 0; /* A blank DVD */
>  -       } else {
>  +       if (size)
>                 data[0] = (size >> 32) ?
>                         __cpu_to_be32(0xffffffff) : __cpu_to_be32(size - 1);
>  -       }
>  -       data[1] = __cpu_to_be32(1U << MMC_BLK_SHIFT);
>  +       else
>  +               data[0] = 0; /* A blank DVD */
>
>  +       data[1] = __cpu_to_be32(1U << MMC_BLK_SHIFT);
>   overflow:
>         scsi_set_in_resid_by_actual(cmd, 8);
>         return SAM_STAT_GOOD;
>  @@ -173,28 +173,28 @@ static int mmc_read_toc(int host_no, struct scsi_cmd *cmd)
>                 return SAM_STAT_CHECK_CONDITION;
>         }
>
>  -       toc_time   = cmd->scb[1] & 0x02;
>  +       toc_time = cmd->scb[1] & 0x02;
>         toc_format = cmd->scb[2] & 0x0f;
>  -       toc_track  = cmd->scb[6];
>  +       toc_track = cmd->scb[6];
>
>         memset(buf, 0, sizeof(buf));
>         data = buf;
>  -
>  +
>         switch (toc_format) {
>         case 0: /* formatted toc */
>  -               if (toc_track != 0) {
>  +               if (toc_track) {
>                         /* we only do single session data disks so only
>                            track 0 is valid */
>                         scsi_set_in_resid_by_actual(cmd, 0);
>  -                       sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>  +                       sense_data_build(cmd, NOT_READY,
>  +                                        ASC_INVALID_FIELD_IN_CDB);
>                         return SAM_STAT_CHECK_CONDITION;
>                 }
>
>  -               if (toc_time) {
>  +               if (toc_time)
>                         tsa = 0x00ff3b4a;
>  -               } else {
>  +               else
>                         tsa = cmd->dev->size >> MMC_BLK_SHIFT; /* lba */
>  -               }
>
>                 /* size of return data */
>                 data[0] = 0;
>  @@ -204,28 +204,27 @@ static int mmc_read_toc(int host_no, struct scsi_cmd *cmd)
>                 data[3] = 1;    /* last track */
>
>                 /* data track */
>  -               data[ 4] = 0;           /* reserved */
>  -               data[ 5] = 0x14;
>  -               data[ 6] = 1;           /* track number */
>  -               data[ 7] = 0;           /* reserved */
>  -               data[ 8] = 0;           /* track start address : 0 */
>  -               data[ 9] = 0;
>  -               if (toc_time) {
>  +               data[4] = 0;            /* reserved */
>  +               data[5] = 0x14;
>  +               data[6] = 1;            /* track number */
>  +               data[7] = 0;            /* reserved */
>  +               data[8] = 0;            /* track start address : 0 */
>  +               data[9] = 0;
>  +               if (toc_time)
>                         data[10] = 2;   /* time 00:00:02:00 */
>  -               } else {
>  +               else
>                         data[10] = 0;
>  -               }
>                 data[11] = 0;
>
>                 /* leadout track */
>  -               data[12] = 0;           /* reserved */
>  +               data[12] = 0;           /* reserved */
>                 data[13] = 0x14;
>                 data[14] = 0xaa;        /* track number */
>                 data[15] = 0;           /* reserved */
>  -               data[16] = (tsa>>24)&0xff;/* track start address */
>  -               data[17] = (tsa>>16)&0xff;
>  -               data[18] = (tsa>> 8)&0xff;
>  -               data[19] = (tsa    )&0xff;
>  +               data[16] = (tsa >> 24) & 0xff;/* track start address */
>  +               data[17] = (tsa >> 16) & 0xff;
>  +               data[18] = (tsa >> 8) & 0xff;
>  +               data[19] = tsa & 0xff;
>
>                 break;
>         case 1: /* multi session info */
>  @@ -237,17 +236,16 @@ static int mmc_read_toc(int host_no, struct scsi_cmd *cmd)
>                 data[3] = 1;    /* last session */
>
>                 /* data track */
>  -               data[ 4] = 0;           /* reserved */
>  -               data[ 5] = 0x14;
>  -               data[ 6] = 1;           /* track number */
>  -               data[ 7] = 0;           /* reserved */
>  -               data[ 8] = 0;           /* track start address : 0 */
>  -               data[ 9] = 0;
>  -               if (toc_time) {
>  +               data[4] = 0;            /* reserved */
>  +               data[5] = 0x14;
>  +               data[6] = 1;            /* track number */
>  +               data[7] = 0;            /* reserved */
>  +               data[8] = 0;            /* track start address : 0 */
>  +               data[9] = 0;
>  +               if (toc_time)
>                         data[10] = 2;   /* time 00:00:02:00 */
>  -               } else {
>  +               else
>                         data[10] = 0;
>  -               }
>                 data[11] = 0;
>
>                 break;
>  @@ -295,15 +293,18 @@ static int mmc_read_disc_information(int host_no, struct scsi_cmd *cmd)
>
>         memset(buf, 0, sizeof(buf));
>
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_ROM:
>                 /* disk information length */
>                 buf[0] = 0x00;
>                 buf[1] = 0x20;
>
>  -               /* erasable:0 state of last session:complete disc status:finalized */
>  +               /*
>  +                * erasable:0 state of last session:complete disc
>  +                * status:finalized
>  +                */
>                 buf[2] = 0x0e;
>  -
>  +
>                 /* number of first track on disk */
>                 buf[3] = 1;
>
>  @@ -373,7 +374,7 @@ static int mmc_read_disc_information(int host_no, struct scsi_cmd *cmd)
>
>                 /* erasable:0 state of last session:empty disc status:empty */
>                 buf[2] = 0;
>  -
>  +
>                 /* number of first track on disk */
>                 buf[3] = 1;
>
>  @@ -434,7 +435,6 @@ static int mmc_read_disc_information(int host_no, struct scsi_cmd *cmd)
>
>                 /* number of opc tables */
>                 buf[33] = 0;
>  -
>                 break;
>         default:
>                 /* we do not understand/support this command for this profile */
>  @@ -444,12 +444,11 @@ static int mmc_read_disc_information(int host_no, struct scsi_cmd *cmd)
>         }
>
>         memcpy(scsi_get_in_buffer(cmd), buf,
>  -               min(scsi_get_in_length(cmd),
>  -                       (uint32_t) sizeof(buf)));
>  +              min_t(uint32_t, scsi_get_in_length(cmd), sizeof(buf)));
>         return SAM_STAT_GOOD;
>   }
>
>  -void profile_dvd_rom(struct scsi_cmd *cmd, char *data)
>  +static void profile_dvd_rom(struct scsi_cmd *cmd, char *data)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>
>  @@ -458,17 +457,16 @@ void profile_dvd_rom(struct scsi_cmd *cmd, char *data)
>         *data++ = 0x10;
>
>         /* current ? */
>  -       if (mmc->current_profile == PROFILE_DVD_ROM) {
>  +       if (mmc->current_profile == PROFILE_DVD_ROM)
>                 *data++ = 0x01;
>  -       } else {
>  +       else
>                 *data++ = 0;
>  -       }
>
>         /* reserved */
>         *data++ = 0;
>   }
>
>  -void profile_dvd_plus_r(struct scsi_cmd *cmd, char *data)
>  +static void profile_dvd_plus_r(struct scsi_cmd *cmd, char *data)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>
>  @@ -477,11 +475,10 @@ void profile_dvd_plus_r(struct scsi_cmd *cmd, char *data)
>         *data++ = 0x1b;
>
>         /* current ? */
>  -       if (mmc->current_profile == PROFILE_DVD_PLUS_R) {
>  +       if (mmc->current_profile == PROFILE_DVD_PLUS_R)
>                 *data++ = 0x01;
>  -       } else {
>  +       else
>                 *data++ = 0;
>  -       }
>
>         /* reserved */
>         *data++ = 0;
>  @@ -497,34 +494,37 @@ struct profile_descriptor profiles[] = {
>         {0, NULL}
>   };
>
>  -/* these features are mandatory for profile DVD_ROM
>  -       FEATURE_PROFILE_LIST
>  -       FEATURE_CORE
>  -       FEATURE_MORHPING
>  -       FEATURE_REMOVABLE_MEDIUM
>  -       FEATURE_RANDOM_READABLE
>  -       FEATURE_DVD_READ
>  -       FEATURE_POWER_MANAGEMENT
>  -       FEATURE_TIMEOUT
>  -       FEATURE_REAL_TIME_STREAMING
>  -   these features are mandatory for profile DVD+R
>  -       FEATURE_PROFILE_LIST
>  -       FEATURE_CORE
>  -       FEATURE_MORHPING
>  -       FEATURE_REMOVABLE_MEDIUM
>  -       FEATURE_RANDOM_READABLE
>  -       FEATURE_DVD_READ
>  -       FEATURE_DVD_PLUS_R
>  -       FEATURE_POWER_MANAGEMENT
>  -       FEATURE_TIMEOUT
>  -       FEATURE_REAL_TIME_STREAMING
>  -       FEATURE_DCBS
>  -   additional features
>  -       FEATURE_MULIT_READ
>  -       FEATURE_LUN_SERIAL_NO
>  -*/
>  -
>  -char *feature_profile_list(struct scsi_cmd *cmd, char *data, int only_current)
>  +/*
>  + * these features are mandatory for profile DVD_ROM
>  + * FEATURE_PROFILE_LIST
>  + * FEATURE_CORE
>  + * FEATURE_MORHPING
>  + * FEATURE_REMOVABLE_MEDIUM
>  + * FEATURE_RANDOM_READABLE
>  + * FEATURE_DVD_READ
>  + * FEATURE_POWER_MANAGEMENT
>  + * FEATURE_TIMEOUT
>  + * FEATURE_REAL_TIME_STREAMING
>  + *
>  + * these features are mandatory for profile DVD+R
>  + * FEATURE_PROFILE_LIST
>  + * FEATURE_CORE
>  + * FEATURE_MORHPING
>  + * FEATURE_REMOVABLE_MEDIUM
>  + * FEATURE_RANDOM_READABLE
>  + * FEATURE_DVD_READ
>  + * FEATURE_DVD_PLUS_R
>  + * FEATURE_POWER_MANAGEMENT
>  + * FEATURE_TIMEOUT
>  + * FEATURE_REAL_TIME_STREAMING
>  + * FEATURE_DCBS
>  + *
>  + * additional features
>  + * FEATURE_MULIT_READ
>  + * FEATURE_LUN_SERIAL_NO
>  + */
>  +static char *feature_profile_list(struct scsi_cmd *cmd, char *data,
>  +                                 int only_current)
>   {
>         struct profile_descriptor *p;
>         char *additional;
>  @@ -535,22 +535,22 @@ char *feature_profile_list(struct scsi_cmd *cmd, char *data, int only_current)
>
>         /* version 0  always persistent, always current */
>         *data++ = 0x03;
>  -
>  +
>         /* additional length start at 0*/
>         additional = data++;
>         *additional = 0;
>
>         /* all all profiles we support */
>  -       for (p=profiles;p->func;p++) {
>  +       for (p = profiles; p->func; p++) {
>                 p->func(cmd, data);
>                 *additional = (*additional) + 4;
>  -               data+=4;
>  +               data += 4;
>         }
>
>         return data;
>   }
>
>  -char *feature_core(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_core(struct scsi_cmd *cmd, char *data, int only_current)
>   {
>         /* feature code */
>         *data++ = 0;
>  @@ -558,7 +558,7 @@ char *feature_core(struct scsi_cmd *cmd, char *data, int only_current)
>
>         /* version 0  always persistent, always current */
>         *data++ = 0x03;
>  -
>  +
>         /* additional length */
>         *data++ = 4;
>
>  @@ -571,7 +571,8 @@ char *feature_core(struct scsi_cmd *cmd, char *data, int only_current)
>         return data;
>   }
>
>  -char *feature_morphing(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_morphing(struct scsi_cmd *cmd, char *data,
>  +                             int only_current)
>   {
>         /* feature code */
>         *data++ = 0;
>  @@ -583,16 +584,17 @@ char *feature_morphing(struct scsi_cmd *cmd, char *data, int only_current)
>         /* additional length */
>         *data++ = 4;
>
>  -       /* dont support ocevent or async */
>  +       /* dont support ocevent or async */
>         *data++ = 0;
>         *data++ = 0;
>         *data++ = 0;
>         *data++ = 0;
>
>         return data;
>  -}
>  +}
>
>  -char *feature_removable_medium(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_removable_medium(struct scsi_cmd *cmd, char *data,
>  +                                     int only_current)
>   {
>         /* feature code */
>         *data++ = 0;
>  @@ -605,9 +607,9 @@ char *feature_removable_medium(struct scsi_cmd *cmd, char *data, int only_curren
>         *data++ = 4;
>
>         /* loading mechanism:tray
>  -          ejectable through STARTSTOPUNIT loej
>  -          pvnt : PREVENTALLOWMEDIUMREMOVAL supported
>  -          lock : medium can be locked
>  +        * ejectable through STARTSTOPUNIT loej
>  +        * vnt : PREVENTALLOWMEDIUMREMOVAL supported
>  +        * lock : medium can be locked
>         */
>         *data++ = 0x29;
>
>  @@ -619,13 +621,14 @@ char *feature_removable_medium(struct scsi_cmd *cmd, char *data, int only_curren
>         return data;
>   }
>
>  -char *feature_random_readable(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_random_readable(struct scsi_cmd *cmd, char *data,
>  +                                    int only_current)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         int is_current;
>
>         /* this feature is only current in DVD_ROM */
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_ROM:
>                 is_current = 1;
>                 break;
>  @@ -633,9 +636,8 @@ char *feature_random_readable(struct scsi_cmd *cmd, char *data, int only_current
>                 is_current = 0;
>         }
>
>  -       if (only_current)
>  -               if (!is_current)
>  -                       return data;
>  +       if (only_current && !is_current)
>  +               return data;
>
>         /* feature code */
>         *data++ = 0;
>  @@ -655,11 +657,11 @@ char *feature_random_readable(struct scsi_cmd *cmd, char *data, int only_current
>         *data++ = 0;
>         *data++ = 8;
>         *data++ = 0;
>  -
>  +
>         /* blocking is always 0x10 for dvd devices */
>         *data++ = 0;
>         *data++ = 0x10;
>  -
>  +
>         /* pp is supported */
>         *data++ = 0x01;
>
>  @@ -669,13 +671,14 @@ char *feature_random_readable(struct scsi_cmd *cmd, char *data, int only_current
>         return data;
>   }
>
>  -char *feature_dvd_read(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_dvd_read(struct scsi_cmd *cmd, char *data,
>  +                             int only_current)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         int is_current;
>
>         /* this feature is only current in DVD_ROM */
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_ROM:
>                 is_current = 1;
>                 break;
>  @@ -683,9 +686,8 @@ char *feature_dvd_read(struct scsi_cmd *cmd, char *data, int only_current)
>                 is_current = 0;
>         }
>
>  -       if (only_current)
>  -               if (!is_current)
>  -                       return data;
>  +       if (only_current && !is_current)
>  +               return data;
>
>         /* feature code */
>         *data++ = 0;
>  @@ -703,7 +705,8 @@ char *feature_dvd_read(struct scsi_cmd *cmd, char *data, int only_current)
>         return data;
>   }
>
>  -char *feature_power_management(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_power_management(struct scsi_cmd *cmd, char *data,
>  +                                     int only_current)
>   {
>         /* feature code */
>         *data++ = 0x01;
>  @@ -718,7 +721,7 @@ char *feature_power_management(struct scsi_cmd *cmd, char *data, int only_curren
>         return data;
>   }
>
>  -char *feature_timeout(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_timeout(struct scsi_cmd *cmd, char *data, int only_current)
>   {
>         /* feature code */
>         *data++ = 0x01;
>  @@ -733,13 +736,14 @@ char *feature_timeout(struct scsi_cmd *cmd, char *data, int only_current)
>         return data;
>   }
>
>  -char *feature_real_time_streaming(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_real_time_streaming(struct scsi_cmd *cmd, char *data,
>  +                                        int only_current)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         int is_current;
>
>         /* this feature is only current in DVD_ROM */
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_ROM:
>                 is_current = 1;
>                 break;
>  @@ -747,9 +751,8 @@ char *feature_real_time_streaming(struct scsi_cmd *cmd, char *data, int only_cur
>                 is_current = 0;
>         }
>
>  -       if (only_current)
>  -               if (!is_current)
>  -                       return data;
>  +       if (only_current && !is_current)
>  +               return data;
>
>         /* feature code */
>         *data++ = 0x01;
>  @@ -767,7 +770,7 @@ char *feature_real_time_streaming(struct scsi_cmd *cmd, char *data, int only_cur
>         /* flags */
>         *data++ = 0x1f;
>
>  -       /* reserved */
>  +       /* reserved */
>         *data++ = 0;
>         *data++ = 0;
>         *data++ = 0;
>  @@ -775,13 +778,14 @@ char *feature_real_time_streaming(struct scsi_cmd *cmd, char *data, int only_cur
>         return data;
>   }
>
>  -char *feature_dvd_plus_r(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_dvd_plus_r(struct scsi_cmd *cmd, char *data,
>  +                               int only_current)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         int is_current;
>
>         /* this feature is only current in DVD+R */
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_PLUS_R:
>                 is_current = 1;
>                 break;
>  @@ -789,9 +793,8 @@ char *feature_dvd_plus_r(struct scsi_cmd *cmd, char *data, int only_current)
>                 is_current = 0;
>         }
>
>  -       if (only_current)
>  -               if (!is_current)
>  -                       return data;
>  +       if (only_current && !is_current)
>  +               return data;
>
>         /* feature code */
>         *data++ = 0;
>  @@ -817,7 +820,8 @@ char *feature_dvd_plus_r(struct scsi_cmd *cmd, char *data, int only_current)
>         return data;
>   }
>
>  -char *feature_lun_serial_no(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_lun_serial_no(struct scsi_cmd *cmd, char *data,
>  +                                  int only_current)
>   {
>         /* feature code */
>         *data++ = 0x01;
>  @@ -842,7 +846,8 @@ char *feature_lun_serial_no(struct scsi_cmd *cmd, char *data, int only_current)
>         return data;
>   }
>
>  -char *feature_multi_read(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_multi_read(struct scsi_cmd *cmd, char *data,
>  +                               int only_current)
>   {
>         /* feature code */
>         *data++ = 0;
>  @@ -857,13 +862,13 @@ char *feature_multi_read(struct scsi_cmd *cmd, char *data, int only_current)
>         return data;
>   }
>
>  -char *feature_dcbs(struct scsi_cmd *cmd, char *data, int only_current)
>  +static char *feature_dcbs(struct scsi_cmd *cmd, char *data, int only_current)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         int is_current;
>
>         /* this feature is only current in DVD+R */
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_PLUS_R:
>                 is_current = 1;
>                 break;
>  @@ -871,9 +876,8 @@ char *feature_dcbs(struct scsi_cmd *cmd, char *data, int only_current)
>                 is_current = 0;
>         }
>
>  -       if (only_current)
>  -               if (!is_current)
>  -                       return data;
>  +       if (only_current && !is_current)
>  +               return data;
>
>         /* feature code */
>         *data++ = 0x01;
>  @@ -956,7 +960,7 @@ static int mmc_get_configuration(int host_no, struct scsi_cmd *cmd)
>         rt = cmd->scb[1] & 0x03;
>
>         start = cmd->scb[2];
>  -       start = (start<<8) | cmd->scb[3];
>  +       start = (start << 8) | cmd->scb[3];
>
>         memset(buf, 0, sizeof(buf));
>         data = buf;
>  @@ -964,46 +968,48 @@ static int mmc_get_configuration(int host_no, struct scsi_cmd *cmd)
>         data += 4;
>
>         /* reserved */
>  -       *data++ = 0;
>  -       *data++ = 0;
>  +       *data++ = 0;
>  +       *data++ = 0;
>         /* current profile */
>  -       *data++ = (mmc->current_profile>>8)&0xff;
>  -       *data++ = (mmc->current_profile   )&0xff;
>  +       *data++ = (mmc->current_profile >> 8) & 0xff;
>  +       *data++ = mmc->current_profile & 0xff;
>
>         /* add the features */
>  -       for (f=features;f->func;f++) {
>  +       for (f = features; f->func; f++) {
>                 /* only return features >= the start feature */
>                 if (f->feature < start)
>                         continue;
>                 /* if rt==2 we skip all other features except start */
>  -               if ( (rt==2) && (f->feature!=start) )
>  +               if (rt == 2 && f->feature != start)
>                         continue;
>
>  -               data = f->func(cmd, data, (rt==1)?1:0 );
>  +               data = f->func(cmd, data, rt == 1);
>         }
>
>         tmp = data-buf;
>         tmp -= 4;
>
>  -       buf[0] = (tmp>>24)&0xff;
>  -       buf[1] = (tmp>>16)&0xff;
>  -       buf[2] = (tmp>> 8)&0xff;
>  -       buf[3] = (tmp    )&0xff;
>  +       buf[0] = (tmp >> 24) & 0xff;
>  +       buf[1] = (tmp >> 16) & 0xff;
>  +       buf[2] = (tmp >> 8) & 0xff;
>  +       buf[3] = tmp & 0xff;
>
>         tmp = data-buf;
>
>         memcpy(scsi_get_in_buffer(cmd), buf,
>  -              min(scsi_get_in_length(cmd), (uint32_t) sizeof(buf)));
>  +              min_t(uint32_t, scsi_get_in_length(cmd), sizeof(buf)));
>
>         /* dont report overflow/underflow for GET CONFIGURATION */
>         return SAM_STAT_GOOD;
>   }
>
>  -unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data, unsigned int lba)
>  +static unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data,
>  +                                    unsigned int lba)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         unsigned long tmp;
>  -       switch(mmc->current_profile){
>  +
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_PLUS_R:
>                 /* track number LSB */
>                 *data++ = 1;
>  @@ -1014,7 +1020,7 @@ unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data, unsigne
>                 /* reserved */
>                 *data++ = 0;
>
>  -               /* damage:0 copy:0 track_mode:DVD+R */
>  +               /* damage:0 copy:0 track_mode:DVD+R */
>                 *data++ = 0x07;
>
>                 /* rt:0 blank:1 packet/inc:0 fp:0 data mode:1 */
>  @@ -1066,7 +1072,7 @@ unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data, unsigne
>                 *data++ = 0;
>
>                 /* reserved */
>  -               data+=2;
>  +               data += 2;
>
>                 /* read compat lba */
>                 *data++ = 0x00;
>  @@ -1085,7 +1091,7 @@ unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data, unsigne
>                 /* reserved */
>                 *data++ = 0;
>
>  -               /* damage:0 copy:0 track_mode:other media */
>  +               /* damage:0 copy:0 track_mode:other media */
>                 *data++ = 0x04;
>
>                 /* rt:0 blank:0 packet/inc:0 fp:0 data mode:1 */
>  @@ -1120,17 +1126,17 @@ unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data, unsigne
>
>                 /* track size */
>                 tmp = cmd->dev->size >> MMC_BLK_SHIFT;
>  -               *data++ = (tmp>>24)&0xff;
>  -               *data++ = (tmp>>16)&0xff;
>  -               *data++ = (tmp>> 8)&0xff;
>  -               *data++ = (tmp    )&0xff;
>  +               *data++ = (tmp >> 24) & 0xff;
>  +               *data++ = (tmp >> 16) & 0xff;
>  +               *data++ = (tmp >> 8) & 0xff;
>  +               *data++ = tmp & 0xff;
>
>                 /* last recorded address */
>                 tmp--;  /* one less */
>  -               *data++ = (tmp>>24)&0xff;
>  -               *data++ = (tmp>>16)&0xff;
>  -               *data++ = (tmp>> 8)&0xff;
>  -               *data++ = (tmp    )&0xff;
>  +               *data++ = (tmp >> 24) & 0xff;
>  +               *data++ = (tmp >> 16) & 0xff;
>  +               *data++ = (tmp >> 8) & 0xff;
>  +               *data++ = tmp & 0xff;
>
>                 /* track number MSB */
>                 *data++ = 0;
>  @@ -1139,27 +1145,29 @@ unsigned char *track_type_lba(struct scsi_cmd *cmd, unsigned char *data, unsigne
>                 *data++ = 0;
>
>                 /* reserved */
>  -               data+=2;
>  +               data += 2;
>
>                 return data;
>         }
>  -
>  +
>         /* we do not understand/support this profile */
>         scsi_set_in_resid_by_actual(cmd, 0);
>         sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>         return NULL;
>   }
>
>  -unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsigned int lba)
>  +static unsigned char *track_type_track(struct scsi_cmd *cmd,
>  +                                      unsigned char *data, unsigned int lba)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         unsigned long tmp;
>
>  -       switch(mmc->current_profile){
>  +       switch (mmc->current_profile) {
>         case PROFILE_DVD_PLUS_R:
>  -               if (lba == 0) {
>  +               if (!lba) {
>                         scsi_set_in_resid_by_actual(cmd, 0);
>  -                       sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>  +                       sense_data_build(cmd, NOT_READY,
>  +                                        ASC_INVALID_FIELD_IN_CDB);
>                         return NULL;
>                 }
>
>  @@ -1172,7 +1180,7 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>                 /* reserved */
>                 *data++ = 0;
>
>  -               /* damage:0 copy:0 track_mode:DVD+R */
>  +               /* damage:0 copy:0 track_mode:DVD+R */
>                 *data++ = 0x07;
>
>                 /* rt:0 blank:1 packet/inc:0 fp:0 data mode:1 */
>  @@ -1224,7 +1232,7 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>                 *data++ = 0;
>
>                 /* reserved */
>  -               data+=2;
>  +               data += 2;
>
>                 /* read compat lba */
>                 *data++ = 0x00;
>  @@ -1237,7 +1245,8 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>                 /* we only have one track */
>                 if (lba != 1) {
>                         scsi_set_in_resid_by_actual(cmd, 0);
>  -                       sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>  +                       sense_data_build(cmd, NOT_READY,
>  +                                        ASC_INVALID_FIELD_IN_CDB);
>                         return NULL;
>                 }
>
>  @@ -1250,7 +1259,7 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>                 /* reserved */
>                 *data++ = 0;
>
>  -               /* damage:0 copy:0 track_mode:other media */
>  +               /* damage:0 copy:0 track_mode:other media */
>                 *data++ = 0x04;
>
>                 /* rt:0 blank:0 packet/inc:0 fp:0 data mode:1 */
>  @@ -1285,17 +1294,17 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>
>                 /* track size */
>                 tmp = cmd->dev->size >> MMC_BLK_SHIFT;
>  -               *data++ = (tmp>>24)&0xff;
>  -               *data++ = (tmp>>16)&0xff;
>  -               *data++ = (tmp>> 8)&0xff;
>  -               *data++ = (tmp    )&0xff;
>  +               *data++ = (tmp >> 24) & 0xff;
>  +               *data++ = (tmp >> 16) & 0xff;
>  +               *data++ = (tmp >> 8) & 0xff;
>  +               *data++ = tmp & 0xff;
>
>                 /* last recorded address */
>                 tmp--;  /* one less */
>  -               *data++ = (tmp>>24)&0xff;
>  -               *data++ = (tmp>>16)&0xff;
>  -               *data++ = (tmp>> 8)&0xff;
>  -               *data++ = (tmp    )&0xff;
>  +               *data++ = (tmp >> 24) & 0xff;
>  +               *data++ = (tmp >> 16) & 0xff;
>  +               *data++ = (tmp >> 8) & 0xff;
>  +               *data++ = tmp & 0xff;
>
>                 /* track number MSB */
>                 *data++ = 0;
>  @@ -1304,11 +1313,11 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>                 *data++ = 0;
>
>                 /* reserved */
>  -               data+=2;
>  +               data += 2;
>
>                 return data;
>         }
>  -
>  +
>         /* we do not understand/support this profile */
>         scsi_set_in_resid_by_actual(cmd, 0);
>         sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>  @@ -1321,7 +1330,8 @@ unsigned char *track_type_track(struct scsi_cmd *cmd, unsigned char *data, unsig
>
>   struct track_type {
>         int type;
>  -       unsigned char *(*func)(struct scsi_cmd *cmd, unsigned char *data, unsigned int lba);
>  +       unsigned char *(*func)(struct scsi_cmd *cmd, unsigned char *data,
>  +                              unsigned int lba);
>   };
>   struct track_type track_types[] = {
>         {TRACK_INFO_LBA,     track_type_lba},
>  @@ -1354,23 +1364,22 @@ static int mmc_read_track_information(int host_no, struct scsi_cmd *cmd)
>         memset(buf, 0, sizeof(buf));
>         data = &buf[2];
>
>  -       for(t=track_types;t->func;t++){
>  +       for (t = track_types; t->func; t++) {
>                 int tmp;
>
>  -               if (t->type != type) {
>  +               if (t->type != type)
>                         continue;
>  -               }
>  +
>                 data = t->func(cmd, data, lba);
>  -               if (data == NULL) {
>  +
>  +               if (!data)
>                         return SAM_STAT_CHECK_CONDITION;
>  -               }
>
>                 tmp = data-&buf[2];
>  -               buf[0] = (tmp>>8)&0xff;
>  -               buf[1] = (tmp   )&0xff;
>  +               buf[0] = (tmp >> 8) & 0xff;
>  +               buf[1] = tmp & 0xff;
>                 memcpy(scsi_get_in_buffer(cmd), buf,
>  -                       min(scsi_get_in_length(cmd),
>  -                               (uint32_t) sizeof(buf)));
>  +                      min_t(uint32_t, scsi_get_in_length(cmd), sizeof(buf)));
>                 return SAM_STAT_GOOD;
>         }
>
>  @@ -1379,7 +1388,7 @@ static int mmc_read_track_information(int host_no, struct scsi_cmd *cmd)
>         sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>         return SAM_STAT_CHECK_CONDITION;
>   }
>  -
>  +
>   static int mmc_read_buffer_capacity(int host_no, struct scsi_cmd *cmd)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>  @@ -1403,7 +1412,7 @@ static int mmc_read_buffer_capacity(int host_no, struct scsi_cmd *cmd)
>                 /* data length */
>                 buf[0] = 0x00;
>                 buf[1] = 0x0a;
>  -
>  +
>                 /* 4096 blocks */
>                 tmp = 0x1000;
>                 if (!blocks) {
>  @@ -1412,21 +1421,21 @@ static int mmc_read_buffer_capacity(int host_no, struct scsi_cmd *cmd)
>                 }
>
>                 /* length of buffer */
>  -               buf[4]  = (tmp>>24)&0xff;
>  -               buf[5]  = (tmp>>16)&0xff;
>  -               buf[6] = (tmp>> 8)&0xff;
>  -               buf[7] = (tmp    )&0xff;
>  +               buf[4] = (tmp >> 24) & 0xff;
>  +               buf[5] = (tmp >> 16) & 0xff;
>  +               buf[6] = (tmp >> 8) & 0xff;
>  +               buf[7] = tmp & 0xff;
>
>                 /* available length of buffer (always half) */
>                 tmp = tmp >> 1;
>  -               buf[8]  = (tmp>>24)&0xff;
>  -               buf[9]  = (tmp>>16)&0xff;
>  -               buf[10] = (tmp>> 8)&0xff;
>  -               buf[11] = (tmp    )&0xff;
>  +               buf[8]  = (tmp >> 24) & 0xff;
>  +               buf[9]  = (tmp >> 16) & 0xff;
>  +               buf[10] = (tmp >> 8) & 0xff;
>  +               buf[11] = tmp & 0xff;
>
>  -               memcpy(scsi_get_in_buffer(cmd), &buf[0],
>  +               memcpy(scsi_get_in_buffer(cmd), buf,
>                        min(scsi_get_in_length(cmd), (uint32_t) sizeof(buf)));
>  -               scsi_set_in_resid_by_actual(cmd, buf[1]+2);
>  +               scsi_set_in_resid_by_actual(cmd, buf[1] + 2);
>                 return SAM_STAT_GOOD;
>         }
>
>  @@ -1438,7 +1447,7 @@ static int mmc_read_buffer_capacity(int host_no, struct scsi_cmd *cmd)
>   static int mmc_synchronize_cache(int host_no, struct scsi_cmd *cmd)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>  -
>  +
>         if (mmc->current_profile == PROFILE_NO_PROFILE) {
>                 scsi_set_in_resid_by_actual(cmd, 0);
>                 sense_data_build(cmd, NOT_READY, ASC_MEDIUM_NOT_PRESENT);
>  @@ -1448,14 +1457,17 @@ static int mmc_synchronize_cache(int host_no, struct scsi_cmd *cmd)
>         return SAM_STAT_GOOD;
>   }
>
>  -unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data, unsigned int type, unsigned int data_type)
>  +static unsigned char *perf_type_write_speed(struct scsi_cmd *cmd,
>  +                                           unsigned char *data,
>  +                                           unsigned int type,
>  +                                           unsigned int data_type)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>
>         /* write/except */
>         *data++ = 0x00;
>
>  -       data+=3;
>  +       data += 3;
>
>         switch (mmc->current_profile) {
>         case PROFILE_NO_PROFILE:
>  @@ -1464,7 +1476,7 @@ unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data,
>                 *data++ = 0x00;
>
>                 /* reserved */
>  -               data+=3;
>  +               data += 3;
>
>                 /* end lba */
>                 *data++ = 0x00;
>  @@ -1489,7 +1501,7 @@ unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data,
>                 *data++ = 0x00;
>
>                 /* reserved */
>  -               data+=3;
>  +               data += 3;
>
>                 /* end lba */
>                 *data++ = 0x00;
>  @@ -1517,7 +1529,7 @@ unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data,
>                 *data++ = 0x01;
>
>                 /* reserved */
>  -               data+=3;
>  +               data += 3;
>
>                 /* end lba */
>                 *data++ = 0x00;
>  @@ -1545,7 +1557,7 @@ unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data,
>                 *data++ = 0x00;
>
>                 /* reserved */
>  -               data+=3;
>  +               data += 3;
>
>                 /* end lba */
>                 *data++ = 0x00;
>  @@ -1570,7 +1582,7 @@ unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data,
>                 *data++ = 0x00;
>
>                 /* reserved */
>  -               data+=3;
>  +               data += 3;
>
>                 /* end lba */
>                 *data++ = 0x00;
>  @@ -1600,7 +1612,10 @@ unsigned char *perf_type_write_speed(struct scsi_cmd *cmd, unsigned char *data,
>         return NULL;
>   }
>
>  -unsigned char *perf_type_perf_data(struct scsi_cmd *cmd, unsigned char *data, unsigned int type, unsigned int data_type)
>  +static unsigned char *perf_type_perf_data(struct scsi_cmd *cmd,
>  +                                         unsigned char *data,
>  +                                         unsigned int type,
>  +                                         unsigned int data_type)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         int tolerance;
>  @@ -1608,9 +1623,9 @@ unsigned char *perf_type_perf_data(struct scsi_cmd *cmd, unsigned char *data, un
>         int except;
>         long tmp;
>
>  -       tolerance  = (data_type>>3)&0x03;
>  -       write_flag = (data_type>>2)&0x01;
>  -       except     = data_type&0x03;
>  +       tolerance  = (data_type >> 3) & 0x03;
>  +       write_flag = (data_type >> 2) & 0x01;
>  +       except = data_type & 0x03;
>
>         /* all other values for tolerance are reserved */
>         if (tolerance != 0x02) {
>  @@ -1619,14 +1634,14 @@ unsigned char *perf_type_perf_data(struct scsi_cmd *cmd, unsigned char *data, un
>                 return NULL;
>         }
>
>  -       switch(except){
>  +       switch (except) {
>         case 1:
>         case 2:
>                 /* write/except */
>                 *data++ = 0x01;
>
>                 /* reserved */
>  -               data+=3;
>  +               data += 3;
>
>                 /* no actual descriptor returned here */
>                 return data;
>  @@ -1638,14 +1653,13 @@ unsigned char *perf_type_perf_data(struct scsi_cmd *cmd, unsigned char *data, un
>         }
>
>         /* write/except */
>  -       if (write_flag) {
>  +       if (write_flag)
>                 *data++ = 0x02;
>  -       } else {
>  +       else
>                 *data++ = 0x00;
>  -       }
>
>         /* reserved */
>  -       data+=3;
>  +       data += 3;
>
>         /* start lba */
>         *data++ = 0;
>  @@ -1666,11 +1680,12 @@ unsigned char *perf_type_perf_data(struct scsi_cmd *cmd, unsigned char *data, un
>                 break;
>         default:
>                 tmp = 0x23053f;
>  -       }
>  -       *data++ = (tmp>>24)&0xff;
>  -       *data++ = (tmp>>16)&0xff;
>  -       *data++ = (tmp>> 8)&0xff;
>  -       *data++ = (tmp    )&0xff;
>  +       }
>  +
>  +       *data++ = (tmp >> 24) & 0xff;
>  +       *data++ = (tmp >> 16) & 0xff;
>  +       *data++ = (tmp >> 8) & 0xff;
>  +       *data++ = tmp & 0xff;
>
>         /* end performance */
>         *data++ = 0x00;
>  @@ -1685,7 +1700,8 @@ unsigned char *perf_type_perf_data(struct scsi_cmd *cmd, unsigned char *data, un
>   #define PERF_TYPE_WRITE_SPEED          0x03
>   struct perf_type {
>         int type;
>  -       unsigned char *(*func)(struct scsi_cmd *cmd, unsigned char *data, unsigned int type, unsigned int data_type);
>  +       unsigned char *(*func)(struct scsi_cmd *cmd, unsigned char *data,
>  +                              unsigned int type, unsigned int data_type);
>   };
>   struct perf_type perf_types[] = {
>         {PERF_TYPE_PERF_DATA, perf_type_perf_data},
>  @@ -1718,25 +1734,23 @@ static int mmc_get_performance(int host_no, struct scsi_cmd *cmd)
>
>         type = cmd->scb[10];
>
>  -       for (p=perf_types;p->func;p++) {
>  +       for (p = perf_types; p->func; p++) {
>                 int tmp;
>
>  -               if (p->type != type) {
>  +               if (p->type != type)
>                         continue;
>  -               }
>  +
>                 data = p->func(cmd, data, type, data_type);
>  -               if (data == NULL) {
>  +               if (!data)
>                         return SAM_STAT_CHECK_CONDITION;
>  -               }
>
>                 tmp = data-&buf[4];
>  -               buf[0] = (tmp>>24)&0xff;
>  -               buf[1] = (tmp>>16)&0xff;
>  -               buf[2] = (tmp>> 8)&0xff;
>  -               buf[3] = (tmp    )&0xff;
>  +               buf[0] = (tmp >> 24) & 0xff;
>  +               buf[1] = (tmp >> 16) & 0xff;
>  +               buf[2] = (tmp >> 8) & 0xff;
>  +               buf[3] = tmp & 0xff;
>                 memcpy(scsi_get_in_buffer(cmd), buf,
>  -                       min(scsi_get_in_length(cmd),
>  -                               (uint32_t) sizeof(buf)));
>  +                      min_t(uint32_t, scsi_get_in_length(cmd), sizeof(buf)));
>                 return SAM_STAT_GOOD;
>
>         }
>  @@ -1752,14 +1766,14 @@ static int mmc_set_streaming(int host_no, struct scsi_cmd *cmd)
>         return SAM_STAT_GOOD;
>   }
>
>  -
>   #define DVD_FORMAT_PHYS_INFO           0x00
>   #define DVD_FORMAT_DVD_COPYRIGHT_INFO  0x01
>   #define DVD_FORMAT_ADIP_INFO           0x11
>   #define DVD_FORMAT_DVD_STRUCTURE_LIST  0xff
>
>  -
>  -unsigned char *dvd_format_phys_info(struct scsi_cmd *cmd, unsigned char *data, int format, int layer, int write_header)
>  +static unsigned char *dvd_format_phys_info(struct scsi_cmd *cmd,
>  +                                          unsigned char *data, int format,
>  +                                          int layer, int write_header)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>         unsigned char *old_data;
>  @@ -1772,7 +1786,7 @@ unsigned char *dvd_format_phys_info(struct scsi_cmd *cmd, unsigned char *data, i
>                 return data;
>         }
>
>  -       if (layer != 0) {
>  +       if (layer) {
>                 /* we only support single layer disks */
>                 scsi_set_in_resid_by_actual(cmd, 0);
>                 sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>  @@ -1816,8 +1830,7 @@ unsigned char *dvd_format_phys_info(struct scsi_cmd *cmd, unsigned char *data, i
>                 *data++ = 0;
>
>                 /* just leave the media specific area as 0 */
>  -               data+=2031;
>  -
>  +               data += 2031;
>                 break;
>         case PROFILE_DVD_PLUS_R:
>                 /* book type DVD+R, part version */
>  @@ -1897,7 +1910,7 @@ unsigned char *dvd_format_phys_info(struct scsi_cmd *cmd, unsigned char *data, i
>                 *data++ = 0x00; *data++ = 0x00; *data++ = 0x00; *data++ = 0x00;
>                 *data++ = 0x00; *data++ = 0x00; *data++ = 0x00;
>
>  -               data=old_data+2031;
>  +               data = old_data + 2031;
>
>                 break;
>         default:
>  @@ -1909,13 +1922,15 @@ unsigned char *dvd_format_phys_info(struct scsi_cmd *cmd, unsigned char *data, i
>         return data;
>   }
>
>  -unsigned char *dvd_format_adip_info(struct scsi_cmd *cmd, unsigned char *data, int format, int layer, int write_header)
>  +static unsigned char *dvd_format_adip_info(struct scsi_cmd *cmd,
>  +                                          unsigned char *data, int format,
>  +                                          int layer, int write_header)
>   {
>         struct mmc_info *mmc = (struct mmc_info *)cmd->dev->mmc_p;
>
>         if (write_header) {
>                 *data++ = DVD_FORMAT_ADIP_INFO;
>  -               switch(mmc->current_profile){
>  +               switch (mmc->current_profile) {
>                 case PROFILE_DVD_PLUS_R:
>                         *data++ = 0x40; /* readable */
>                         break;
>  @@ -2006,7 +2021,10 @@ unsigned char *dvd_format_adip_info(struct scsi_cmd *cmd, unsigned char *data, i
>         return data;
>   }
>
>  -unsigned char *dvd_format_copyright_info(struct scsi_cmd *cmd, unsigned char *data, int format, int layer, int write_header)
>  +static unsigned char *dvd_format_copyright_info(struct scsi_cmd *cmd,
>  +                                               unsigned char *data,
>  +                                               int format, int layer,
>  +                                               int write_header)
>   {
>         if (write_header) {
>                 *data++ = DVD_FORMAT_DVD_COPYRIGHT_INFO;
>  @@ -2016,7 +2034,7 @@ unsigned char *dvd_format_copyright_info(struct scsi_cmd *cmd, unsigned char *da
>                 return data;
>         }
>
>  -       if (layer != 0) {
>  +       if (layer) {
>                 /* we only support single layer disks */
>                 scsi_set_in_resid_by_actual(cmd, 0);
>                 sense_data_build(cmd, NOT_READY, ASC_INVALID_FIELD_IN_CDB);
>  @@ -2032,16 +2050,21 @@ unsigned char *dvd_format_copyright_info(struct scsi_cmd *cmd, unsigned char *da
>         /* reserved */
>         *data++ = 0;
>         *data++ = 0;
>  -
>  +
>         return data;
>   }
>
>  -unsigned char *dvd_format_dvd_structure_list(struct scsi_cmd *cmd, unsigned char *data, int format, int layer, int write_header);
>  -
>  +static unsigned char *dvd_format_dvd_structure_list(struct scsi_cmd *cmd,
>  +                                                   unsigned char *data,
>  +                                                   int format,
>  +                                                   int layer,
>  +                                                   int write_header);
>   struct dvd_format {
>         int format;
>  -       unsigned char *(*func)(struct scsi_cmd *cmd, unsigned char *data, int format, int layer, int write_header);
>  +       unsigned char *(*func)(struct scsi_cmd *cmd, unsigned char *data,
>  +                              int format, int layer, int write_header);
>   };
>  +
>   struct dvd_format dvd_formats[] = {
>         {DVD_FORMAT_PHYS_INFO,          dvd_format_phys_info},
>         {DVD_FORMAT_DVD_COPYRIGHT_INFO, dvd_format_copyright_info},
>  @@ -2050,20 +2073,22 @@ struct dvd_format dvd_formats[] = {
>         {0, NULL}
>   };
>
>  -unsigned char *dvd_format_dvd_structure_list(struct scsi_cmd *cmd, unsigned char *data, int format, int layer, int write_header)
>  +static unsigned char *dvd_format_dvd_structure_list(struct scsi_cmd *cmd,
>  +                                                   unsigned char *data,
>  +                                                   int format,
>  +                                                   int layer, int write_header)
>   {
>         struct dvd_format *f;
>
>         /* list all format headers */
>  -       for (f=dvd_formats;f->func;f++) {
>  +       for (f = dvd_formats; f->func; f++) {
>                 /* we dont report ourself back in the format list */
>                 if (f->format == 0xff)
>                         continue;
>  -
>  +
>                 data = f->func(cmd, data, format, layer, 1);
>  -               if (data == NULL) {
>  +               if (!data)
>                         return NULL;
>  -               }
>         }
>
>         return data;
>  @@ -2094,24 +2119,23 @@ static int mmc_read_dvd_structure(int host_no, struct scsi_cmd *cmd)
>         memset(buf, 0, sizeof(buf));
>         data = &buf[4];
>
>  -       for (f=dvd_formats;f->func;f++) {
>  +       for (f = dvd_formats; f->func; f++) {
>                 if (f->format == format) {
>                         int tmp;
>
>                         data = f->func(cmd, data, format, layer, 0);
>  -                       if (data == NULL) {
>  +                       if (!data)
>                                 return SAM_STAT_CHECK_CONDITION;
>  -                       }
>
>  -                       tmp = data-buf;
>  +                       tmp = data - buf;
>                         tmp -= 2;
>  -                       buf[0] = (tmp>>8)&0xff;
>  -                       buf[1] = (tmp   )&0xff;
>  +                       buf[0] = (tmp >> 8) & 0xff;
>  +                       buf[1] = tmp & 0xff;
>                         buf[2] = 0;
>                         buf[3] = 0;
>                         memcpy(scsi_get_in_buffer(cmd), buf,
>  -                               min(scsi_get_in_length(cmd),
>  -                                       (uint32_t) sizeof(buf)));
>  +                              min_t(uint32_t,
>  +                                    scsi_get_in_length(cmd), sizeof(buf)));
>                         return SAM_STAT_GOOD;
>                 }
>         }
>  @@ -2137,7 +2161,7 @@ static int mmc_lu_init(struct scsi_lu *lu)
>         struct mmc_info *mmc;
>
>         mmc = zalloc(sizeof(struct mmc_info));
>  -       if (mmc == NULL)
>  +       if (!mmc)
>                 return -ENOMEM;
>
>         lu->mmc_p = mmc;
>  @@ -2153,7 +2177,8 @@ static int mmc_lu_init(struct scsi_lu *lu)
>         }
>         lu->bst = bst;
>
>  -       strncpy(lu->attrs.product_id, "VIRTUAL-CDROM", sizeof(lu->attrs.product_id));
>  +       strncpy(lu->attrs.product_id, "VIRTUAL-CDROM",
>  +               sizeof(lu->attrs.product_id));
>         lu->attrs.sense_format = 0;
>         lu->attrs.version_desc[0] = 0x02A0; /* MMC3, no version claimed */
>         lu->attrs.version_desc[1] = 0x0960; /* iSCSI */
>  @@ -2198,23 +2223,21 @@ static int mmc_lu_online(struct scsi_lu *lu)
>
>         mmc->current_profile = PROFILE_NO_PROFILE;
>
>  -       if (lu->fd == -1) {
>  +       if (lu->fd == -1)
>                 return TGTADM_INVALID_REQUEST;
>  -       }
>
>         lu->attrs.online = 1;
>
>  -       if (stat(lu->path, &st) != 0) {
>  +       if (stat(lu->path, &st)) {
>                 mmc->current_profile = PROFILE_NO_PROFILE;
>                 lu->attrs.online = 0;
>         } else {
>  -               if (st.st_size == 0) {
>  +               if (!st.st_size)
>                         mmc->current_profile = PROFILE_DVD_PLUS_R;
>  -               } else {
>  +               else
>                         mmc->current_profile = PROFILE_DVD_ROM;
>  -               }
>         }
>  -
>  +
>         return 0;
>   }
>
>



More information about the stgt mailing list