[S390] qdio: fix broken pointer in case of CONFIG_DEBUG_FS is disabled
authorJan Glauber <jang@linux.vnet.ibm.com>
Fri, 9 Jan 2009 11:14:55 +0000 (12:14 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 9 Jan 2009 11:15:07 +0000 (12:15 +0100)
If CONFIG_DEBUG_FS is disabled debugfs_create_file returns -ENODEV instead
of zero. Since the return value is stored and used at shutdown to remove
existing entries an OOPS may be triggered.

Add a check of the debugfs_create_file return value and in case of an error
set the entry to NULL so it will be ignored at shutdown.

Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/qdio_debug.c

index f8a3b6967f691aa504711cf6b49867c8879ace5c..da7afb04e71ff8003c0b6139d169590a0b1caf2e 100644 (file)
@@ -169,6 +169,8 @@ static void setup_debugfs_entry(struct qdio_q *q, struct ccw_device *cdev)
                 q->nr);
        debugfs_queues[i] = debugfs_create_file(name, S_IFREG | S_IRUGO | S_IWUSR,
                                                debugfs_root, q, &debugfs_fops);
+       if (IS_ERR(debugfs_queues[i]))
+               debugfs_queues[i] = NULL;
 }
 
 void qdio_setup_debug_entries(struct qdio_irq *irq_ptr, struct ccw_device *cdev)