nvmem: Add a simple NVMEM framework for consumers
Subsystems (2)
Hello Srinivas Kandagatla,
The patch 69aba7948cbe: "nvmem: Add a simple NVMEM framework for consumers" from Jul 27, 2015, leads to the following static checker warning:
drivers/nvmem/core.c:827 __nvmem_cell_read() warn: we tested 'cell->bit_offset' before and it was 'false'
drivers/nvmem/core.c
816 static int __nvmem_cell_read(struct nvmem_device *nvmem,
817 struct nvmem_cell *cell,
818 void *buf, size_t *len)
819 {
820 int rc;
821
822 rc = regmap_raw_read(nvmem->regmap, cell->offset, buf, cell->bytes);
823
824 if (IS_ERR_VALUE(rc))
825 return rc;
826
827 /* shift bits in-place */
828 if (cell->bit_offset || cell->bit_offset)
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
Looks like a copy and paste bug. Maybe something else was intended?
829 nvmem_shift_read_buffer_in_place(cell, buf); 830 831 *len = cell->bytes; 832 833 return 0; 834 }
regards,
dan carpenter
Thanks Dan,
for reporting this.
Quoted 24 lines · Dan Carpenter
Hello Srinivas Kandagatla,
The patch
69aba7948cbe: "nvmem: Add a simple NVMEM framework for consumers" from Jul 27, 2015, leads to the following static checker warning:drivers/nvmem/core.c:827 __nvmem_cell_read() warn: we tested 'cell->bit_offset' before and it was 'false'
drivers/nvmem/core.c816 static int __nvmem_cell_read(struct nvmem_device *nvmem, 817 struct nvmem_cell *cell, 818 void *buf, size_t *len) 819 { 820 int rc; 821 822 rc = regmap_raw_read(nvmem->regmap, cell->offset, buf, cell->bytes); 823 824 if (IS_ERR_VALUE(rc)) 825 return rc; 826 827 /* shift bits in-place */ 828 if (cell->bit_offset || cell->bit_offset) ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
Quoted 1 line
Looks like a copy and paste bug. Maybe something else was intended?
Yes, its a copy paste error, I can be fixed by below patch which am going to send to Greg to pick up.
------------------>snip<-------------------------
Author: Srinivas Kandagatla <[email protected]> Date: Fri Aug 14 11:00:57 2015 +0100
nvmem: core: fix a copy paste error
This patch fixes a copy paste error in a check which is performed to determine if the cell is specified in bits or not.
drivers/nvmem/core.c +1 -1
@@ -825,7 +825,7 @@ static int __nvmem_cell_read(struct nvmem_device *nvmem,return rc;/* shift bits in-place */ -if (cell->bit_offset || cell->bit_offset) +if (cell->bit_offset || cell->nbits)nvmem_shift_read_buffer_in_place (cell, buf); *len = cell->bytes;
------------------>snip<-------------------------
--srini
Quoted 12 lines
829 nvmem_shift_read_buffer_in_place(cell, buf); 830 831 *len = cell->bytes; 832 833 return 0; 834 }regards,
dan carpenter