Re: The survival of ide-scsi in 2.6.x [PATCH 2/3]

From: Willem Riede (wrlk_at_riede.org)
Date: 01/31/04

  • Next message: Jens Axboe: "Re: The survival of ide-scsi in 2.6.x [PATCH 2/3]"
    Date:	Sat, 31 Jan 2004 16:45:13 -0500
    To: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
    
    

    On 2004.01.30 17:56, Bartlomiej Zolnierkiewicz wrote:
    >
    > Can you split your patch and drop cosmetic changes?

    Changes in this second patch:
    - some whitespace changes to improve readability
    - use consistent printk priorities

    Regards, Willem Riede.

    --- p1/drivers/scsi/ide-scsi.c 2004-01-31 15:37:31.000000000 -0500
    +++ p2/drivers/scsi/ide-scsi.c 2004-01-31 15:57:08.000000000 -0500
    @@ -54,7 +54,9 @@
     #include "hosts.h"
     #include <scsi/sg.h>
     
    -#define IDESCSI_DEBUG_LOG 0
    +#define IDESCSI_DEBUG_LOG 0
    +#define IDESCSI_DEBUG KERN_NOTICE
    +#define IDESCSI_LOG KERN_INFO
     
     typedef struct idescsi_pc_s {
             u8 c[12]; /* Actual packet bytes */
    @@ -301,7 +303,7 @@
             rq->buffer = (void *) failed_command;
             pc->scsi_cmd = failed_command->scsi_cmd;
             if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
    - printk ("ide-scsi: %s: queue cmd = ", drive->name);
    + printk (IDESCSI_LOG "ide-scsi: %s: queue cmd = ", drive->name);
                     hexdump(pc->c, 6);
             }
             return ide_do_drive_cmd(drive, rq, ide_preempt);
    @@ -309,23 +311,25 @@
     
     static int idescsi_end_request (ide_drive_t *drive, int uptodate, int nrsecs)
     {
    - idescsi_scsi_t *scsi = drive_to_idescsi(drive);
    - struct request *rq = HWGROUP(drive)->rq;
    - idescsi_pc_t *pc = (idescsi_pc_t *) rq->special;
    - int log = test_bit(IDESCSI_LOG_CMD, &scsi->log);
    + idescsi_scsi_t *scsi = drive_to_idescsi(drive);
    + struct request *rq = HWGROUP(drive)->rq;
    + idescsi_pc_t *pc = (idescsi_pc_t *) rq->special;
    + int log = test_bit(IDESCSI_LOG_CMD, &scsi->log);
             struct Scsi_Host *host;
    - u8 *scsi_buf;
    - unsigned long flags;
    + u8 *scsi_buf;
    + unsigned long flags;
     
             if (!(rq->flags & (REQ_SPECIAL|REQ_SENSE))) {
                     ide_end_request(drive, uptodate, nrsecs);
                     return 0;
             }
             ide_end_drive_cmd (drive, 0, 0);
    +
             if (rq->flags & REQ_SENSE) {
                     idescsi_pc_t *opc = (idescsi_pc_t *) rq->buffer;
                     if (log) {
    - printk ("ide-scsi: %s: wrap up check %lu, rst = ", drive->name, opc->scsi_cmd->serial_number);
    + printk (IDESCSI_LOG "ide-scsi: %s: wrap up check %lu, rst = ",
    + drive->name, opc->scsi_cmd->serial_number);
                             hexdump(pc->buffer,16);
                     }
                     memcpy((void *) opc->scsi_cmd->sense_buffer, pc->buffer, SCSI_SENSE_BUFFERSIZE);
    @@ -335,23 +339,30 @@
                     pc = opc;
                     rq = pc->rq;
                     pc->scsi_cmd->result = (CHECK_CONDITION << 1) | (DID_OK << 16);
    - } else if (rq->errors >= ERROR_MAX) {
    - pc->scsi_cmd->result = DID_ERROR << 16;
    + }
    + else if (rq->errors >= ERROR_MAX) {
                     if (log)
    - printk ("ide-scsi: %s: I/O error for %lu\n", drive->name, pc->scsi_cmd->serial_number);
    - } else if (rq->errors) {
    + printk (IDESCSI_LOG "ide-scsi: %s: I/O error for %lu\n",
    + drive->name, pc->scsi_cmd->serial_number);
    + pc->scsi_cmd->result = DID_ERROR << 16;
    + }
    + else if (rq->errors) {
                     if (log)
    - printk ("ide-scsi: %s: check condition for %lu\n", drive->name, pc->scsi_cmd->serial_number);
    + printk (IDESCSI_LOG "ide-scsi: %s: check condition for %lu\n",
    + drive->name, pc->scsi_cmd->serial_number);
                     if (!idescsi_check_condition(drive, pc))
                             /* we started a request sense, so we'll be back, exit for now */
                             return 0;
                     pc->scsi_cmd->result = (CHECK_CONDITION << 1) | (DID_OK << 16);
    - } else {
    + }
    + else {
                     pc->scsi_cmd->result = DID_OK << 16;
                     idescsi_transform_pc2 (drive, pc);
                     if (log) {
    - printk ("ide-scsi: %s: suc %lu", drive->name, pc->scsi_cmd->serial_number);
    - if (!test_bit(PC_WRITING, &pc->flags) && pc->actually_transferred && pc->actually_transferred <= 1024 && pc->buffer) {
    + printk (IDESCSI_LOG "ide-scsi: %s: suc %lu",
    + drive->name, pc->scsi_cmd->serial_number);
    + if (!test_bit(PC_WRITING, &pc->flags) && pc->actually_transferred &&
    + pc->actually_transferred <= 1024 && pc->buffer) {
                                     printk(", rst = ");
                                     scsi_buf = pc->scsi_cmd->request_buffer;
                                     hexdump(scsi_buf, IDE_MIN(16, pc->scsi_cmd->request_bufflen));
    @@ -390,12 +401,12 @@
             unsigned int temp;
     
     #if IDESCSI_DEBUG_LOG
    - printk (KERN_INFO "ide-scsi: Reached idescsi_pc_intr interrupt handler\n");
    + printk (IDESCSI_DEBUG "ide-scsi: Reached idescsi_pc_intr interrupt handler\n");
     #endif /* IDESCSI_DEBUG_LOG */
     
             if (test_and_clear_bit (PC_DMA_IN_PROGRESS, &pc->flags)) {
     #if IDESCSI_DEBUG_LOG
    - printk ("ide-scsi: %s: DMA complete\n", drive->name);
    + printk (IDESCSI_DEBUG "ide-scsi: %s: DMA complete\n", drive->name);
     #endif /* IDESCSI_DEBUG_LOG */
                     pc->actually_transferred=pc->request_transfer;
                     (void) HWIF(drive)->ide_dma_end(drive);
    @@ -408,7 +419,8 @@
             if (!status.b.drq) {
                     /* No more interrupts */
                     if (test_bit(IDESCSI_LOG_CMD, &scsi->log))
    - printk (KERN_INFO "Packet command completed, %d bytes transferred\n", pc->actually_transferred);
    + printk (IDESCSI_LOG "Packet command completed, %d bytes transferred\n",
    + pc->actually_transferred);
                     local_irq_enable();
                     if (status.b.check)
                             rq->errors++;
    @@ -446,7 +458,8 @@
                                     return ide_started;
                             }
     #if IDESCSI_DEBUG_LOG
    - printk (KERN_NOTICE "ide-scsi: The scsi wants to send us more data than expected - allowing transfer\n");
    + printk (IDESCSI_DEBUG
    + "ide-scsi: The scsi wants to send us more data than expected - allowing transfer\n");
     #endif /* IDESCSI_DEBUG_LOG */
                     }
             }
    @@ -480,10 +493,10 @@
     
             if (ide_wait_stat(&startstop,drive,DRQ_STAT,BUSY_STAT,WAIT_READY)) {
                     printk(KERN_ERR "ide-scsi: Strange, packet command "
    - "initiated yet DRQ isn't asserted\n");
    + "initiated yet DRQ isn't asserted\n");
                     return startstop;
             }
    - ireason.all = HWIF(drive)->INB(IDE_IREASON_REG);
    + ireason.all = HWIF(drive)->INB(IDE_IREASON_REG);
             if (!ireason.b.cod || ireason.b.io) {
                     printk(KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while "
                                     "issuing a packet command\n");
    @@ -552,8 +565,10 @@
     static ide_startstop_t idescsi_do_request (ide_drive_t *drive, struct request *rq, sector_t block)
     {
     #if IDESCSI_DEBUG_LOG
    - printk (KERN_INFO "rq_status: %d, dev: %s, cmd: %x, errors: %d\n",rq->rq_status, rq->rq_disk->disk_name,rq->cmd[0],rq->errors);
    - printk (KERN_INFO "sector: %ld, nr_sectors: %ld, current_nr_sectors: %d\n",rq->sector,rq->nr_sectors,rq->current_nr_sectors);
    + printk (IDESCSI_DEBUG "rq_status: %d, dev: %s, cmd: %x, errors: %d\n",
    + rq->rq_status, rq->rq_disk->disk_name,rq->cmd[0],rq->errors);
    + printk (IDESCSI_DEBUG "sector: %ld, nr_sectors: %ld, current_nr_sectors: %d\n",
    + rq->sector,rq->nr_sectors,rq->current_nr_sectors);
     #endif /* IDESCSI_DEBUG_LOG */
     
             if (rq->flags & (REQ_SPECIAL|REQ_SENSE)) {
    @@ -739,7 +754,8 @@
                     if ((first_bh = bh = idescsi_kmalloc_bio (segments)) == NULL)
                             return NULL;
     #if IDESCSI_DEBUG_LOG
    - printk ("ide-scsi: %s: building DMA table, %d segments, %dkB total\n", drive->name, segments, pc->request_transfer >> 10);
    + printk (IDESCSI_DEBUG "ide-scsi: %s: building DMA table, %d segments, %dkB total\n",
    + drive->name, segments, pc->request_transfer >> 10);
     #endif /* IDESCSI_DEBUG_LOG */
                     while (segments--) {
                             bh->bi_io_vec[0].bv_page = sg->page;
    @@ -753,7 +769,8 @@
                     if ((first_bh = bh = idescsi_kmalloc_bio (1)) == NULL)
                             return NULL;
     #if IDESCSI_DEBUG_LOG
    - printk ("ide-scsi: %s: building DMA table for a single buffer (%dkB)\n", drive->name, pc->request_transfer >> 10);
    + printk (IDESCSI_DEBUG "ide-scsi: %s: building DMA table for a single buffer (%dkB)\n",
    + drive->name, pc->request_transfer >> 10);
     #endif /* IDESCSI_DEBUG_LOG */
                     bh->bi_io_vec[0].bv_page = virt_to_page(pc->scsi_cmd->request_buffer);
                     bh->bi_io_vec[0].bv_offset = offset_in_page(pc->scsi_cmd->request_buffer);
    @@ -823,10 +840,10 @@
             idescsi_transform_pc1 (drive, pc);
     
             if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
    - printk ("ide-scsi: %s: que %lu, cmd = ", drive->name, cmd->serial_number);
    + printk (IDESCSI_LOG "ide-scsi: %s: que %lu, cmd = ", drive->name, cmd->serial_number);
                     hexdump(cmd->cmnd, cmd->cmd_len);
                     if (memcmp(pc->c, cmd->cmnd, cmd->cmd_len)) {
    - printk ("ide-scsi: %s: que %lu, tsl = ", drive->name, cmd->serial_number);
    + printk (IDESCSI_LOG "ide-scsi: %s: que %lu, tsl = ", drive->name, cmd->serial_number);
                             hexdump(pc->c, 12);
                     }
             }

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


  • Next message: Jens Axboe: "Re: The survival of ide-scsi in 2.6.x [PATCH 2/3]"

    Relevant Pages

    • Re: 2.6.x signal handler bug
      ... For example, valgrind caught & reported a problem under 2.4, ... I've applied the second patch to my kernel & started recompiling. ... New and Improved Yahoo! ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [PATCH 1/2] cpqfc: fix for "Using too much stach" in 2.6 kernel
      ... >>Using kmalloc to allocate memory to ulFibreFrame. ... Your second patch is also ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [PATCH][-mm][1/2] cifs: whitespace cleanups for file.c
      ... I may be able to install windows in vmware or ... Would it be useful if I split the second patch into a few parts for you? ... the kfree related changes into another and then a third with the ... To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ ...
      (Linux-Kernel)
    • Re: [PATCH] removes filp_count_lock and changes nr_files type to atomic_t
      ... I got complains about atomic_readbeing 'an atomic op' ... (untrue), so my second patch just doesnt touch the path where nr_files was read. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [patchset] Lockfree fd lookup 2 of 5
      ... >> Here's the second patch. ... This changes the current kref users to use ... My initial submission to you ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)