Patch from Bob Miller The get_disk() function should check the return value from kobject_get() before passing it to to_disk(). This patch fixes this error. (Acked by Pat) drivers/block/genhd.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletion(-) diff -puN drivers/block/genhd.c~get_disk-error-checking drivers/block/genhd.c --- 25/drivers/block/genhd.c~get_disk-error-checking 2003-03-17 21:33:24.000000000 -0800 +++ 25-akpm/drivers/block/genhd.c 2003-03-17 21:33:24.000000000 -0800 @@ -538,12 +538,20 @@ struct gendisk *alloc_disk(int minors) struct gendisk *get_disk(struct gendisk *disk) { struct module *owner; + struct kobject *kobj; + if (!disk->fops) return NULL; owner = disk->fops->owner; if (owner && !try_module_get(owner)) return NULL; - return to_disk(kobject_get(&disk->kobj)); + kobj = kobject_get(&disk->kobj); + if (kobj == NULL) { + module_put(owner); + return NULL; + } + return to_disk(kobj); + } void put_disk(struct gendisk *disk) _