Re: [PATCH V14 1/2] scsi: ufs: set the device reference clock setting

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

 




On 9/24/2018 1:28 PM, Avri Altman wrote:
+static struct ufs_ref_clk ufs_ref_clk_freqs[] = {
+       {19200000, REF_CLK_FREQ_19_2_MHZ},
+       {26000000, REF_CLK_FREQ_26_MHZ},
+       {38400000, REF_CLK_FREQ_38_4_MHZ},
+       {52000000, REF_CLK_FREQ_52_MHZ},
+       {0, REF_CLK_FREQ_INVAL},
+};
+
+static inline enum ufs_ref_clk_freq
+ufs_get_bref_clk_from_hz(u32 freq)
+{
+       int i = 0;
+
+       while (ufs_ref_clk_freqs[i].freq_hz != freq) {
+               if (!ufs_ref_clk_freqs[i].freq_hz)
+                       return REF_CLK_FREQ_INVAL;
Is the if clause really needed?
you will return REF_CLK_FREQ_INVAL anyway
Yes. the if condition makes sure to return REF_CLK_FREQ_INVAL if freq is not what we expect.

+               i++;
You might overrun here if freq is not what you've expected
Above if condition "if (!ufs_ref_clk_freqs[i].freq_hz)" prevents such overrun as we will reach end of ufs_ref_clk_freqs[] (i.e upto  0, REF_CLK_FREQ_INVAL) when there is no match and thus we will return REF_CLK_FREQ_INVAL.
+       }
+
+       return ufs_ref_clk_freqs[i].val;
+}




[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