|
@@ -276,9 +276,12 @@ int blk_register_queue(struct gendisk *disk)
|
|
|
|
|
|
struct request_queue *q = disk->queue;
|
|
struct request_queue *q = disk->queue;
|
|
|
|
|
|
- if (!q || !q->request_fn)
|
|
|
|
|
|
+ if (WARN_ON(!q))
|
|
return -ENXIO;
|
|
return -ENXIO;
|
|
|
|
|
|
|
|
+ if (!q->request_fn)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
ret = kobject_add(&q->kobj, kobject_get(&disk->dev.kobj),
|
|
ret = kobject_add(&q->kobj, kobject_get(&disk->dev.kobj),
|
|
"%s", "queue");
|
|
"%s", "queue");
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
@@ -300,7 +303,10 @@ void blk_unregister_queue(struct gendisk *disk)
|
|
{
|
|
{
|
|
struct request_queue *q = disk->queue;
|
|
struct request_queue *q = disk->queue;
|
|
|
|
|
|
- if (q && q->request_fn) {
|
|
|
|
|
|
+ if (WARN_ON(!q))
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ if (q->request_fn) {
|
|
elv_unregister_queue(q);
|
|
elv_unregister_queue(q);
|
|
|
|
|
|
kobject_uevent(&q->kobj, KOBJ_REMOVE);
|
|
kobject_uevent(&q->kobj, KOBJ_REMOVE);
|