提交 844aa797 编写于 作者: J Joe Perches 提交者: Linus Torvalds

pktcdvd: add struct pktcdvd_device * to pkt_dbg

Add pd->name to output for these debugging messages.

Remove normally compiled out pkt_dbg(2, ...) function entry tracing
equivalents as it's better done via the function tracer.
Signed-off-by: NJoe Perches <joe@perches.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 cd3f2cd0
...@@ -71,12 +71,13 @@ ...@@ -71,12 +71,13 @@
#define DRIVER_NAME "pktcdvd" #define DRIVER_NAME "pktcdvd"
#define pkt_dbg(level, fmt, ...) \ #define pkt_dbg(level, pd, fmt, ...) \
do { \ do { \
if (level == 2 && PACKET_DEBUG >= 2) \ if (level == 2 && PACKET_DEBUG >= 2) \
pr_notice("%s: " fmt, __func__, ##__VA_ARGS__); \ pr_notice("%s: %s():" fmt, \
else if (level == 1 && PACKET_DEBUG >= 1) \ pd->name, __func__, ##__VA_ARGS__); \
pr_notice(fmt, ##__VA_ARGS__); \ else if (level == 1 && PACKET_DEBUG >= 1) \
pr_notice("%s: " fmt, pd->name, ##__VA_ARGS__); \
} while (0) } while (0)
#define MAX_SPEED 0xffff #define MAX_SPEED 0xffff
...@@ -515,7 +516,7 @@ static void pkt_bio_finished(struct pktcdvd_device *pd) ...@@ -515,7 +516,7 @@ static void pkt_bio_finished(struct pktcdvd_device *pd)
{ {
BUG_ON(atomic_read(&pd->cdrw.pending_bios) <= 0); BUG_ON(atomic_read(&pd->cdrw.pending_bios) <= 0);
if (atomic_dec_and_test(&pd->cdrw.pending_bios)) { if (atomic_dec_and_test(&pd->cdrw.pending_bios)) {
pkt_dbg(2, "queue empty\n"); pkt_dbg(2, pd, "queue empty\n");
atomic_set(&pd->iosched.attention, 1); atomic_set(&pd->iosched.attention, 1);
wake_up(&pd->wqueue); wake_up(&pd->wqueue);
} }
...@@ -866,7 +867,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device *pd) ...@@ -866,7 +867,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device *pd)
need_write_seek = 0; need_write_seek = 0;
if (need_write_seek && reads_queued) { if (need_write_seek && reads_queued) {
if (atomic_read(&pd->cdrw.pending_bios) > 0) { if (atomic_read(&pd->cdrw.pending_bios) > 0) {
pkt_dbg(2, "write, waiting\n"); pkt_dbg(2, pd, "write, waiting\n");
break; break;
} }
pkt_flush_cache(pd); pkt_flush_cache(pd);
...@@ -875,7 +876,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device *pd) ...@@ -875,7 +876,7 @@ static void pkt_iosched_process_queue(struct pktcdvd_device *pd)
} else { } else {
if (!reads_queued && writes_queued) { if (!reads_queued && writes_queued) {
if (atomic_read(&pd->cdrw.pending_bios) > 0) { if (atomic_read(&pd->cdrw.pending_bios) > 0) {
pkt_dbg(2, "read, waiting\n"); pkt_dbg(2, pd, "read, waiting\n");
break; break;
} }
pd->iosched.writing = 1; pd->iosched.writing = 1;
...@@ -981,7 +982,7 @@ static void pkt_end_io_read(struct bio *bio, int err) ...@@ -981,7 +982,7 @@ static void pkt_end_io_read(struct bio *bio, int err)
struct pktcdvd_device *pd = pkt->pd; struct pktcdvd_device *pd = pkt->pd;
BUG_ON(!pd); BUG_ON(!pd);
pkt_dbg(2, "bio=%p sec0=%llx sec=%llx err=%d\n", pkt_dbg(2, pd, "bio=%p sec0=%llx sec=%llx err=%d\n",
bio, (unsigned long long)pkt->sector, bio, (unsigned long long)pkt->sector,
(unsigned long long)bio->bi_sector, err); (unsigned long long)bio->bi_sector, err);
...@@ -1000,7 +1001,7 @@ static void pkt_end_io_packet_write(struct bio *bio, int err) ...@@ -1000,7 +1001,7 @@ static void pkt_end_io_packet_write(struct bio *bio, int err)
struct pktcdvd_device *pd = pkt->pd; struct pktcdvd_device *pd = pkt->pd;
BUG_ON(!pd); BUG_ON(!pd);
pkt_dbg(2, "id=%d, err=%d\n", pkt->id, err); pkt_dbg(2, pd, "id=%d, err=%d\n", pkt->id, err);
pd->stats.pkt_ended++; pd->stats.pkt_ended++;
...@@ -1042,7 +1043,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt) ...@@ -1042,7 +1043,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
spin_unlock(&pkt->lock); spin_unlock(&pkt->lock);
if (pkt->cache_valid) { if (pkt->cache_valid) {
pkt_dbg(2, "zone %llx cached\n", pkt_dbg(2, pd, "zone %llx cached\n",
(unsigned long long)pkt->sector); (unsigned long long)pkt->sector);
goto out_account; goto out_account;
} }
...@@ -1065,7 +1066,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt) ...@@ -1065,7 +1066,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
p = (f * CD_FRAMESIZE) / PAGE_SIZE; p = (f * CD_FRAMESIZE) / PAGE_SIZE;
offset = (f * CD_FRAMESIZE) % PAGE_SIZE; offset = (f * CD_FRAMESIZE) % PAGE_SIZE;
pkt_dbg(2, "Adding frame %d, page:%p offs:%d\n", pkt_dbg(2, pd, "Adding frame %d, page:%p offs:%d\n",
f, pkt->pages[p], offset); f, pkt->pages[p], offset);
if (!bio_add_page(bio, pkt->pages[p], CD_FRAMESIZE, offset)) if (!bio_add_page(bio, pkt->pages[p], CD_FRAMESIZE, offset))
BUG(); BUG();
...@@ -1077,7 +1078,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt) ...@@ -1077,7 +1078,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
} }
out_account: out_account:
pkt_dbg(2, "need %d frames for zone %llx\n", pkt_dbg(2, pd, "need %d frames for zone %llx\n",
frames_read, (unsigned long long)pkt->sector); frames_read, (unsigned long long)pkt->sector);
pd->stats.pkt_started++; pd->stats.pkt_started++;
pd->stats.secs_rg += frames_read * (CD_FRAMESIZE >> 9); pd->stats.secs_rg += frames_read * (CD_FRAMESIZE >> 9);
...@@ -1178,7 +1179,7 @@ static inline void pkt_set_state(struct packet_data *pkt, enum packet_data_state ...@@ -1178,7 +1179,7 @@ static inline void pkt_set_state(struct packet_data *pkt, enum packet_data_state
"IDLE", "WAITING", "READ_WAIT", "WRITE_WAIT", "RECOVERY", "FINISHED" "IDLE", "WAITING", "READ_WAIT", "WRITE_WAIT", "RECOVERY", "FINISHED"
}; };
enum packet_data_state old_state = pkt->state; enum packet_data_state old_state = pkt->state;
pkt_dbg(2, "pkt %2d : s=%6llx %s -> %s\n", pkt_dbg(2, pd, "pkt %2d : s=%6llx %s -> %s\n",
pkt->id, (unsigned long long)pkt->sector, pkt->id, (unsigned long long)pkt->sector,
state_name[old_state], state_name[state]); state_name[old_state], state_name[state]);
#endif #endif
...@@ -1198,12 +1199,10 @@ static int pkt_handle_queue(struct pktcdvd_device *pd) ...@@ -1198,12 +1199,10 @@ static int pkt_handle_queue(struct pktcdvd_device *pd)
struct rb_node *n; struct rb_node *n;
int wakeup; int wakeup;
pkt_dbg(2, "\n");
atomic_set(&pd->scan_queue, 0); atomic_set(&pd->scan_queue, 0);
if (list_empty(&pd->cdrw.pkt_free_list)) { if (list_empty(&pd->cdrw.pkt_free_list)) {
pkt_dbg(2, "no pkt\n"); pkt_dbg(2, pd, "no pkt\n");
return 0; return 0;
} }
...@@ -1240,7 +1239,7 @@ static int pkt_handle_queue(struct pktcdvd_device *pd) ...@@ -1240,7 +1239,7 @@ static int pkt_handle_queue(struct pktcdvd_device *pd)
} }
spin_unlock(&pd->lock); spin_unlock(&pd->lock);
if (!bio) { if (!bio) {
pkt_dbg(2, "no bio\n"); pkt_dbg(2, pd, "no bio\n");
return 0; return 0;
} }
...@@ -1256,10 +1255,10 @@ static int pkt_handle_queue(struct pktcdvd_device *pd) ...@@ -1256,10 +1255,10 @@ static int pkt_handle_queue(struct pktcdvd_device *pd)
* to this packet. * to this packet.
*/ */
spin_lock(&pd->lock); spin_lock(&pd->lock);
pkt_dbg(2, "looking for zone %llx\n", (unsigned long long)zone); pkt_dbg(2, pd, "looking for zone %llx\n", (unsigned long long)zone);
while ((node = pkt_rbtree_find(pd, zone)) != NULL) { while ((node = pkt_rbtree_find(pd, zone)) != NULL) {
bio = node->bio; bio = node->bio;
pkt_dbg(2, "found zone=%llx\n", pkt_dbg(2, pd, "found zone=%llx\n",
(unsigned long long)get_zone(bio->bi_sector, pd)); (unsigned long long)get_zone(bio->bi_sector, pd));
if (get_zone(bio->bi_sector, pd) != zone) if (get_zone(bio->bi_sector, pd) != zone)
break; break;
...@@ -1312,7 +1311,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt) ...@@ -1312,7 +1311,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset)) if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset))
BUG(); BUG();
} }
pkt_dbg(2, "vcnt=%d\n", pkt->w_bio->bi_vcnt); pkt_dbg(2, pd, "vcnt=%d\n", pkt->w_bio->bi_vcnt);
/* /*
* Fill-in bvec with data from orig_bios. * Fill-in bvec with data from orig_bios.
...@@ -1323,7 +1322,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt) ...@@ -1323,7 +1322,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
pkt_set_state(pkt, PACKET_WRITE_WAIT_STATE); pkt_set_state(pkt, PACKET_WRITE_WAIT_STATE);
spin_unlock(&pkt->lock); spin_unlock(&pkt->lock);
pkt_dbg(2, "Writing %d frames for zone %llx\n", pkt_dbg(2, pd, "Writing %d frames for zone %llx\n",
pkt->write_size, (unsigned long long)pkt->sector); pkt->write_size, (unsigned long long)pkt->sector);
if (test_bit(PACKET_MERGE_SEGS, &pd->flags) || (pkt->write_size < pkt->frames)) { if (test_bit(PACKET_MERGE_SEGS, &pd->flags) || (pkt->write_size < pkt->frames)) {
...@@ -1355,7 +1354,7 @@ static void pkt_run_state_machine(struct pktcdvd_device *pd, struct packet_data ...@@ -1355,7 +1354,7 @@ static void pkt_run_state_machine(struct pktcdvd_device *pd, struct packet_data
{ {
int uptodate; int uptodate;
pkt_dbg(2, "pkt %d\n", pkt->id); pkt_dbg(2, pd, "pkt %d\n", pkt->id);
for (;;) { for (;;) {
switch (pkt->state) { switch (pkt->state) {
...@@ -1394,7 +1393,7 @@ static void pkt_run_state_machine(struct pktcdvd_device *pd, struct packet_data ...@@ -1394,7 +1393,7 @@ static void pkt_run_state_machine(struct pktcdvd_device *pd, struct packet_data
if (pkt_start_recovery(pkt)) { if (pkt_start_recovery(pkt)) {
pkt_start_write(pd, pkt); pkt_start_write(pd, pkt);
} else { } else {
pkt_dbg(2, "No recovery possible\n"); pkt_dbg(2, pd, "No recovery possible\n");
pkt_set_state(pkt, PACKET_FINISHED_STATE); pkt_set_state(pkt, PACKET_FINISHED_STATE);
} }
break; break;
...@@ -1415,8 +1414,6 @@ static void pkt_handle_packets(struct pktcdvd_device *pd) ...@@ -1415,8 +1414,6 @@ static void pkt_handle_packets(struct pktcdvd_device *pd)
{ {
struct packet_data *pkt, *next; struct packet_data *pkt, *next;
pkt_dbg(2, "\n");
/* /*
* Run state machine for active packets * Run state machine for active packets
*/ */
...@@ -1498,7 +1495,7 @@ static int kcdrwd(void *foobar) ...@@ -1498,7 +1495,7 @@ static int kcdrwd(void *foobar)
if (PACKET_DEBUG > 1) { if (PACKET_DEBUG > 1) {
int states[PACKET_NUM_STATES]; int states[PACKET_NUM_STATES];
pkt_count_states(pd, states); pkt_count_states(pd, states);
pkt_dbg(2, "i:%d ow:%d rw:%d ww:%d rec:%d fin:%d\n", pkt_dbg(2, pd, "i:%d ow:%d rw:%d ww:%d rec:%d fin:%d\n",
states[0], states[1], states[2], states[0], states[1], states[2],
states[3], states[4], states[5]); states[3], states[4], states[5]);
} }
...@@ -1509,9 +1506,9 @@ static int kcdrwd(void *foobar) ...@@ -1509,9 +1506,9 @@ static int kcdrwd(void *foobar)
min_sleep_time = pkt->sleep_time; min_sleep_time = pkt->sleep_time;
} }
pkt_dbg(2, "sleeping\n"); pkt_dbg(2, pd, "sleeping\n");
residue = schedule_timeout(min_sleep_time); residue = schedule_timeout(min_sleep_time);
pkt_dbg(2, "wake up\n"); pkt_dbg(2, pd, "wake up\n");
/* make swsusp happy with our thread */ /* make swsusp happy with our thread */
try_to_freeze(); try_to_freeze();
...@@ -1808,7 +1805,7 @@ static int pkt_writable_disc(struct pktcdvd_device *pd, disc_information *di) ...@@ -1808,7 +1805,7 @@ static int pkt_writable_disc(struct pktcdvd_device *pd, disc_information *di)
case 0x12: /* DVD-RAM */ case 0x12: /* DVD-RAM */
return 1; return 1;
default: default:
pkt_dbg(2, "Wrong disc profile (%x)\n", pkt_dbg(2, pd, "Wrong disc profile (%x)\n",
pd->mmc3_profile); pd->mmc3_profile);
return 0; return 0;
} }
...@@ -2124,7 +2121,7 @@ static noinline_for_stack int pkt_perform_opc(struct pktcdvd_device *pd) ...@@ -2124,7 +2121,7 @@ static noinline_for_stack int pkt_perform_opc(struct pktcdvd_device *pd)
struct request_sense sense; struct request_sense sense;
int ret; int ret;
pkt_dbg(2, "Performing OPC\n"); pkt_dbg(2, pd, "Performing OPC\n");
init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE); init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
cgc.sense = &sense; cgc.sense = &sense;
...@@ -2142,12 +2139,12 @@ static int pkt_open_write(struct pktcdvd_device *pd) ...@@ -2142,12 +2139,12 @@ static int pkt_open_write(struct pktcdvd_device *pd)
unsigned int write_speed, media_write_speed, read_speed; unsigned int write_speed, media_write_speed, read_speed;
if ((ret = pkt_probe_settings(pd))) { if ((ret = pkt_probe_settings(pd))) {
pkt_dbg(2, "%s failed probe\n", pd->name); pkt_dbg(2, pd, "failed probe\n");
return ret; return ret;
} }
if ((ret = pkt_set_write_settings(pd))) { if ((ret = pkt_set_write_settings(pd))) {
pkt_dbg(1, "%s failed saving write settings\n", pd->name); pkt_dbg(1, pd, "failed saving write settings\n");
return -EIO; return -EIO;
} }
...@@ -2159,26 +2156,26 @@ static int pkt_open_write(struct pktcdvd_device *pd) ...@@ -2159,26 +2156,26 @@ static int pkt_open_write(struct pktcdvd_device *pd)
case 0x13: /* DVD-RW */ case 0x13: /* DVD-RW */
case 0x1a: /* DVD+RW */ case 0x1a: /* DVD+RW */
case 0x12: /* DVD-RAM */ case 0x12: /* DVD-RAM */
pkt_dbg(1, "write speed %ukB/s\n", write_speed); pkt_dbg(1, pd, "write speed %ukB/s\n", write_speed);
break; break;
default: default:
if ((ret = pkt_media_speed(pd, &media_write_speed))) if ((ret = pkt_media_speed(pd, &media_write_speed)))
media_write_speed = 16; media_write_speed = 16;
write_speed = min(write_speed, media_write_speed * 177); write_speed = min(write_speed, media_write_speed * 177);
pkt_dbg(1, "write speed %ux\n", write_speed / 176); pkt_dbg(1, pd, "write speed %ux\n", write_speed / 176);
break; break;
} }
read_speed = write_speed; read_speed = write_speed;
if ((ret = pkt_set_speed(pd, write_speed, read_speed))) { if ((ret = pkt_set_speed(pd, write_speed, read_speed))) {
pkt_dbg(1, "%s couldn't set write speed\n", pd->name); pkt_dbg(1, pd, "couldn't set write speed\n");
return -EIO; return -EIO;
} }
pd->write_speed = write_speed; pd->write_speed = write_speed;
pd->read_speed = read_speed; pd->read_speed = read_speed;
if ((ret = pkt_perform_opc(pd))) { if ((ret = pkt_perform_opc(pd))) {
pkt_dbg(1, "%s Optimum Power Calibration failed\n", pd->name); pkt_dbg(1, pd, "Optimum Power Calibration failed\n");
} }
return 0; return 0;
...@@ -2255,7 +2252,7 @@ static int pkt_open_dev(struct pktcdvd_device *pd, fmode_t write) ...@@ -2255,7 +2252,7 @@ static int pkt_open_dev(struct pktcdvd_device *pd, fmode_t write)
static void pkt_release_dev(struct pktcdvd_device *pd, int flush) static void pkt_release_dev(struct pktcdvd_device *pd, int flush)
{ {
if (flush && pkt_flush_cache(pd)) if (flush && pkt_flush_cache(pd))
pkt_dbg(1, "%s not flushing cache\n", pd->name); pkt_dbg(1, pd, "not flushing cache\n");
pkt_lock_door(pd, 0); pkt_lock_door(pd, 0);
...@@ -2277,8 +2274,6 @@ static int pkt_open(struct block_device *bdev, fmode_t mode) ...@@ -2277,8 +2274,6 @@ static int pkt_open(struct block_device *bdev, fmode_t mode)
struct pktcdvd_device *pd = NULL; struct pktcdvd_device *pd = NULL;
int ret; int ret;
pkt_dbg(2, "entering\n");
mutex_lock(&pktcdvd_mutex); mutex_lock(&pktcdvd_mutex);
mutex_lock(&ctl_mutex); mutex_lock(&ctl_mutex);
pd = pkt_find_dev_from_minor(MINOR(bdev->bd_dev)); pd = pkt_find_dev_from_minor(MINOR(bdev->bd_dev));
...@@ -2313,7 +2308,6 @@ static int pkt_open(struct block_device *bdev, fmode_t mode) ...@@ -2313,7 +2308,6 @@ static int pkt_open(struct block_device *bdev, fmode_t mode)
out_dec: out_dec:
pd->refcnt--; pd->refcnt--;
out: out:
pkt_dbg(2, "failed (%d)\n", ret);
mutex_unlock(&ctl_mutex); mutex_unlock(&ctl_mutex);
mutex_unlock(&pktcdvd_mutex); mutex_unlock(&pktcdvd_mutex);
return ret; return ret;
...@@ -2394,7 +2388,7 @@ static void pkt_make_request(struct request_queue *q, struct bio *bio) ...@@ -2394,7 +2388,7 @@ static void pkt_make_request(struct request_queue *q, struct bio *bio)
blk_queue_bounce(q, &bio); blk_queue_bounce(q, &bio);
zone = get_zone(bio->bi_sector, pd); zone = get_zone(bio->bi_sector, pd);
pkt_dbg(2, "start = %6llx stop = %6llx\n", pkt_dbg(2, pd, "start = %6llx stop = %6llx\n",
(unsigned long long)bio->bi_sector, (unsigned long long)bio->bi_sector,
(unsigned long long)bio_end_sector(bio)); (unsigned long long)bio_end_sector(bio));
...@@ -2649,7 +2643,7 @@ static int pkt_new_dev(struct pktcdvd_device *pd, dev_t dev) ...@@ -2649,7 +2643,7 @@ static int pkt_new_dev(struct pktcdvd_device *pd, dev_t dev)
} }
proc_create_data(pd->name, 0, pkt_proc, &pkt_proc_fops, pd); proc_create_data(pd->name, 0, pkt_proc, &pkt_proc_fops, pd);
pkt_dbg(1, "writer %s mapped to %s\n", pd->name, bdevname(bdev, b)); pkt_dbg(1, pd, "writer mapped to %s\n", bdevname(bdev, b));
return 0; return 0;
out_mem: out_mem:
...@@ -2664,7 +2658,7 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, ...@@ -2664,7 +2658,7 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
struct pktcdvd_device *pd = bdev->bd_disk->private_data; struct pktcdvd_device *pd = bdev->bd_disk->private_data;
int ret; int ret;
pkt_dbg(2, "cmd %x, dev %d:%d\n", pkt_dbg(2, pd, "cmd %x, dev %d:%d\n",
cmd, MAJOR(bdev->bd_dev), MINOR(bdev->bd_dev)); cmd, MAJOR(bdev->bd_dev), MINOR(bdev->bd_dev));
mutex_lock(&pktcdvd_mutex); mutex_lock(&pktcdvd_mutex);
...@@ -2689,7 +2683,7 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, ...@@ -2689,7 +2683,7 @@ static int pkt_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd,
break; break;
default: default:
pkt_dbg(2, "Unknown ioctl for %s (%x)\n", pd->name, cmd); pkt_dbg(2, pd, "Unknown ioctl (%x)\n", cmd);
ret = -ENOTTY; ret = -ENOTTY;
} }
mutex_unlock(&pktcdvd_mutex); mutex_unlock(&pktcdvd_mutex);
...@@ -2838,7 +2832,7 @@ static int pkt_remove_dev(dev_t pkt_dev) ...@@ -2838,7 +2832,7 @@ static int pkt_remove_dev(dev_t pkt_dev)
break; break;
} }
if (idx == MAX_WRITERS) { if (idx == MAX_WRITERS) {
pkt_dbg(1, "dev not setup\n"); pkt_dbg(1, pd, "dev not setup\n");
ret = -ENXIO; ret = -ENXIO;
goto out; goto out;
} }
...@@ -2858,7 +2852,7 @@ static int pkt_remove_dev(dev_t pkt_dev) ...@@ -2858,7 +2852,7 @@ static int pkt_remove_dev(dev_t pkt_dev)
blkdev_put(pd->bdev, FMODE_READ | FMODE_NDELAY); blkdev_put(pd->bdev, FMODE_READ | FMODE_NDELAY);
remove_proc_entry(pd->name, pkt_proc); remove_proc_entry(pd->name, pkt_proc);
pkt_dbg(1, "writer %s unmapped\n", pd->name); pkt_dbg(1, pd, "writer unmapped\n");
del_gendisk(pd->disk); del_gendisk(pd->disk);
blk_cleanup_queue(pd->disk->queue); blk_cleanup_queue(pd->disk->queue);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册