From: Heiko Carstens <[email protected]>
[S390] tape class return value handling.
Without this patch register_tape_dev() will always fail, but might
return a value that is not an error number. This will lead to accesses
to already freed memory areas...
Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---
drivers/s390/char/tape_class.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff -urpN linux-2.6/drivers/s390/char/tape_class.c linux-2.6-patched/drivers/s390/char/tape_class.c
--- linux-2.6/drivers/s390/char/tape_class.c 2006-08-07 14:14:29.000000000 +0200
+++ linux-2.6-patched/drivers/s390/char/tape_class.c 2006-08-07 14:14:42.000000000 +0200
@@ -76,7 +76,7 @@ struct tape_class_device *register_tape_
device,
"%s", tcd->device_name
);
- rc = PTR_ERR(tcd->class_device);
+ rc = IS_ERR(tcd->class_device) ? PTR_ERR(tcd->class_device) : 0;
if (rc)
goto fail_with_cdev;
rc = sysfs_create_link(