On Fri, Jun 05, 2020 at 10:04:52PM -0700, Scott Branden wrote: > static struct fw_priv *__allocate_fw_priv(const char *fw_name, > struct firmware_cache *fwc, > - void *dbuf, size_t size) > + void *dbuf, size_t size, > + size_t offset, > + enum kernel_pread_opt opt) > { Your types are screwed up. size_t is the size of something in memory. loff_t is an offset in a file. This should be an loff_t. One of the other patches has the opposite problem. (this is kind of a minor problem compared to all the complexity problems, but it's worth mentioning)