]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: mac_scsi: Revise printk(KERN_DEBUG ...) messages
authorFinn Thain <fthain@linux-m68k.org>
Wed, 7 Aug 2024 03:36:28 +0000 (13:36 +1000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 13 Aug 2024 02:05:48 +0000 (22:05 -0400)
After a bus fault, capture and log the chip registers immediately, if the
NDEBUG_PSEUDO_DMA macro is defined. Remove some printk(KERN_DEBUG ...)
messages that aren't needed any more.  Don't skip the debug message when
bytes == 0. Show all of the byte counters in the debug messages.

Cc: stable@vger.kernel.org # 5.15+
Tested-by: Stan Johnson <userm57@yahoo.com>
Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Link: https://lore.kernel.org/r/7573c79f4e488fc00af2b8a191e257ca945e0409.1723001788.git.fthain@linux-m68k.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mac_scsi.c

index 53ee8f84d094cfc496cc99ec9dd5c851036b7d48..e67b038a3577401a2566b45472911f4db45931fb 100644 (file)
@@ -286,13 +286,14 @@ static inline int macscsi_pread(struct NCR5380_hostdata *hostdata,
        while (!NCR5380_poll_politely(hostdata, BUS_AND_STATUS_REG,
                                      BASR_DRQ | BASR_PHASE_MATCH,
                                      BASR_DRQ | BASR_PHASE_MATCH, 0)) {
-               int bytes;
+               int bytes, chunk_bytes;
 
                if (macintosh_config->ident == MAC_MODEL_IIFX)
                        write_ctrl_reg(hostdata, CTRL_HANDSHAKE_MODE |
                                                 CTRL_INTERRUPTS_ENABLE);
 
-               bytes = mac_pdma_recv(s, d, min(hostdata->pdma_residual, 512));
+               chunk_bytes = min(hostdata->pdma_residual, 512);
+               bytes = mac_pdma_recv(s, d, chunk_bytes);
 
                if (bytes > 0) {
                        d += bytes;
@@ -302,23 +303,23 @@ static inline int macscsi_pread(struct NCR5380_hostdata *hostdata,
                if (hostdata->pdma_residual == 0)
                        goto out;
 
-               if (NCR5380_poll_politely2(hostdata, STATUS_REG, SR_REQ, SR_REQ,
-                                          BUS_AND_STATUS_REG, BASR_ACK,
-                                          BASR_ACK, 0) < 0)
-                       scmd_printk(KERN_DEBUG, hostdata->connected,
-                                   "%s: !REQ and !ACK\n", __func__);
                if (!(NCR5380_read(BUS_AND_STATUS_REG) & BASR_PHASE_MATCH))
                        goto out;
 
                if (bytes == 0)
                        udelay(MAC_PDMA_DELAY);
 
-               if (bytes >= 0)
+               if (bytes > 0)
                        continue;
 
-               dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host,
-                        "%s: bus error (%d/%d)\n", __func__, d - dst, len);
                NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host);
+               dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host,
+                        "%s: bus error [%d/%d] (%d/%d)\n",
+                        __func__, d - dst, len, bytes, chunk_bytes);
+
+               if (bytes == 0)
+                       continue;
+
                result = -1;
                goto out;
        }
@@ -345,13 +346,14 @@ static inline int macscsi_pwrite(struct NCR5380_hostdata *hostdata,
        while (!NCR5380_poll_politely(hostdata, BUS_AND_STATUS_REG,
                                      BASR_DRQ | BASR_PHASE_MATCH,
                                      BASR_DRQ | BASR_PHASE_MATCH, 0)) {
-               int bytes;
+               int bytes, chunk_bytes;
 
                if (macintosh_config->ident == MAC_MODEL_IIFX)
                        write_ctrl_reg(hostdata, CTRL_HANDSHAKE_MODE |
                                                 CTRL_INTERRUPTS_ENABLE);
 
-               bytes = mac_pdma_send(s, d, min(hostdata->pdma_residual, 512));
+               chunk_bytes = min(hostdata->pdma_residual, 512);
+               bytes = mac_pdma_send(s, d, chunk_bytes);
 
                if (bytes > 0) {
                        s += bytes;
@@ -370,23 +372,23 @@ static inline int macscsi_pwrite(struct NCR5380_hostdata *hostdata,
                        goto out;
                }
 
-               if (NCR5380_poll_politely2(hostdata, STATUS_REG, SR_REQ, SR_REQ,
-                                          BUS_AND_STATUS_REG, BASR_ACK,
-                                          BASR_ACK, 0) < 0)
-                       scmd_printk(KERN_DEBUG, hostdata->connected,
-                                   "%s: !REQ and !ACK\n", __func__);
                if (!(NCR5380_read(BUS_AND_STATUS_REG) & BASR_PHASE_MATCH))
                        goto out;
 
                if (bytes == 0)
                        udelay(MAC_PDMA_DELAY);
 
-               if (bytes >= 0)
+               if (bytes > 0)
                        continue;
 
-               dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host,
-                        "%s: bus error (%d/%d)\n", __func__, s - src, len);
                NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host);
+               dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host,
+                        "%s: bus error [%d/%d] (%d/%d)\n",
+                        __func__, s - src, len, bytes, chunk_bytes);
+
+               if (bytes == 0)
+                       continue;
+
                result = -1;
                goto out;
        }