Re: [PATCH v4 2/3] scsi: ufs: UFS crypto API

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

 



On Wed, Jul 08, 2020 at 07:44:28AM +0000, Avri Altman wrote:
> > +
> > +static enum blk_crypto_mode_num
> > +ufshcd_find_blk_crypto_mode(union ufs_crypto_cap_entry cap)
> > +{
> > +       int i;
> > +
> > +       for (i = 0; i < ARRAY_SIZE(ufs_crypto_algs); i++) {
> > +               BUILD_BUG_ON(UFS_CRYPTO_KEY_SIZE_INVALID != 0);
> > +               if (ufs_crypto_algs[i].ufs_alg == cap.algorithm_id &&
> > +                   ufs_crypto_algs[i].ufs_key_size == cap.key_size) {
> > +                       return i;
> > +               }
> > +       }
> > +       return BLK_ENCRYPTION_MODE_INVALID;
> BLK_ENCRYPTION_MODE_INVALID is 0, but 0 is a valid mode num?

ufs_crypto_algs[] does have to contain an entry for BLK_ENCRYPTION_MODE_INVALID,
but it's an empty entry with ufs_key_size == UFS_CRYPTO_KEY_SIZE_INVALID (0).
So it will never be selected and the code is correct.

We should probably start iterating at 1 to make this clearer, though note that
the code still needs to handle empty entries anyway in case any gaps are ever
introduced into the BLK_ENCRYPTION_MODE_* values.

- Eric



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux