Skip to contentSkip to conversation

compile fix for driver/block/paride/pd.c

PATCH In review Vinay K Nallamothu 2 participants 3 messages Aug 9, 2003 Block layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 compile fix for driver/block/paride/pd.c

This patch removes the extra argument to blk_init_queue which prevents the module from compiling.

drivers/block/paride/pd.c +1 -1
@@ -893,7 +893,7 @@
 	if (register_blkdev(major, name))
 		return -1;
 
-	blk_init_queue(&pd_queue, do_pd_request, &pd_lock);
+	blk_init_queue(do_pd_request, &pd_lock);
 	blk_queue_max_sectors(&pd_queue, cluster);
 
 	printk("%s: %s version %s, major %d, cluster %d, nice %d\n",
#1 lore raw

blk_init_queue now returns a request queue, so this patch will not work properly. See the changes in test2 -> test3 for how to do it correctly.

Quoted 26 lines · Vinay K Nallamothu

This patch removes the extra argument to blk_init_queue which prevents the module from compiling.

drivers/block/paride/pd.c +1 -2
@@ -893,7 +893,7 @@
 	if (register_blkdev(major, name))
 		return -1;
 
-	blk_init_queue(&pd_queue, do_pd_request, &pd_lock);
+	blk_init_queue(do_pd_request, &pd_lock);
 	blk_queue_max_sectors(&pd_queue, cluster);
 
 	printk("%s: %s version %s, major %d, cluster %d, nice %d\n",
 
 
 
-

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#2 lore raw

Hi Nick,

Quoted 3 lines · Nick Piggin

blk_init_queue now returns a request queue, so this patch will not work properly. See the changes in test2 -> test3 for how to do it correctly.

Thanks for pointing out. Here is the one with proper fixes. Compiles fine though not tested.

This patch modifies the code to use the new blk_init_queue.

pd.c | 17 +++++++++++------

 1 files changed, 11 insertions(+), 6 deletions(-)
drivers/block/paride/pd.c +11 -6
diff -urN linux-2.6.0-test3/drivers/block/paride/pd.c linux-2.6.0-test3-nvk/drivers/block/paride/pd.c
@@ -654,7 +654,7 @@
 	return pd_identify(disk);
 }
 
-static struct request_queue pd_queue;
+static struct request_queue* pd_queue;
 
 static int pd_detect(void)
 {
@@ -704,7 +704,7 @@
 			set_capacity(p, disk->capacity);
 			disk->gd = p;
 			p->private_data = disk;
-			p->queue = &pd_queue;
+			p->queue = pd_queue;
 			add_disk(p);
 		}
 	}
@@ -782,7 +782,7 @@
 	spin_lock_irqsave(&pd_lock, saved_flags);
 	end_request(pd_req, success);
 	pd_busy = 0;
-	do_pd_request(&pd_queue);
+	do_pd_request(pd_queue);
 	spin_unlock_irqrestore(&pd_lock, saved_flags);
 }
 
@@ -893,13 +893,18 @@
 	if (register_blkdev(major, name))
 		return -1;
 
-	blk_init_queue(&pd_queue, do_pd_request, &pd_lock);
-	blk_queue_max_sectors(&pd_queue, cluster);
+	pd_queue = blk_init_queue(do_pd_request, &pd_lock);
+	if (!pd_queue)
+		goto error;
+
+	blk_queue_max_sectors(pd_queue, cluster);
 
 	printk("%s: %s version %s, major %d, cluster %d, nice %d\n",
 	       name, name, PD_VERSION, major, cluster, nice);
 	pd_init_units();
 	if (!pd_detect()) {
+		blk_put_queue(pd_queue);
+error:
 		unregister_blkdev(major, name);
 		return -1;
 	}
@@ -920,7 +925,7 @@
 			pi_release(disk->pi);
 		}
 	}
-	blk_cleanup_queue(&pd_queue);
+	blk_put_queue(pd_queue);
 }
 
 MODULE_LICENSE("GPL");