[PATCH] MTD + 2.6.13/2.6.14 OOPS in class_device_create() fix
Artem B. Bityutskiy
dedekind at yandex.ru
Fri Dec 9 10:46:29 EST 2005
Hello,
Current MTD CVS head oopses in class_device_create().
This are because there is 2 calls in mtdchar.c which look like this:
class_device_create(mtd_class, NULL, MKDEV(MTD_CHAR_MAJOR,
mtd->index*2), NULL, "mtd%d", mtd->index);
This is perfectly fine with 2.6.15-rc5, where class_device_create() has
the following prototype:
struct class_device *class_device_create(struct class *cls, struct
class_device *parent, dev_t devt, struct device *device, char *fmt, ...)
But it causes oops in 2.6.14.3, where class_device_create() has the
following (different) prototype:
struct class_device *class_device_create(struct class *cls, dev_t devt,
struct device *device, char *fmt, ...)
I.e., one more argument 'parent' was introduced in 2.6.15-rc5. And since
the function accepts any number of arguments, it compiles well, but
doesn't work.
Usually problems like this are solved by means of
include/linux/mtd/compatmac.h, but in this case I have no idea how to
solve this gracefully there.
As 2.6.15 is not yet out and 2.6.14 is still used, I offer the attached
hotfix for now.
--
Best Regards,
Artem B. Bityutskiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list