diff options
-rw-r--r-- | drivers/base/firmware_class.c | 16 | ||||
-rw-r--r-- | include/linux/firmware.h | 8 |
2 files changed, 13 insertions, 11 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index bf5d577e5292..8b19f239c1e8 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -147,7 +147,7 @@ struct firmware_buf { phys_addr_t dest_addr; size_t dest_size; void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data); - void (*unmap_fw_mem)(void *virt, void *data); + void (*unmap_fw_mem)(void *virt, size_t size, void *data); void *map_data; #ifdef CONFIG_FW_LOADER_USER_HELPER bool is_paged_buf; @@ -179,7 +179,7 @@ struct fw_desc { phys_addr_t dest_addr; size_t dest_size; void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data); - void (*unmap_fw_mem)(void *virt, void *data); + void (*unmap_fw_mem)(void *virt, size_t size, void *data); void *map_data; struct module *module; void *context; @@ -351,11 +351,11 @@ static int fw_read_file_contents(struct file *file, struct firmware_buf *fw_buf) fw_buf->data = buf; fw_buf->size = size; if (fw_buf->dest_addr) - fw_buf->unmap_fw_mem(buf, fw_buf->map_data); + fw_buf->unmap_fw_mem(buf, fw_buf->size, fw_buf->map_data); return 0; fail: if (fw_buf->dest_addr) - fw_buf->unmap_fw_mem(buf, fw_buf->map_data); + fw_buf->unmap_fw_mem(buf, fw_buf->size, fw_buf->map_data); else vfree(buf); return rc; @@ -786,7 +786,7 @@ static int __firmware_data_rw(struct firmware_priv *fw_priv, char *buffer, memcpy(fw_buf, buffer, count); *offset += count; - buf->unmap_fw_mem(fw_buf, buf->map_data); + buf->unmap_fw_mem(fw_buf, count, buf->map_data); out: return retval; @@ -1436,7 +1436,7 @@ request_firmware_into_buf(const char *name, struct device *device, phys_addr_t dest_addr, size_t dest_size, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), - void (*unmap_fw_mem)(void *virt, void *data), + void (*unmap_fw_mem)(void *virt, size_t sz, void *data), void *map_data) { struct fw_desc desc; @@ -1504,7 +1504,7 @@ _request_firmware_nowait( void (*cont)(const struct firmware *fw, void *context), bool nocache, phys_addr_t dest_addr, size_t dest_size, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), - void (*unmap_fw_mem)(void *virt, void *data), + void (*unmap_fw_mem)(void *virt, size_t size, void *data), void *map_data) { struct fw_desc *desc; @@ -1599,7 +1599,7 @@ request_firmware_nowait_into_buf( void (*cont)(const struct firmware *fw, void *context), phys_addr_t dest_addr, size_t dest_size, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), - void (*unmap_fw_mem)(void *virt, void *data), + void (*unmap_fw_mem)(void *virt, size_t size, void *data), void *map_data) { return _request_firmware_nowait(module, uevent, name, device, gfp, diff --git a/include/linux/firmware.h b/include/linux/firmware.h index 7a49a0976f06..8ddd41a5ff2c 100644 --- a/include/linux/firmware.h +++ b/include/linux/firmware.h @@ -52,7 +52,8 @@ int request_firmware_into_buf(const char *name, struct device *device, phys_addr_t dest_addr, size_t dest_size, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), - void (*unmap_fw_mem)(void *virt, void *data), + void (*unmap_fw_mem)(void *virt, size_t size, + void *data), void *data); int request_firmware_nowait_into_buf( struct module *module, bool uevent, @@ -60,7 +61,7 @@ int request_firmware_nowait_into_buf( void (*cont)(const struct firmware *fw, void *context), phys_addr_t dest_addr, size_t dest_size, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), - void (*unmap_fw_mem)(void *virt, void *data), void *data); + void (*unmap_fw_mem)(void *virt, size_t size, void *data), void *data); void release_firmware(const struct firmware *fw); #else static inline int request_firmware(const struct firmware **fw, @@ -76,6 +77,7 @@ static inline int request_firmware_into_buf(const char *name, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), void (*unmap_fw_mem)(void *virt, + size_t size, void *data), void *data) { @@ -94,7 +96,7 @@ static inline int request_firmware_nowait_into_buf( void (*cont)(const struct firmware *fw, void *context), phys_addr_t dest_addr, size_t dest_size, void * (*map_fw_mem)(phys_addr_t phys, size_t size, void *data), - void (*unmap_fw_mem)(void *virt, void *data), void *data) + void (*unmap_fw_mem)(void *virt, size_t size, void *data), void *data) { return -EINVAL; } |