nvmem: core: fix read buffer in place
authorJorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Sat, 13 Apr 2019 10:32:58 +0000 (11:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 15 Jun 2019 09:54:54 +0000 (11:54 +0200)
commitc4e22c2bf4c1f2bbd11d12de6c9b0d6cb1a2fb5d
tree4317d3fbc25f3cf78bc8b9be44e022160e221c97
parentc9ffc882f27dfe3239bf850c5eed2529b8c29642
nvmem: core: fix read buffer in place

[ Upstream commit 2fe518fecb3a4727393be286db9804cd82ee2d91 ]

When the bit_offset in the cell is zero, the pointer to the msb will
not be properly initialized (ie, will still be pointing to the first
byte in the buffer).

This being the case, if there are bits to clear in the msb, those will
be left untouched while the mask will incorrectly clear bit positions
on the first byte.

This commit also makes sure that any byte unused in the cell is
cleared.

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvmem/core.c