summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/block.c1
-rw-r--r--common/firmware.c2
-rw-r--r--common/ratp/md.c11
3 files changed, 7 insertions, 7 deletions
diff --git a/common/block.c b/common/block.c
index 2917218..97cf5dc 100644
--- a/common/block.c
+++ b/common/block.c
@@ -349,7 +349,6 @@ static struct cdev_operations block_ops = {
#endif
.close = block_op_close,
.flush = block_op_flush,
- .lseek = dev_lseek_default,
};
int blockdevice_register(struct block_device *blk)
diff --git a/common/firmware.c b/common/firmware.c
index 250fef5..9d55d73 100644
--- a/common/firmware.c
+++ b/common/firmware.c
@@ -177,7 +177,7 @@ int firmwaremgr_register(struct firmware_handler *fh)
cdev = &mgr->cdev;
cdev->name = xstrdup(fh->id);
- cdev->size = FILE_SIZE_STREAM;
+ cdev->flags = DEVFS_IS_CHARACTER_DEV;
cdev->ops = &firmware_ops;
cdev->priv = mgr;
cdev->dev = fh->dev;
diff --git a/common/ratp/md.c b/common/ratp/md.c
index 9ce7e99..a25cbf1 100644
--- a/common/ratp/md.c
+++ b/common/ratp/md.c
@@ -59,8 +59,6 @@ struct ratp_bb_md_response {
uint8_t buffer[];
} __packed;
-extern char *mem_rw_buf;
-
static int do_ratp_mem_md(const char *filename,
loff_t start,
loff_t size,
@@ -70,21 +68,23 @@ static int do_ratp_mem_md(const char *filename,
int ret = 0;
int fd;
void *map;
+ char *buf = NULL;
fd = open_and_lseek(filename, O_RWSIZE_1 | O_RDONLY, start);
if (fd < 0)
return -errno;
map = memmap(fd, PROT_READ);
- if (map != (void *)-1) {
+ if (map != MAP_FAILED) {
memcpy(output, (uint8_t *)(map + start), size);
goto out;
}
+ buf = xmalloc(RW_BUF_SIZE);
t = 0;
do {
now = min(size, (loff_t)RW_BUF_SIZE);
- r = read(fd, mem_rw_buf, now);
+ r = read(fd, buf, now);
if (r < 0) {
ret = -errno;
perror("read");
@@ -93,13 +93,14 @@ static int do_ratp_mem_md(const char *filename,
if (!r)
goto out;
- memcpy(output + t, (uint8_t *)(mem_rw_buf), r);
+ memcpy(output + t, buf, r);
size -= r;
t += r;
} while (size);
out:
+ free(buf);
close(fd);
return ret;