re: iio: frequency: New driver for Analog Devices ADF4350/ADF4351 Wideband Synthesizers

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

 



Hello Michael Hennerich,

The patch e31166f0fd48: "iio: frequency: New driver for Analog
Devices ADF4350/ADF4351 Wideband Synthesizers" from May 29, 2012,
leads to the following warning:
"drivers/iio/frequency/adf4350.c:212 adf4350_set_freq()
	 warn: 0x13c001fc0 is larger than 32 bits"

I have been messing with Smatch recently and this is not the right
warning...  :/

drivers/iio/frequency/adf4350.c
   207          st->regs[ADF4350_REG2] =
   208                  ADF4350_REG2_10BIT_R_CNT(r_cnt) |
   209                  ADF4350_REG2_DOUBLE_BUFF_EN |
   210                  (pdata->ref_doubler_en ? ADF4350_REG2_RMULT2_EN : 0) |
   211                  (pdata->ref_div2_en ? ADF4350_REG2_RDIV2_EN : 0) |
   212                  (pdata->r2_user_settings & (ADF4350_REG2_PD_POLARITY_POS |
   213                  ADF4350_REG2_LDP_6ns | ADF4350_REG2_LDF_INT_N |
   214                  ADF4350_REG2_CHARGE_PUMP_CURR_uA(5000) |
   215                  ADF4350_REG2_MUXOUT(0x7) | ADF4350_REG2_NOISE_MODE(0x9)));
                        ^^^^^^^^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
0x7 and 0x9 are signed int so when we do "<< 29" it wraps or has a sign
extention.  Also we are doing a bitwise AND with 32 bit unsigned values
so they get truncated that way too.

It's not clear what was intended here.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" 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]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux