Il giorno gio 15 lug 2021 alle ore 18:50 Andy Shevchenko <andy.shevchenko@xxxxxxxxx> ha scritto: > > > +/* must be called in configuration mode */ > > +int bno055_calibration_load(struct bno055_priv *priv, const struct firmware *fw) > > +{ > > + int i; > > + unsigned int tmp; > > + u8 cal[BNO055_CALDATA_LEN]; > > + int read, tot_read = 0; > > + int ret = 0; > > + char *buf = kmalloc(fw->size + 1, GFP_KERNEL); > > + > > + if (!buf) > > + return -ENOMEM; > > + > > + memcpy(buf, fw->data, fw->size); > > kmemdup() ? > As a second thought: no, the whole point of reallocating and copying here, is that we want to allocate an extra byte; kmemdup() will allocate and copy only the very same amount of memory