mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* drivers/iio/chemical/sps30.c:122:30: sparse: sparse: cast truncates bits from constant value (8004 becomes 4)
@ 2019-04-23  6:57 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-04-23  6:57 UTC (permalink / raw)
  To: Tomasz Duszynski; +Cc: kbuild-all, linux-kernel, Jonathan Cameron

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   7142eaa58b49d9de492ccc16d48df7c488a5fbb6
commit: 62129a0849d27cc94ced832bcf9dcde283dcbe08 iio: chemical: sps30: allow changing self cleaning period
date:   3 months ago
reproduce:
        # apt-get install sparse
        git checkout 62129a0849d27cc94ced832bcf9dcde283dcbe08
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>



sparse warnings: (new ones prefixed by >>)

>> drivers/iio/chemical/sps30.c:122:30: sparse: sparse: cast truncates bits from constant value (8004 becomes 4)

vim +122 drivers/iio/chemical/sps30.c

    91	
    92	static int sps30_do_cmd(struct sps30_state *state, u16 cmd, u8 *data, int size)
    93	{
    94		/*
    95		 * Internally sensor stores measurements in a following manner:
    96		 *
    97		 * PM1: upper two bytes, crc8, lower two bytes, crc8
    98		 * PM2P5: upper two bytes, crc8, lower two bytes, crc8
    99		 * PM4: upper two bytes, crc8, lower two bytes, crc8
   100		 * PM10: upper two bytes, crc8, lower two bytes, crc8
   101		 *
   102		 * What follows next are number concentration measurements and
   103		 * typical particle size measurement which we omit.
   104		 */
   105		u8 buf[SPS30_MAX_READ_SIZE] = { cmd >> 8, cmd };
   106		int i, ret = 0;
   107	
   108		switch (cmd) {
   109		case SPS30_START_MEAS:
   110			buf[2] = 0x03;
   111			buf[3] = 0x00;
   112			buf[4] = crc8(sps30_crc8_table, &buf[2], 2, CRC8_INIT_VALUE);
   113			ret = sps30_write_then_read(state, buf, 5, NULL, 0);
   114			break;
   115		case SPS30_STOP_MEAS:
   116		case SPS30_RESET:
   117		case SPS30_START_FAN_CLEANING:
   118			ret = sps30_write_then_read(state, buf, 2, NULL, 0);
   119			break;
   120		case SPS30_READ_AUTO_CLEANING_PERIOD:
   121			buf[0] = SPS30_AUTO_CLEANING_PERIOD >> 8;
 > 122			buf[1] = (u8)SPS30_AUTO_CLEANING_PERIOD;
   123		case SPS30_READ_DATA_READY_FLAG:
   124		case SPS30_READ_DATA:
   125		case SPS30_READ_SERIAL:
   126			/* every two data bytes are checksummed */
   127			size += size / 2;
   128			ret = sps30_write_then_read(state, buf, 2, buf, size);
   129			break;
   130		case SPS30_AUTO_CLEANING_PERIOD:
   131			buf[2] = data[0];
   132			buf[3] = data[1];
   133			buf[4] = crc8(sps30_crc8_table, &buf[2], 2, CRC8_INIT_VALUE);
   134			buf[5] = data[2];
   135			buf[6] = data[3];
   136			buf[7] = crc8(sps30_crc8_table, &buf[5], 2, CRC8_INIT_VALUE);
   137			ret = sps30_write_then_read(state, buf, 8, NULL, 0);
   138			break;
   139		}
   140	
   141		if (ret)
   142			return ret;
   143	
   144		/* validate received data and strip off crc bytes */
   145		for (i = 0; i < size; i += 3) {
   146			u8 crc = crc8(sps30_crc8_table, &buf[i], 2, CRC8_INIT_VALUE);
   147	
   148			if (crc != buf[i + 2]) {
   149				dev_err(&state->client->dev,
   150					"data integrity check failed\n");
   151				return -EIO;
   152			}
   153	
   154			*data++ = buf[i];
   155			*data++ = buf[i + 1];
   156		}
   157	
   158		return 0;
   159	}
   160	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-04-23  6:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-23  6:57 drivers/iio/chemical/sps30.c:122:30: sparse: sparse: cast truncates bits from constant value (8004 becomes 4) kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®