History

remoteproc: Use size_t instead of int for rproc_mem_entry len

Now that rproc_da_to_va uses a size_t for length, use a size_t for len field of rproc_mem_entry. Function used to create such structures now takes a size_t instead of int to allow full size range to be handled.

Clement Leger committed 6 years ago

Commit 096ee781 parent 9ce3bf23 files · +12 −10Browse files

Unified · Split

3 files
  1. drivers/remoteproc/remoteproc_core.c +8 −6
  2. drivers/remoteproc/remoteproc_debugfs.c +1 −1
  3. include/linux/remoteproc.h +3 −3
drivers/remoteproc/remoteproc_core.c+8−6
@@ -319,8 +319,9 @@ int rproc_alloc_vring(struct rproc_vdev *rvdev, int i) · 318 unmodified lines
319 struct device *dev = &rproc->dev;319 struct device *dev = &rproc->dev;
320 struct rproc_vring *rvring = &rvdev->vring[i];320 struct rproc_vring *rvring = &rvdev->vring[i];
321 struct fw_rsc_vdev *rsc;321 struct fw_rsc_vdev *rsc;
322 int ret, size, notifyid;322 int ret, notifyid;
323 struct rproc_mem_entry *mem;323 struct rproc_mem_entry *mem;
324 size_t size;
324 325
325 /* actual size of vring (in bytes) */326 /* actual size of vring (in bytes) */
326 size = PAGE_ALIGN(vring_size(rvring->len, rvring->align));327 size = PAGE_ALIGN(vring_size(rvring->len, rvring->align));
@@ -750,11 +751,12 @@ static int rproc_alloc_carveout(struct rproc *rproc, · 423 unmodified lines
750 va = dma_alloc_coherent(dev->parent, mem->len, &dma, GFP_KERNEL);751 va = dma_alloc_coherent(dev->parent, mem->len, &dma, GFP_KERNEL);
751 if (!va) {752 if (!va) {
752 dev_err(dev->parent,753 dev_err(dev->parent,
753 "failed to allocate dma memory: len 0x%x\n", mem->len);754 "failed to allocate dma memory: len 0x%zx\n",
755 mem->len);
754 return -ENOMEM;756 return -ENOMEM;
755 }757 }
756 758
757 dev_dbg(dev, "carveout va %pK, dma %pad, len 0x%x\n",759 dev_dbg(dev, "carveout va %pK, dma %pad, len 0x%zx\n",
758 va, &dma, mem->len);760 va, &dma, mem->len);
759 761
760 if (mem->da != FW_RSC_ADDR_ANY && !rproc->domain) {762 if (mem->da != FW_RSC_ADDR_ANY && !rproc->domain) {
@@ -962,7 +964,7 @@ EXPORT_SYMBOL(rproc_add_carveout); · 201 unmodified lines
962 */964 */
963struct rproc_mem_entry *965struct rproc_mem_entry *
964rproc_mem_entry_init(struct device *dev,966rproc_mem_entry_init(struct device *dev,
965 void *va, dma_addr_t dma, int len, u32 da,967 void *va, dma_addr_t dma, size_t len, u32 da,
966 int (*alloc)(struct rproc *, struct rproc_mem_entry *),968 int (*alloc)(struct rproc *, struct rproc_mem_entry *),
967 int (*release)(struct rproc *, struct rproc_mem_entry *),969 int (*release)(struct rproc *, struct rproc_mem_entry *),
968 const char *name, ...)970 const char *name, ...)
@@ -1004,7 +1006,7 @@ EXPORT_SYMBOL(rproc_mem_entry_init); · 35 unmodified lines
1004 * provided by client.1006 * provided by client.
1005 */1007 */
1006struct rproc_mem_entry *1008struct rproc_mem_entry *
1007rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, int len,1009rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, size_t len,
1008 u32 da, const char *name, ...)1010 u32 da, const char *name, ...)
1009{1011{
1010 struct rproc_mem_entry *mem;1012 struct rproc_mem_entry *mem;
@@ -1275,7 +1277,7 @@ static void rproc_resource_cleanup(struct rproc *rproc) · 264 unmodified lines
1275 unmapped = iommu_unmap(rproc->domain, entry->da, entry->len);1277 unmapped = iommu_unmap(rproc->domain, entry->da, entry->len);
1276 if (unmapped != entry->len) {1278 if (unmapped != entry->len) {
1277 /* nothing much to do besides complaining */1279 /* nothing much to do besides complaining */
1278 dev_err(dev, "failed to unmap %u/%zu\n", entry->len,1280 dev_err(dev, "failed to unmap %zx/%zu\n", entry->len,
1279 unmapped);1281 unmapped);
1280 }1282 }
1281 1283
drivers/remoteproc/remoteproc_debugfs.c+1−1
@@ -293,7 +293,7 @@ static int rproc_carveouts_show(struct seq_file *seq, void *p) · 292 unmodified lines
293 seq_printf(seq, "\tVirtual address: %pK\n", carveout->va);293 seq_printf(seq, "\tVirtual address: %pK\n", carveout->va);
294 seq_printf(seq, "\tDMA address: %pad\n", &carveout->dma);294 seq_printf(seq, "\tDMA address: %pad\n", &carveout->dma);
295 seq_printf(seq, "\tDevice address: 0x%x\n", carveout->da);295 seq_printf(seq, "\tDevice address: 0x%x\n", carveout->da);
296 seq_printf(seq, "\tLength: 0x%x Bytes\n\n", carveout->len);296 seq_printf(seq, "\tLength: 0x%zx Bytes\n\n", carveout->len);
297 }297 }
298 298
299 return 0;299 return 0;
include/linux/remoteproc.h+3−3
@@ -329,7 +329,7 @@ struct rproc; · 328 unmodified lines
329struct rproc_mem_entry {329struct rproc_mem_entry {
330 void *va;330 void *va;
331 dma_addr_t dma;331 dma_addr_t dma;
332 int len;332 size_t len;
333 u32 da;333 u32 da;
334 void *priv;334 void *priv;
335 char name[32];335 char name[32];
@@ -599,13 +599,13 @@ void rproc_add_carveout(struct rproc *rproc, struct rproc_mem_entry *mem); · 263 unmodified lines
599 599
600struct rproc_mem_entry *600struct rproc_mem_entry *
601rproc_mem_entry_init(struct device *dev,601rproc_mem_entry_init(struct device *dev,
602 void *va, dma_addr_t dma, int len, u32 da,602 void *va, dma_addr_t dma, size_t len, u32 da,
603 int (*alloc)(struct rproc *, struct rproc_mem_entry *),603 int (*alloc)(struct rproc *, struct rproc_mem_entry *),
604 int (*release)(struct rproc *, struct rproc_mem_entry *),604 int (*release)(struct rproc *, struct rproc_mem_entry *),
605 const char *name, ...);605 const char *name, ...);
606 606
607struct rproc_mem_entry *607struct rproc_mem_entry *
608rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, int len,608rproc_of_resm_mem_entry_init(struct device *dev, u32 of_resm_idx, size_t len,
609 u32 da, const char *name, ...);609 u32 da, const char *name, ...);
610 610
611int rproc_boot(struct rproc *rproc);611int rproc_boot(struct rproc *rproc);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t