Re: asdf

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

Yes possible scenario, it should be changed like this.

out:
        if (err == -EIO) {
                int ret = !mmc_blk_reset(md, card->host, type);
                if (ret && !mmc_can_sanitize(card))
                        goto retry;
        }

anyway, I will find the more fancy way.

Thank you for pointing out.

BR,
Kyungmin Park

On 12/6/11, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
> There is a new gcc warning in this function:
>
> drivers/mmc/card/block.c:836:18: warning: ‘arg’ may be used uninitialized in
> this function [-Wuninitialized]
>
>    810          /* The sanitize operation is supported at v4.5 only */
>    811          if (mmc_can_sanitize(card)) {
>    812                  err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
>    813                                  EXT_CSD_SANITIZE_START, 1, 0);
>
> 1) arg is uninitialized here.  mmc_switch() can return -EIO.
>
>    814                  goto out;
>    815          }
>    816
>    817          from = blk_rq_pos(req);
>    818          nr = blk_rq_sectors(req);
>    819
>    820          if (mmc_can_trim(card) && !mmc_erase_group_aligned(card,
> from, nr))
>    821                  arg = MMC_SECURE_TRIM1_ARG;
>    822          else
>    823                  arg = MMC_SECURE_ERASE_ARG;
>    824  retry:
>    825          if (card->quirks & MMC_QUIRK_INAND_CMD38) {
>    826                  err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
>    827                                   INAND_CMD38_ARG_EXT_CSD,
>    828                                   arg == MMC_SECURE_TRIM1_ARG ?
>                                          ^^^
>
> 3) uninitialized.
>
>    829                                   INAND_CMD38_ARG_SECTRIM1 :
>    830                                   INAND_CMD38_ARG_SECERASE,
>    831                                   0);
>    832                  if (err)
>    833                          goto out;
>    834          }
>    835          err = mmc_erase(card, from, nr, arg);
>    836          if (!err && arg == MMC_SECURE_TRIM1_ARG) {
>    837                  if (card->quirks & MMC_QUIRK_INAND_CMD38) {
>    838                          err = mmc_switch(card,
> EXT_CSD_CMD_SET_NORMAL,
>    839                                           INAND_CMD38_ARG_EXT_CSD,
>    840                                           INAND_CMD38_ARG_SECTRIM2,
>    841                                           0);
>    842                          if (err)
>    843                                  goto out;
>    844                  }
>    845                  err = mmc_erase(card, from, nr,
> MMC_SECURE_TRIM2_ARG);
>    846          }
>    847  out:
>    848          if (err == -EIO && !mmc_blk_reset(md, card->host, type))
>    849                  goto retry;
>
> 2) We could maybe hit the goto retry here if the reset works.
>
> regards,
> dan carpenter
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux