Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi: Implement sr_printk()

Update the sr driver to use dev_printk() variants instead of
plain printk(); this will prefix logging messages with the
appropriate device.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>

authored by

Hannes Reinecke and committed by
Christoph Hellwig
96eefad2 d9e5d618

+70 -57
+32 -29
drivers/scsi/sr.c
··· 292 292 if (!cd->tur_changed) { 293 293 if (cd->get_event_changed) { 294 294 if (cd->tur_mismatch++ > 8) { 295 - sdev_printk(KERN_WARNING, cd->device, 296 - "GET_EVENT and TUR disagree continuously, suppress GET_EVENT events\n"); 295 + sr_printk(KERN_WARNING, cd, 296 + "GET_EVENT and TUR disagree continuously, suppress GET_EVENT events\n"); 297 297 cd->ignore_get_event = true; 298 298 } 299 299 } else { ··· 322 322 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk); 323 323 324 324 #ifdef DEBUG 325 - printk("sr.c done: %x\n", result); 325 + scmd_printk(KERN_INFO, SCpnt, "done: %x\n", result); 326 326 #endif 327 327 328 328 /* ··· 398 398 * is used for a killable error condition */ 399 399 ret = BLKPREP_KILL; 400 400 401 - SCSI_LOG_HLQUEUE(1, printk("Doing sr request, dev = %s, block = %d\n", 402 - cd->disk->disk_name, block)); 401 + SCSI_LOG_HLQUEUE(1, scmd_printk(KERN_INFO, SCpnt, 402 + "Doing sr request, block = %d\n", block)); 403 403 404 404 if (!cd->device || !scsi_device_online(cd->device)) { 405 - SCSI_LOG_HLQUEUE(2, printk("Finishing %u sectors\n", 406 - blk_rq_sectors(rq))); 407 - SCSI_LOG_HLQUEUE(2, printk("Retry with 0x%p\n", SCpnt)); 405 + SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, 406 + "Finishing %u sectors\n", blk_rq_sectors(rq))); 407 + SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, 408 + "Retry with 0x%p\n", SCpnt)); 408 409 goto out; 409 410 } 410 411 ··· 426 425 if (!in_interrupt()) 427 426 sr_set_blocklength(cd, 2048); 428 427 else 429 - printk("sr: can't switch blocksize: in interrupt\n"); 428 + scmd_printk(KERN_INFO, SCpnt, 429 + "can't switch blocksize: in interrupt\n"); 430 430 } 431 431 432 432 if (s_size != 512 && s_size != 1024 && s_size != 2048) { ··· 440 438 goto out; 441 439 SCpnt->cmnd[0] = WRITE_10; 442 440 SCpnt->sc_data_direction = DMA_TO_DEVICE; 443 - cd->cdi.media_written = 1; 441 + cd->cdi.media_written = 1; 444 442 } else if (rq_data_dir(rq) == READ) { 445 443 SCpnt->cmnd[0] = READ_10; 446 444 SCpnt->sc_data_direction = DMA_FROM_DEVICE; ··· 477 475 this_count = (scsi_bufflen(SCpnt) >> 9) / (s_size >> 9); 478 476 479 477 480 - SCSI_LOG_HLQUEUE(2, printk("%s : %s %d/%u 512 byte blocks.\n", 481 - cd->cdi.name, 482 - (rq_data_dir(rq) == WRITE) ? 478 + SCSI_LOG_HLQUEUE(2, scmd_printk(KERN_INFO, SCpnt, 479 + "%s %d/%u 512 byte blocks.\n", 480 + (rq_data_dir(rq) == WRITE) ? 483 481 "writing" : "reading", 484 - this_count, blk_rq_sectors(rq))); 482 + this_count, blk_rq_sectors(rq))); 485 483 486 484 SCpnt->cmnd[1] = 0; 487 485 block = (unsigned int)blk_rq_pos(rq) / (s_size >> 9); ··· 812 810 case 512: 813 811 break; 814 812 default: 815 - printk("%s: unsupported sector size %d.\n", 816 - cd->cdi.name, sector_size); 813 + sr_printk(KERN_INFO, cd, 814 + "unsupported sector size %d.", sector_size); 817 815 cd->capacity = 0; 818 816 } 819 817 ··· 855 853 /* allocate transfer buffer */ 856 854 buffer = kmalloc(512, GFP_KERNEL | GFP_DMA); 857 855 if (!buffer) { 858 - printk(KERN_ERR "sr: out of memory.\n"); 856 + sr_printk(KERN_ERR, cd, "out of memory.\n"); 859 857 return; 860 858 } 861 859 ··· 874 872 CDC_SELECT_DISC | CDC_SELECT_SPEED | 875 873 CDC_MRW | CDC_MRW_W | CDC_RAM); 876 874 kfree(buffer); 877 - printk("%s: scsi-1 drive\n", cd->cdi.name); 875 + sr_printk(KERN_INFO, cd, "scsi-1 drive"); 878 876 return; 879 877 } 880 878 ··· 883 881 cd->readcd_known = 1; 884 882 cd->readcd_cdda = buffer[n + 5] & 0x01; 885 883 /* print some capability bits */ 886 - printk("%s: scsi3-mmc drive: %dx/%dx %s%s%s%s%s%s\n", cd->cdi.name, 887 - ((buffer[n + 14] << 8) + buffer[n + 15]) / 176, 888 - cd->cdi.speed, 889 - buffer[n + 3] & 0x01 ? "writer " : "", /* CD Writer */ 890 - buffer[n + 3] & 0x20 ? "dvd-ram " : "", 891 - buffer[n + 2] & 0x02 ? "cd/rw " : "", /* can read rewriteable */ 892 - buffer[n + 4] & 0x20 ? "xa/form2 " : "", /* can read xa/from2 */ 893 - buffer[n + 5] & 0x01 ? "cdda " : "", /* can read audio data */ 894 - loadmech[buffer[n + 6] >> 5]); 884 + sr_printk(KERN_INFO, cd, 885 + "scsi3-mmc drive: %dx/%dx %s%s%s%s%s%s\n", 886 + ((buffer[n + 14] << 8) + buffer[n + 15]) / 176, 887 + cd->cdi.speed, 888 + buffer[n + 3] & 0x01 ? "writer " : "", /* CD Writer */ 889 + buffer[n + 3] & 0x20 ? "dvd-ram " : "", 890 + buffer[n + 2] & 0x02 ? "cd/rw " : "", /* can read rewriteable */ 891 + buffer[n + 4] & 0x20 ? "xa/form2 " : "", /* can read xa/from2 */ 892 + buffer[n + 5] & 0x01 ? "cdda " : "", /* can read audio data */ 893 + loadmech[buffer[n + 6] >> 5]); 895 894 if ((buffer[n + 6] >> 5) == 0) 896 895 /* caddy drives can't close tray... */ 897 896 cd->cdi.mask |= CDC_CLOSE_TRAY; 898 897 if ((buffer[n + 2] & 0x8) == 0) 899 898 /* not a DVD drive */ 900 899 cd->cdi.mask |= CDC_DVD; 901 - if ((buffer[n + 3] & 0x20) == 0) 900 + if ((buffer[n + 3] & 0x20) == 0) 902 901 /* can't write DVD-RAM media */ 903 902 cd->cdi.mask |= CDC_DVD_RAM; 904 903 if ((buffer[n + 3] & 0x10) == 0) ··· 938 935 939 936 /* 940 937 * sr_packet() is the entry point for the generic commands generated 941 - * by the Uniform CD-ROM layer. 938 + * by the Uniform CD-ROM layer. 942 939 */ 943 940 static int sr_packet(struct cdrom_device_info *cdi, 944 941 struct packet_command *cgc)
+4
drivers/scsi/sr.h
··· 55 55 struct gendisk *disk; 56 56 } Scsi_CD; 57 57 58 + #define sr_printk(prefix, cd, fmt, a...) \ 59 + sdev_printk(prefix, (cd)->device, "[%s] " fmt, \ 60 + (cd)->cdi.name, ##a) 61 + 58 62 int sr_do_ioctl(Scsi_CD *, struct packet_command *); 59 63 60 64 int sr_lock_door(struct cdrom_device_info *, int);
+16 -10
drivers/scsi/sr_ioctl.c
··· 36 36 * the status of the unchecked_isa_dma flag in the host structure */ 37 37 #define SR_GFP_DMA(cd) (((cd)->device->host->unchecked_isa_dma) ? GFP_DMA : 0) 38 38 39 - 40 39 static int sr_read_tochdr(struct cdrom_device_info *cdi, 41 40 struct cdrom_tochdr *tochdr) 42 41 { ··· 218 219 case UNIT_ATTENTION: 219 220 SDev->changed = 1; 220 221 if (!cgc->quiet) 221 - printk(KERN_INFO "%s: disc change detected.\n", cd->cdi.name); 222 + sr_printk(KERN_INFO, cd, 223 + "disc change detected.\n"); 222 224 if (retries++ < 10) 223 225 goto retry; 224 226 err = -ENOMEDIUM; ··· 229 229 sshdr.ascq == 0x01) { 230 230 /* sense: Logical unit is in process of becoming ready */ 231 231 if (!cgc->quiet) 232 - printk(KERN_INFO "%s: CDROM not ready yet.\n", cd->cdi.name); 232 + sr_printk(KERN_INFO, cd, 233 + "CDROM not ready yet.\n"); 233 234 if (retries++ < 10) { 234 235 /* sleep 2 sec and try again */ 235 236 ssleep(2); ··· 242 241 } 243 242 } 244 243 if (!cgc->quiet) 245 - printk(KERN_INFO "%s: CDROM not ready. Make sure there is a disc in the drive.\n", cd->cdi.name); 244 + sr_printk(KERN_INFO, cd, 245 + "CDROM not ready. Make sure there " 246 + "is a disc in the drive.\n"); 246 247 #ifdef DEBUG 247 248 scsi_print_sense_hdr("sr", &sshdr); 248 249 #endif ··· 262 259 #endif 263 260 break; 264 261 default: 265 - printk(KERN_ERR "%s: CDROM (ioctl) error, command: ", cd->cdi.name); 262 + sr_printk(KERN_ERR, cd, 263 + "CDROM (ioctl) error, command: "); 266 264 __scsi_print_command(cgc->cmd); 267 265 scsi_print_sense_hdr("sr", &sshdr); 268 266 err = -EIO; ··· 495 491 struct packet_command cgc; 496 492 497 493 #ifdef DEBUG 498 - printk("%s: sr_read_cd lba=%d format=%d blksize=%d\n", 499 - cd->cdi.name, lba, format, blksize); 494 + sr_printk(KERN_INFO, cd, "sr_read_cd lba=%d format=%d blksize=%d\n", 495 + lba, format, blksize); 500 496 #endif 501 497 502 498 memset(&cgc, 0, sizeof(struct packet_command)); ··· 543 539 if (-EDRIVE_CANT_DO_THIS != rc) 544 540 return rc; 545 541 cd->readcd_known = 0; 546 - printk("CDROM does'nt support READ CD (0xbe) command\n"); 542 + sr_printk(KERN_INFO, cd, 543 + "CDROM does'nt support READ CD (0xbe) command\n"); 547 544 /* fall & retry the other way */ 548 545 } 549 546 /* ... if this fails, we switch the blocksize using MODE SELECT */ ··· 553 548 return rc; 554 549 } 555 550 #ifdef DEBUG 556 - printk("%s: sr_read_sector lba=%d blksize=%d\n", cd->cdi.name, lba, blksize); 551 + sr_printk(KERN_INFO, cd, "sr_read_sector lba=%d blksize=%d\n", 552 + lba, blksize); 557 553 #endif 558 554 559 555 memset(&cgc, 0, sizeof(struct packet_command)); ··· 598 592 } 599 593 kfree(raw_sector); 600 594 #ifdef DEBUG 601 - printk("%s: sr_is_xa: %d\n", cd->cdi.name, is_xa); 595 + sr_printk(KERN_INFO, cd, "sr_is_xa: %d\n", is_xa); 602 596 #endif 603 597 return is_xa; 604 598 }
+18 -18
drivers/scsi/sr_vendor.c
··· 123 123 return -ENOMEM; 124 124 125 125 #ifdef DEBUG 126 - printk("%s: MODE SELECT 0x%x/%d\n", cd->cdi.name, density, blocklength); 126 + sr_printk(KERN_INFO, cd, "MODE SELECT 0x%x/%d\n", density, blocklength); 127 127 #endif 128 128 memset(&cgc, 0, sizeof(struct packet_command)); 129 129 cgc.cmd[0] = MODE_SELECT; ··· 144 144 } 145 145 #ifdef DEBUG 146 146 else 147 - printk("%s: switching blocklength to %d bytes failed\n", 148 - cd->cdi.name, blocklength); 147 + sr_printk(KERN_INFO, cd, 148 + "switching blocklength to %d bytes failed\n", 149 + blocklength); 149 150 #endif 150 151 kfree(buffer); 151 152 return rc; ··· 191 190 if (rc != 0) 192 191 break; 193 192 if ((buffer[0] << 8) + buffer[1] < 0x0a) { 194 - printk(KERN_INFO "%s: Hmm, seems the drive " 195 - "doesn't support multisession CD's\n", cd->cdi.name); 193 + sr_printk(KERN_INFO, cd, "Hmm, seems the drive " 194 + "doesn't support multisession CD's\n"); 196 195 no_multi = 1; 197 196 break; 198 197 } ··· 219 218 if (rc != 0) 220 219 break; 221 220 if (buffer[14] != 0 && buffer[14] != 0xb0) { 222 - printk(KERN_INFO "%s: Hmm, seems the cdrom " 223 - "doesn't support multisession CD's\n", 224 - cd->cdi.name); 221 + sr_printk(KERN_INFO, cd, "Hmm, seems the cdrom " 222 + "doesn't support multisession CD's\n"); 223 + 225 224 no_multi = 1; 226 225 break; 227 226 } ··· 246 245 cgc.timeout = VENDOR_TIMEOUT; 247 246 rc = sr_do_ioctl(cd, &cgc); 248 247 if (rc == -EINVAL) { 249 - printk(KERN_INFO "%s: Hmm, seems the drive " 250 - "doesn't support multisession CD's\n", 251 - cd->cdi.name); 248 + sr_printk(KERN_INFO, cd, "Hmm, seems the drive " 249 + "doesn't support multisession CD's\n"); 252 250 no_multi = 1; 253 251 break; 254 252 } ··· 277 277 break; 278 278 } 279 279 if ((rc = buffer[2]) == 0) { 280 - printk(KERN_WARNING 281 - "%s: No finished session\n", cd->cdi.name); 280 + sr_printk(KERN_WARNING, cd, 281 + "No finished session\n"); 282 282 break; 283 283 } 284 284 cgc.cmd[0] = READ_TOC; /* Read TOC */ ··· 301 301 302 302 default: 303 303 /* should not happen */ 304 - printk(KERN_WARNING 305 - "%s: unknown vendor code (%i), not initialized ?\n", 306 - cd->cdi.name, cd->vendor); 304 + sr_printk(KERN_WARNING, cd, 305 + "unknown vendor code (%i), not initialized ?\n", 306 + cd->vendor); 307 307 sector = 0; 308 308 no_multi = 1; 309 309 break; ··· 321 321 322 322 #ifdef DEBUG 323 323 if (sector) 324 - printk(KERN_DEBUG "%s: multisession offset=%lu\n", 325 - cd->cdi.name, sector); 324 + sr_printk(KERN_DEBUG, cd, "multisession offset=%lu\n", 325 + sector); 326 326 #endif 327 327 kfree(buffer); 328 328 return rc;