> +static int blk_nvmem_reg_read(void *priv, unsigned int from, > + void *val, size_t bytes) > +{ > + pgoff_t f_index = from >> PAGE_SHIFT; > + struct address_space *mapping; > + struct blk_nvmem *bnv = priv; > + size_t bytes_left = bytes; > + struct folio *folio; > + unsigned long offs, to_read; > + void *p; Btw, this function really should be using kern_read on a file using filp_open instead of poking into block device internals. That way you can even have a generic file provider that works on anything that can be read from.