|
@@ -15,6 +15,7 @@
|
|
|
#include <linux/zorro.h>
|
|
|
#include <linux/stat.h>
|
|
|
#include <linux/string.h>
|
|
|
+#include <linux/fs.h>
|
|
|
|
|
|
#include "zorro.h"
|
|
|
|
|
@@ -56,12 +57,6 @@ static ssize_t zorro_read_config(struct kobject *kobj,
|
|
|
struct zorro_dev *z = to_zorro_dev(container_of(kobj, struct device,
|
|
|
kobj));
|
|
|
struct ConfigDev cd;
|
|
|
- unsigned int size = sizeof(cd);
|
|
|
-
|
|
|
- if (off > size)
|
|
|
- return 0;
|
|
|
- if (off+count > size)
|
|
|
- count = size-off;
|
|
|
|
|
|
/* Construct a ConfigDev */
|
|
|
memset(&cd, 0, sizeof(cd));
|
|
@@ -71,8 +66,7 @@ static ssize_t zorro_read_config(struct kobject *kobj,
|
|
|
cd.cd_BoardAddr = (void *)zorro_resource_start(z);
|
|
|
cd.cd_BoardSize = zorro_resource_len(z);
|
|
|
|
|
|
- memcpy(buf, (void *)&cd+off, count);
|
|
|
- return count;
|
|
|
+ return memory_read_from_buffer(buf, count, &off, &cd, sizeof(cd));
|
|
|
}
|
|
|
|
|
|
static struct bin_attribute zorro_config_attr = {
|