summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-05-24 08:52:22 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-07-01 08:18:53 +0200
commit5f03074ea98b64b55c133b35ee144fdc909e6d69 (patch)
tree1a61fd84a5a44d98297014486eca663221ff4cbc /fs
parent20addb80f65076b3a81c7d778f7b93d445a96841 (diff)
downloadbarebox-5f03074ea98b64b55c133b35ee144fdc909e6d69.tar.gz
barebox-5f03074ea98b64b55c133b35ee144fdc909e6d69.tar.xz
resource: store 'end' instead of 'size' in struct resource
Storing the size instead of the resource end in struct resource was a mistake. 'size' ranges from 0 to UINT[32|64]_MAX + 1 which obviously leads to problems. 'end' on the other hand will never exceed UINT[32|64]_MAX. Also this way we can express a iomem region covering the whole address space. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r--fs/devfs.c2
-rw-r--r--fs/fs.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/fs/devfs.c b/fs/devfs.c
index ae48451b6c..b746a0e147 100644
--- a/fs/devfs.c
+++ b/fs/devfs.c
@@ -166,7 +166,7 @@ static int devfs_truncate(struct device_d *dev, FILE *f, ulong size)
{
if (f->dev->num_resources < 1)
return -ENOSPC;
- if (size > f->dev->resource[0].size)
+ if (size > resource_size(&f->dev->resource[0]))
return -ENOSPC;
return 0;
}
diff --git a/fs/fs.c b/fs/fs.c
index af73c8c8aa..8c6102d473 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -1252,7 +1252,7 @@ ssize_t mem_read(struct cdev *cdev, void *buf, size_t count, ulong offset, ulong
return -1;
dev = cdev->dev;
- size = min((ulong)count, dev->resource[0].size - offset);
+ size = min((ulong)count, resource_size(&dev->resource[0]) - offset);
memcpy_sz(buf, dev_get_mem_region(dev, 0) + offset, size, flags & O_RWSIZE_MASK);
return size;
}
@@ -1267,7 +1267,7 @@ ssize_t mem_write(struct cdev *cdev, const void *buf, size_t count, ulong offset
return -1;
dev = cdev->dev;
- size = min((ulong)count, dev->resource[0].size - offset);
+ size = min((ulong)count, resource_size(&dev->resource[0]) - offset);
memcpy_sz(dev_get_mem_region(dev, 0) + offset, buf, size, flags & O_RWSIZE_MASK);
return size;
}