summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/base/firmware_class.c16
-rw-r--r--include/linux/firmware.h8
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;
}