mtd/drivers/mtd/devices phram.c,1.7,1.8
joern at infradead.org
joern at infradead.org
Fri Dec 10 12:46:34 EST 2004
Update of /home/cvs/mtd/drivers/mtd/devices
In directory phoenix.infradead.org:/home/joern/mtd/drivers/mtd/devices
Modified Files:
phram.c
Log Message:
o Remove one kmalloc by embedding struct mtdinfo in struct phram_mtd_list.
o Shorten "mtdinfo" to "mtd". No information lost.
Index: phram.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/devices/phram.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- phram.c 10 Dec 2004 17:33:50 -0000 1.7
+++ phram.c 10 Dec 2004 17:46:31 -0000 1.8
@@ -29,8 +29,8 @@
#define ERROR(fmt, args...) printk(KERN_ERR "phram: " fmt , ## args)
struct phram_mtd_list {
+ struct mtd_info mtd;
struct list_head list;
- struct mtd_info *mtdinfo;
};
static LIST_HEAD(phram_list);
@@ -110,9 +110,8 @@
struct phram_mtd_list *this;
list_for_each_entry(this, &phram_list, list) {
- del_mtd_device(this->mtdinfo);
- iounmap(this->mtdinfo->priv);
- kfree(this->mtdinfo);
+ del_mtd_device(&this->mtd);
+ iounmap(this->mtd.priv);
kfree(this);
}
}
@@ -126,45 +125,39 @@
if (!new)
goto out0;
- new->mtdinfo = kmalloc(sizeof(struct mtd_info), GFP_KERNEL);
- if (!new->mtdinfo)
- goto out1;
-
- memset(new->mtdinfo, 0, sizeof(struct mtd_info));
+ memset(new, 0, sizeof(*new));
ret = -EIO;
- new->mtdinfo->priv = ioremap(start, len);
- if (!new->mtdinfo->priv) {
+ new->mtd.priv = ioremap(start, len);
+ if (!new->mtd.priv) {
ERROR("ioremap failed\n");
- goto out2;
+ goto out1;
}
- new->mtdinfo->name = name;
- new->mtdinfo->size = len;
- new->mtdinfo->flags = MTD_CAP_RAM | MTD_ERASEABLE | MTD_VOLATILE;
- new->mtdinfo->erase = phram_erase;
- new->mtdinfo->point = phram_point;
- new->mtdinfo->unpoint = phram_unpoint;
- new->mtdinfo->read = phram_read;
- new->mtdinfo->write = phram_write;
- new->mtdinfo->owner = THIS_MODULE;
- new->mtdinfo->type = MTD_RAM;
- new->mtdinfo->erasesize = 0x0;
+ new->mtd.name = name;
+ new->mtd.size = len;
+ new->mtd.flags = MTD_CAP_RAM | MTD_ERASEABLE | MTD_VOLATILE;
+ new->mtd.erase = phram_erase;
+ new->mtd.point = phram_point;
+ new->mtd.unpoint = phram_unpoint;
+ new->mtd.read = phram_read;
+ new->mtd.write = phram_write;
+ new->mtd.owner = THIS_MODULE;
+ new->mtd.type = MTD_RAM;
+ new->mtd.erasesize = 0;
ret = -EAGAIN;
- if (add_mtd_device(new->mtdinfo)) {
+ if (add_mtd_device(&new->mtd)) {
ERROR("Failed to register new device\n");
- goto out3;
+ goto out2;
}
list_add_tail(&new->list, &phram_list);
return 0;
-out3:
- iounmap(new->mtdinfo->priv);
out2:
- kfree(new->mtdinfo);
+ iounmap(new->mtd.priv);
out1:
kfree(new);
out0:
More information about the linux-mtd-cvs
mailing list