@@ -1541,6 +1541,7 @@ static int __nvmem_cell_read(struct nvmem_device *nvmem,
struct nvmem_cell_entry *cell,
void *buf, size_t *len, const char *id, int index)
{
+ size_t bytes = cell->bytes;
int rc;
rc = nvmem_reg_read(nvmem, cell->offset, buf, cell->bytes);
@@ -1554,13 +1555,13 @@ static int __nvmem_cell_read(struct nvmem_device *nvmem,
if (cell->read_post_process) {
rc = cell->read_post_process(cell->priv, id, index,
- cell->offset, buf, cell->bytes);
+ cell->offset, buf, &bytes);
if (rc)
return rc;
}
if (len)
- *len = cell->bytes;
+ *len = bytes;
return 0;
}
@@ -223,15 +223,15 @@ static int imx_ocotp_read(void *context, unsigned int offset,
}
static int imx_ocotp_cell_pp(void *context, const char *id, int index,
- unsigned int offset, void *data, size_t bytes)
+ unsigned int offset, void *data, size_t *bytes)
{
u8 *buf = data;
int i;
/* Deal with some post processing of nvmem cell data */
if (id && !strcmp(id, "mac-address"))
- for (i = 0; i < bytes / 2; i++)
- swap(buf[i], buf[bytes - i - 1]);
+ for (i = 0; i < *bytes / 2; i++)
+ swap(buf[i], buf[*bytes - i - 1]);
return 0;
}
@@ -76,7 +76,7 @@ static const char *onie_tlv_cell_name(u8 type)
static int onie_tlv_mac_read_cb(void *priv, const char *id, int index,
unsigned int offset, void *buf,
- size_t bytes)
+ size_t *bytes)
{
eth_addr_add(buf, index);
@@ -23,9 +23,9 @@ struct sl28vpd_v1 {
static int sl28vpd_mac_address_pp(void *priv, const char *id, int index,
unsigned int offset, void *buf,
- size_t bytes)
+ size_t *bytes)
{
- if (bytes != ETH_ALEN)
+ if (*bytes != ETH_ALEN)
return -EINVAL;
if (index < 0)
@@ -21,7 +21,7 @@ typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
/* used for vendor specific post processing of cell data */
typedef int (*nvmem_cell_post_process_t)(void *priv, const char *id, int index,
unsigned int offset, void *buf,
- size_t bytes);
+ size_t *bytes);
enum nvmem_type {
NVMEM_TYPE_UNKNOWN = 0,