Commit 7b355726 authored by Borislav Petkov's avatar Borislav Petkov Committed by Bartlomiej Zolnierkiewicz

ide-floppy: convert driver to the new debugging macro

Also:

- leave in the possibility for optimizing away all debugging macros
- add a PFX macro and prepend all printk calls with it for consistency
- change idefloppy_create_rw_cmd's 1st arg from idefloppy_floppy_t * to
ide_drive_t *.
- add a missing printk-level in idefloppy_init
- fix minor checkpatch warnings
Signed-off-by: default avatarBorislav Petkov <petkovbb@gmail.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent e1c7c464
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
*/ */
#define DRV_NAME "ide-floppy" #define DRV_NAME "ide-floppy"
#define PFX DRV_NAME ": "
#define IDEFLOPPY_VERSION "1.00" #define IDEFLOPPY_VERSION "1.00"
...@@ -49,16 +50,12 @@ ...@@ -49,16 +50,12 @@
#include "ide-floppy.h" #include "ide-floppy.h"
/* define to see debug info */ /* define to see debug info */
#define IDEFLOPPY_DEBUG_LOG 0 #define IDEFLOPPY_DEBUG_LOG 0
/* #define IDEFLOPPY_DEBUG(fmt, args...) printk(KERN_INFO fmt, ## args) */
#define IDEFLOPPY_DEBUG(fmt, args...)
#if IDEFLOPPY_DEBUG_LOG #if IDEFLOPPY_DEBUG_LOG
#define debug_log(fmt, args...) \ #define ide_debug_log(lvl, fmt, args...) __ide_debug_log(lvl, fmt, args)
printk(KERN_INFO "ide-floppy: " fmt, ## args)
#else #else
#define debug_log(fmt, args...) do {} while (0) #define ide_debug_log(lvl, fmt, args...) do {} while (0)
#endif #endif
/* /*
...@@ -122,13 +119,21 @@ static int idefloppy_end_request(ide_drive_t *drive, int uptodate, int nsecs) ...@@ -122,13 +119,21 @@ static int idefloppy_end_request(ide_drive_t *drive, int uptodate, int nsecs)
struct request *rq = HWGROUP(drive)->rq; struct request *rq = HWGROUP(drive)->rq;
int error; int error;
debug_log("Reached %s\n", __func__); ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
switch (uptodate) { switch (uptodate) {
case 0: error = IDEFLOPPY_ERROR_GENERAL; break; case 0:
case 1: error = 0; break; error = IDEFLOPPY_ERROR_GENERAL;
default: error = uptodate; break;
case 1:
error = 0;
break;
default:
error = uptodate;
} }
if (error) if (error)
floppy->failed_pc = NULL; floppy->failed_pc = NULL;
/* Why does this happen? */ /* Why does this happen? */
...@@ -161,7 +166,7 @@ static void ide_floppy_callback(ide_drive_t *drive, int dsc) ...@@ -161,7 +166,7 @@ static void ide_floppy_callback(ide_drive_t *drive, int dsc)
struct ide_atapi_pc *pc = drive->pc; struct ide_atapi_pc *pc = drive->pc;
int uptodate = pc->error ? 0 : 1; int uptodate = pc->error ? 0 : 1;
debug_log("Reached %s\n", __func__); ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
if (floppy->failed_pc == pc) if (floppy->failed_pc == pc)
floppy->failed_pc = NULL; floppy->failed_pc = NULL;
...@@ -180,13 +185,15 @@ static void ide_floppy_callback(ide_drive_t *drive, int dsc) ...@@ -180,13 +185,15 @@ static void ide_floppy_callback(ide_drive_t *drive, int dsc)
(u16)get_unaligned((u16 *)&buf[16]) : 0x10000; (u16)get_unaligned((u16 *)&buf[16]) : 0x10000;
if (floppy->failed_pc) if (floppy->failed_pc)
debug_log("pc = %x, ", floppy->failed_pc->c[0]); ide_debug_log(IDE_DBG_PC, "pc = %x, ",
floppy->failed_pc->c[0]);
debug_log("sense key = %x, asc = %x, ascq = %x\n", ide_debug_log(IDE_DBG_SENSE, "sense key = %x, asc = %x,"
floppy->sense_key, floppy->asc, floppy->ascq); "ascq = %x\n", floppy->sense_key,
floppy->asc, floppy->ascq);
} else } else
printk(KERN_ERR "Error in REQUEST SENSE itself - " printk(KERN_ERR PFX "Error in REQUEST SENSE itself - "
"Aborting request!\n"); "Aborting request!\n");
} }
idefloppy_end_request(drive, uptodate, 0); idefloppy_end_request(drive, uptodate, 0);
...@@ -201,7 +208,7 @@ static void ide_floppy_report_error(idefloppy_floppy_t *floppy, ...@@ -201,7 +208,7 @@ static void ide_floppy_report_error(idefloppy_floppy_t *floppy,
floppy->ascq == 0x00) floppy->ascq == 0x00)
return; return;
printk(KERN_ERR "ide-floppy: %s: I/O error, pc = %2x, key = %2x, " printk(KERN_ERR PFX "%s: I/O error, pc = %2x, key = %2x, "
"asc = %2x, ascq = %2x\n", "asc = %2x, ascq = %2x\n",
floppy->drive->name, pc->c[0], floppy->sense_key, floppy->drive->name, pc->c[0], floppy->sense_key,
floppy->asc, floppy->ascq); floppy->asc, floppy->ascq);
...@@ -231,7 +238,7 @@ static ide_startstop_t idefloppy_issue_pc(ide_drive_t *drive, ...@@ -231,7 +238,7 @@ static ide_startstop_t idefloppy_issue_pc(ide_drive_t *drive,
return ide_stopped; return ide_stopped;
} }
debug_log("Retry number - %d\n", pc->retries); ide_debug_log(IDE_DBG_FUNC, "%s: Retry #%d\n", __func__, pc->retries);
pc->retries++; pc->retries++;
...@@ -265,23 +272,23 @@ void ide_floppy_create_mode_sense_cmd(struct ide_atapi_pc *pc, u8 page_code) ...@@ -265,23 +272,23 @@ void ide_floppy_create_mode_sense_cmd(struct ide_atapi_pc *pc, u8 page_code)
length += 32; length += 32;
break; break;
default: default:
printk(KERN_ERR "ide-floppy: unsupported page code " printk(KERN_ERR PFX "unsupported page code in %s\n", __func__);
"in create_mode_sense_cmd\n");
} }
put_unaligned(cpu_to_be16(length), (u16 *) &pc->c[7]); put_unaligned(cpu_to_be16(length), (u16 *) &pc->c[7]);
pc->req_xfer = length; pc->req_xfer = length;
} }
static void idefloppy_create_rw_cmd(idefloppy_floppy_t *floppy, static void idefloppy_create_rw_cmd(ide_drive_t *drive,
struct ide_atapi_pc *pc, struct request *rq, struct ide_atapi_pc *pc, struct request *rq,
unsigned long sector) unsigned long sector)
{ {
idefloppy_floppy_t *floppy = drive->driver_data;
int block = sector / floppy->bs_factor; int block = sector / floppy->bs_factor;
int blocks = rq->nr_sectors / floppy->bs_factor; int blocks = rq->nr_sectors / floppy->bs_factor;
int cmd = rq_data_dir(rq); int cmd = rq_data_dir(rq);
debug_log("create_rw10_cmd: block == %d, blocks == %d\n", ide_debug_log(IDE_DBG_FUNC, "%s: block: %d, blocks: %d\n", __func__,
block, blocks); block, blocks);
ide_init_pc(pc); ide_init_pc(pc);
pc->c[0] = cmd == READ ? GPCMD_READ_10 : GPCMD_WRITE_10; pc->c[0] = cmd == READ ? GPCMD_READ_10 : GPCMD_WRITE_10;
...@@ -326,41 +333,42 @@ static ide_startstop_t idefloppy_do_request(ide_drive_t *drive, ...@@ -326,41 +333,42 @@ static ide_startstop_t idefloppy_do_request(ide_drive_t *drive,
struct ide_atapi_pc *pc; struct ide_atapi_pc *pc;
unsigned long block = (unsigned long)block_s; unsigned long block = (unsigned long)block_s;
debug_log("%s: dev: %s, cmd: 0x%x, cmd_type: %x, errors: %d\n", ide_debug_log(IDE_DBG_FUNC, "%s: dev: %s, cmd: 0x%x, cmd_type: %x, "
__func__, rq->rq_disk ? rq->rq_disk->disk_name : "?", "errors: %d\n",
rq->cmd[0], rq->cmd_type, rq->errors); __func__, rq->rq_disk ? rq->rq_disk->disk_name : "?",
rq->cmd[0], rq->cmd_type, rq->errors);
debug_log("%s: sector: %ld, nr_sectors: %ld, current_nr_sectors: %d\n", ide_debug_log(IDE_DBG_FUNC, "%s: sector: %ld, nr_sectors: %ld, "
__func__, (long)rq->sector, rq->nr_sectors, "current_nr_sectors: %d\n",
rq->current_nr_sectors); __func__, (long)rq->sector, rq->nr_sectors,
rq->current_nr_sectors);
if (rq->errors >= ERROR_MAX) { if (rq->errors >= ERROR_MAX) {
if (floppy->failed_pc) if (floppy->failed_pc)
ide_floppy_report_error(floppy, floppy->failed_pc); ide_floppy_report_error(floppy, floppy->failed_pc);
else else
printk(KERN_ERR "ide-floppy: %s: I/O error\n", printk(KERN_ERR PFX "%s: I/O error\n", drive->name);
drive->name);
idefloppy_end_request(drive, 0, 0); idefloppy_end_request(drive, 0, 0);
return ide_stopped; return ide_stopped;
} }
if (blk_fs_request(rq)) { if (blk_fs_request(rq)) {
if (((long)rq->sector % floppy->bs_factor) || if (((long)rq->sector % floppy->bs_factor) ||
(rq->nr_sectors % floppy->bs_factor)) { (rq->nr_sectors % floppy->bs_factor)) {
printk(KERN_ERR "%s: unsupported r/w request size\n", printk(KERN_ERR PFX "%s: unsupported r/w rq size\n",
drive->name); drive->name);
idefloppy_end_request(drive, 0, 0); idefloppy_end_request(drive, 0, 0);
return ide_stopped; return ide_stopped;
} }
pc = &floppy->queued_pc; pc = &floppy->queued_pc;
idefloppy_create_rw_cmd(floppy, pc, rq, block); idefloppy_create_rw_cmd(drive, pc, rq, block);
} else if (blk_special_request(rq)) { } else if (blk_special_request(rq)) {
pc = (struct ide_atapi_pc *) rq->buffer; pc = (struct ide_atapi_pc *) rq->buffer;
} else if (blk_pc_request(rq)) { } else if (blk_pc_request(rq)) {
pc = &floppy->queued_pc; pc = &floppy->queued_pc;
idefloppy_blockpc_cmd(floppy, pc, rq); idefloppy_blockpc_cmd(floppy, pc, rq);
} else { } else {
blk_dump_rq_flags(rq, blk_dump_rq_flags(rq, PFX "unsupported command in queue");
"ide-floppy: unsupported command in queue");
idefloppy_end_request(drive, 0, 0); idefloppy_end_request(drive, 0, 0);
return ide_stopped; return ide_stopped;
} }
...@@ -393,8 +401,7 @@ static int ide_floppy_get_flexible_disk_page(ide_drive_t *drive) ...@@ -393,8 +401,7 @@ static int ide_floppy_get_flexible_disk_page(ide_drive_t *drive)
ide_floppy_create_mode_sense_cmd(&pc, IDEFLOPPY_FLEXIBLE_DISK_PAGE); ide_floppy_create_mode_sense_cmd(&pc, IDEFLOPPY_FLEXIBLE_DISK_PAGE);
if (ide_queue_pc_tail(drive, disk, &pc)) { if (ide_queue_pc_tail(drive, disk, &pc)) {
printk(KERN_ERR "ide-floppy: Can't get flexible disk page" printk(KERN_ERR PFX "Can't get flexible disk page params\n");
" parameters\n");
return 1; return 1;
} }
...@@ -417,7 +424,7 @@ static int ide_floppy_get_flexible_disk_page(ide_drive_t *drive) ...@@ -417,7 +424,7 @@ static int ide_floppy_get_flexible_disk_page(ide_drive_t *drive)
capacity = cyls * heads * sectors * sector_size; capacity = cyls * heads * sectors * sector_size;
if (memcmp(page, &floppy->flexible_disk_page, 32)) if (memcmp(page, &floppy->flexible_disk_page, 32))
printk(KERN_INFO "%s: %dkB, %d/%d/%d CHS, %d kBps, " printk(KERN_INFO PFX "%s: %dkB, %d/%d/%d CHS, %d kBps, "
"%d sector size, %d rpm\n", "%d sector size, %d rpm\n",
drive->name, capacity / 1024, cyls, heads, drive->name, capacity / 1024, cyls, heads,
sectors, transfer_rate / 8, sector_size, rpm); sectors, transfer_rate / 8, sector_size, rpm);
...@@ -429,7 +436,7 @@ static int ide_floppy_get_flexible_disk_page(ide_drive_t *drive) ...@@ -429,7 +436,7 @@ static int ide_floppy_get_flexible_disk_page(ide_drive_t *drive)
lba_capacity = floppy->blocks * floppy->block_size; lba_capacity = floppy->blocks * floppy->block_size;
if (capacity < lba_capacity) { if (capacity < lba_capacity) {
printk(KERN_NOTICE "%s: The disk reports a capacity of %d " printk(KERN_NOTICE PFX "%s: The disk reports a capacity of %d "
"bytes, but the drive only handles %d\n", "bytes, but the drive only handles %d\n",
drive->name, lba_capacity, capacity); drive->name, lba_capacity, capacity);
floppy->blocks = floppy->block_size ? floppy->blocks = floppy->block_size ?
...@@ -459,7 +466,7 @@ static int ide_floppy_get_capacity(ide_drive_t *drive) ...@@ -459,7 +466,7 @@ static int ide_floppy_get_capacity(ide_drive_t *drive)
ide_floppy_create_read_capacity_cmd(&pc); ide_floppy_create_read_capacity_cmd(&pc);
if (ide_queue_pc_tail(drive, disk, &pc)) { if (ide_queue_pc_tail(drive, disk, &pc)) {
printk(KERN_ERR "ide-floppy: Can't get floppy parameters\n"); printk(KERN_ERR PFX "Can't get floppy parameters\n");
return 1; return 1;
} }
header_len = pc.buf[3]; header_len = pc.buf[3];
...@@ -472,8 +479,9 @@ static int ide_floppy_get_capacity(ide_drive_t *drive) ...@@ -472,8 +479,9 @@ static int ide_floppy_get_capacity(ide_drive_t *drive)
blocks = be32_to_cpup((__be32 *)&pc.buf[desc_start]); blocks = be32_to_cpup((__be32 *)&pc.buf[desc_start]);
length = be16_to_cpup((__be16 *)&pc.buf[desc_start + 6]); length = be16_to_cpup((__be16 *)&pc.buf[desc_start + 6]);
debug_log("Descriptor %d: %dkB, %d blocks, %d sector size\n", ide_debug_log(IDE_DBG_PROBE, "Descriptor %d: %dkB, %d blocks, "
i, blocks * length / 1024, blocks, length); "%d sector size\n",
i, blocks * length / 1024, blocks, length);
if (i) if (i)
continue; continue;
...@@ -493,23 +501,24 @@ static int ide_floppy_get_capacity(ide_drive_t *drive) ...@@ -493,23 +501,24 @@ static int ide_floppy_get_capacity(ide_drive_t *drive)
case CAPACITY_CURRENT: case CAPACITY_CURRENT:
/* Normal Zip/LS-120 disks */ /* Normal Zip/LS-120 disks */
if (memcmp(cap_desc, &floppy->cap_desc, 8)) if (memcmp(cap_desc, &floppy->cap_desc, 8))
printk(KERN_INFO "%s: %dkB, %d blocks, %d " printk(KERN_INFO PFX "%s: %dkB, %d blocks, %d "
"sector size\n", drive->name, "sector size\n",
blocks * length / 1024, blocks, length); drive->name, blocks * length / 1024,
blocks, length);
memcpy(&floppy->cap_desc, cap_desc, 8); memcpy(&floppy->cap_desc, cap_desc, 8);
if (!length || length % 512) { if (!length || length % 512) {
printk(KERN_NOTICE "%s: %d bytes block size " printk(KERN_NOTICE PFX "%s: %d bytes block size"
"not supported\n", drive->name, length); " not supported\n", drive->name, length);
} else { } else {
floppy->blocks = blocks; floppy->blocks = blocks;
floppy->block_size = length; floppy->block_size = length;
floppy->bs_factor = length / 512; floppy->bs_factor = length / 512;
if (floppy->bs_factor != 1) if (floppy->bs_factor != 1)
printk(KERN_NOTICE "%s: warning: non " printk(KERN_NOTICE PFX "%s: Warning: "
"512 bytes block size not " "non 512 bytes block size not "
"fully supported\n", "fully supported\n",
drive->name); drive->name);
rc = 0; rc = 0;
} }
break; break;
...@@ -518,15 +527,16 @@ static int ide_floppy_get_capacity(ide_drive_t *drive) ...@@ -518,15 +527,16 @@ static int ide_floppy_get_capacity(ide_drive_t *drive)
* This is a KERN_ERR so it appears on screen * This is a KERN_ERR so it appears on screen
* for the user to see * for the user to see
*/ */
printk(KERN_ERR "%s: No disk in drive\n", drive->name); printk(KERN_ERR PFX "%s: No disk in drive\n",
drive->name);
break; break;
case CAPACITY_INVALID: case CAPACITY_INVALID:
printk(KERN_ERR "%s: Invalid capacity for disk " printk(KERN_ERR PFX "%s: Invalid capacity for disk "
"in drive\n", drive->name); "in drive\n", drive->name);
break; break;
} }
debug_log("Descriptor 0 Code: %d\n", ide_debug_log(IDE_DBG_PROBE, "Descriptor 0 Code: %d\n",
pc.buf[desc_start + 4] & 0x03); pc.buf[desc_start + 4] & 0x03);
} }
/* Clik! disk does not support get_flexible_disk_page */ /* Clik! disk does not support get_flexible_disk_page */
...@@ -676,14 +686,14 @@ static int idefloppy_open(struct inode *inode, struct file *filp) ...@@ -676,14 +686,14 @@ static int idefloppy_open(struct inode *inode, struct file *filp)
ide_drive_t *drive; ide_drive_t *drive;
int ret = 0; int ret = 0;
debug_log("Reached %s\n", __func__);
floppy = ide_floppy_get(disk); floppy = ide_floppy_get(disk);
if (!floppy) if (!floppy)
return -ENXIO; return -ENXIO;
drive = floppy->drive; drive = floppy->drive;
ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
floppy->openers++; floppy->openers++;
if (floppy->openers == 1) { if (floppy->openers == 1) {
...@@ -731,7 +741,7 @@ static int idefloppy_release(struct inode *inode, struct file *filp) ...@@ -731,7 +741,7 @@ static int idefloppy_release(struct inode *inode, struct file *filp)
struct ide_floppy_obj *floppy = ide_drv_g(disk, ide_floppy_obj); struct ide_floppy_obj *floppy = ide_drv_g(disk, ide_floppy_obj);
ide_drive_t *drive = floppy->drive; ide_drive_t *drive = floppy->drive;
debug_log("Reached %s\n", __func__); ide_debug_log(IDE_DBG_FUNC, "Call %s\n", __func__);
if (floppy->openers == 1) { if (floppy->openers == 1) {
ide_set_media_lock(drive, disk, 0); ide_set_media_lock(drive, disk, 0);
...@@ -852,14 +862,14 @@ static int ide_floppy_probe(ide_drive_t *drive) ...@@ -852,14 +862,14 @@ static int ide_floppy_probe(ide_drive_t *drive)
goto failed; goto failed;
if (!ide_check_atapi_device(drive, DRV_NAME)) { if (!ide_check_atapi_device(drive, DRV_NAME)) {
printk(KERN_ERR "ide-floppy: %s: not supported by this version" printk(KERN_ERR PFX "%s: not supported by this version of "
" of ide-floppy\n", drive->name); DRV_NAME "\n", drive->name);
goto failed; goto failed;
} }
floppy = kzalloc(sizeof(idefloppy_floppy_t), GFP_KERNEL); floppy = kzalloc(sizeof(idefloppy_floppy_t), GFP_KERNEL);
if (!floppy) { if (!floppy) {
printk(KERN_ERR "ide-floppy: %s: Can't allocate a floppy" printk(KERN_ERR PFX "%s: Can't allocate a floppy structure\n",
" structure\n", drive->name); drive->name);
goto failed; goto failed;
} }
...@@ -902,7 +912,7 @@ static void __exit idefloppy_exit(void) ...@@ -902,7 +912,7 @@ static void __exit idefloppy_exit(void)
static int __init idefloppy_init(void) static int __init idefloppy_init(void)
{ {
printk("ide-floppy driver " IDEFLOPPY_VERSION "\n"); printk(KERN_INFO DRV_NAME " driver " IDEFLOPPY_VERSION "\n");
return driver_register(&idefloppy_driver.gen_driver); return driver_register(&idefloppy_driver.gen_driver);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment