On Thu, 2021-04-15 at 00:39 +0200, Maciej W. Rozycki wrote:
> Update BusLogic driver's messaging system to use `pr_cont' for 
> continuation lines, bringing messy output:
> 
> pci 0000:00:13.0: PCI->APIC IRQ transform: INT A -> IRQ 17
> scsi: ***** BusLogic SCSI Driver Version 2.1.17 of 12 September 2013 *****
> scsi: Copyright 1995-1998 by Leonard N. Zubkoff <l...@dandelion.com>
> scsi0: Configuring BusLogic Model BT-958 PCI Wide Ultra SCSI Host Adapter
> scsi0:   Firmware Version: 5.07B, I/O Address: 0x7000, IRQ Channel: 17/Level
> scsi0:   PCI Bus: 0, Device: 19, Address:
> 0xE0012000,
> Host Adapter SCSI ID: 7
> scsi0:   Parity Checking: Enabled, Extended Translation: Enabled
> scsi0:   Synchronous Negotiation: Ultra, Wide Negotiation: Enabled
> scsi0:   Disconnect/Reconnect: Enabled, Tagged Queuing: Enabled
> scsi0:   Scatter/Gather Limit: 128 of 8192 segments, Mailboxes: 211
> scsi0:   Driver Queue Depth: 211, Host Adapter Queue Depth: 192
> scsi0:   Tagged Queue Depth:
> Automatic
> , Untagged Queue Depth: 3
> scsi0:   SCSI Bus Termination: Both Enabled
> , SCAM: Disabled
> 
> scsi0: *** BusLogic BT-958 Initialized Successfully ***
> scsi host0: BusLogic BT-958
> 
> back to order:
> 
> pci 0000:00:13.0: PCI->APIC IRQ transform: INT A -> IRQ 17
> scsi: ***** BusLogic SCSI Driver Version 2.1.17 of 12 September 2013 *****
> scsi: Copyright 1995-1998 by Leonard N. Zubkoff <l...@dandelion.com>
> scsi0: Configuring BusLogic Model BT-958 PCI Wide Ultra SCSI Host Adapter
> scsi0:   Firmware Version: 5.07B, I/O Address: 0x7000, IRQ Channel: 17/Level
> scsi0:   PCI Bus: 0, Device: 19, Address: 0xE0012000, Host Adapter SCSI ID: 7
> scsi0:   Parity Checking: Enabled, Extended Translation: Enabled
> scsi0:   Synchronous Negotiation: Ultra, Wide Negotiation: Enabled
> scsi0:   Disconnect/Reconnect: Enabled, Tagged Queuing: Enabled
> scsi0:   Scatter/Gather Limit: 128 of 8192 segments, Mailboxes: 211
> scsi0:   Driver Queue Depth: 211, Host Adapter Queue Depth: 192
> scsi0:   Tagged Queue Depth: Automatic, Untagged Queue Depth: 3
> scsi0:   SCSI Bus Termination: Both Enabled, SCAM: Disabled
> scsi0: *** BusLogic BT-958 Initialized Successfully ***
> scsi host0: BusLogic BT-958
> 
> Also diagnostic output such as with the `BusLogic=TraceConfiguration' 
> parameter is affected and becomes vertical and therefore hard to read.  
> This has now been corrected, e.g.:
> 
> pci 0000:00:13.0: PCI->APIC IRQ transform: INT A -> IRQ 17
> blogic_cmd(86) Status = 30:  4 ==>  4: FF 05 93 00
> blogic_cmd(95) Status = 28: (Modify I/O Address)
> blogic_cmd(91) Status = 30:  1 ==>  1: 01
> blogic_cmd(04) Status = 30:  4 ==>  4: 41 41 35 30
> blogic_cmd(8D) Status = 30: 14 ==> 14: 45 DC 00 20 00 00 00 00 00 40 30 37 42 
> 1D
> scsi: ***** BusLogic SCSI Driver Version 2.1.17 of 12 September 2013 *****
> scsi: Copyright 1995-1998 by Leonard N. Zubkoff <l...@dandelion.com>
> blogic_cmd(04) Status = 30:  4 ==>  4: 41 41 35 30
> blogic_cmd(0B) Status = 30:  3 ==>  3: 00 08 07
> blogic_cmd(0D) Status = 30: 34 ==> 34: 03 01 07 04 00 00 00 00 00 00 00 00 00 
> 00 00 00 FF 42 44 46 FF 00 00 00 00 00 00 00 00 00 FF 00 FF 00
> blogic_cmd(8D) Status = 30: 14 ==> 14: 45 DC 00 20 00 00 00 00 00 40 30 37 42 
> 1D
> blogic_cmd(84) Status = 30:  1 ==>  1: 37
> blogic_cmd(8B) Status = 30:  5 ==>  5: 39 35 38 20 20
> blogic_cmd(85) Status = 30:  1 ==>  1: 42
> blogic_cmd(86) Status = 30:  4 ==>  4: FF 05 93 00
> blogic_cmd(91) Status = 30: 64 ==> 64: 41 46 3E 20 39 35 38 20 20 00 C4 00 04 
> 01 07 2F 07 04 35 FF FF FF FF FF FF FF FF FF FF 01 00 FE FF 08 FF FF 00 00 00 
> 00 00 00 00 01 00 01 00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 FC
> scsi0: Configuring BusLogic Model BT-958 PCI Wide Ultra SCSI Host Adapter
> 
> etc.

In patch 2, vscnprintf should probably be used to make sure it's
0 terminated.

And while it's a lot more code, I'd prefer a solution that looks more
like the other commonly used kernel logging extension mechanisms
where adapter is placed before the format, ... in the argument list.

Today it's:

void blogic_msg(enum, fmt, adapter, ...);

without the __printf marking so there is one format/arg mismatch.

fyi: in the suggested patch below it's
-                       blogic_info("BIOS Address: 0x%lX, ", adapter,
-                                       adapter->bios_addr);
+                       blogic_cont(adapter, "BIOS Address: 0x%X, ",
+                                   adapter->bios_addr);

I'd prefer
__printf(3, 4)
void blogic_msg(enum, adapter, fmt, ...)

(or maybe void blogic_msg(adapter, enum, fmt, ...))

And there's a simple addition of a blogic_cont macro and extension
to blogic_msg to simplify the logic and obviousness of the logging
extension lines too.

I suggest this done with coccinelle and a little typing:
---
 drivers/scsi/BusLogic.c | 496 +++++++++++++++++++++++++++++++-----------------
 drivers/scsi/BusLogic.h |  32 ++--
 2 files changed, 341 insertions(+), 187 deletions(-)

diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
index ccb061ab0a0a..7a52371b5ab6 100644
--- a/drivers/scsi/BusLogic.c
+++ b/drivers/scsi/BusLogic.c
@@ -134,8 +134,10 @@ static char *blogic_cmd_failure_reason;
 
 static void blogic_announce_drvr(struct blogic_adapter *adapter)
 {
-       blogic_announce("***** BusLogic SCSI Driver Version " 
blogic_drvr_version " of " blogic_drvr_date " *****\n", adapter);
-       blogic_announce("Copyright 1995-1998 by Leonard N. Zubkoff 
<l...@dandelion.com>\n", adapter);
+       blogic_announce(adapter,
+                       "***** BusLogic SCSI Driver Version " 
blogic_drvr_version " of " blogic_drvr_date " *****\n");
+       blogic_announce(adapter,
+                       "Copyright 1995-1998 by Leonard N. Zubkoff 
<l...@dandelion.com>\n");
 }
 
 
@@ -198,8 +200,7 @@ static bool __init blogic_create_initccbs(struct 
blogic_adapter *adapter)
                blk_pointer = dma_alloc_coherent(&adapter->pci_device->dev,
                                blk_size, &blkp, GFP_KERNEL);
                if (blk_pointer == NULL) {
-                       blogic_err("UNABLE TO ALLOCATE CCB GROUP - DETACHING\n",
-                                       adapter);
+                       blogic_err(adapter, "UNABLE TO ALLOCATE CCB GROUP - 
DETACHING\n");
                        return false;
                }
                blogic_init_ccbs(adapter, blk_pointer, blk_size, blkp);
@@ -259,10 +260,13 @@ static void blogic_create_addlccbs(struct blogic_adapter 
*adapter,
        }
        if (adapter->alloc_ccbs > prev_alloc) {
                if (print_success)
-                       blogic_notice("Allocated %d additional CCBs (total now 
%d)\n", adapter, adapter->alloc_ccbs - prev_alloc, adapter->alloc_ccbs);
+                       blogic_notice(adapter,
+                                     "Allocated %d additional CCBs (total now 
%d)\n",
+                                     adapter->alloc_ccbs - prev_alloc,
+                                     adapter->alloc_ccbs);
                return;
        }
-       blogic_notice("Failed to allocate additional CCBs\n", adapter);
+       blogic_notice(adapter, "Failed to allocate additional CCBs\n");
        if (adapter->drvr_qdepth > adapter->alloc_ccbs - adapter->tgt_count) {
                adapter->drvr_qdepth = adapter->alloc_ccbs - adapter->tgt_count;
                adapter->scsi_host->can_queue = adapter->drvr_qdepth;
@@ -441,7 +445,9 @@ static int blogic_cmd(struct blogic_adapter *adapter, enum 
blogic_opcode opcode,
                        goto done;
                }
                if (blogic_global_options.trace_config)
-                       blogic_notice("blogic_cmd(%02X) Status = %02X: (Modify 
I/O Address)\n", adapter, opcode, statusreg.all);
+                       blogic_notice(adapter,
+                                     "blogic_cmd(%02X) Status = %02X: (Modify 
I/O Address)\n",
+                                     opcode, statusreg.all);
                result = 0;
                goto done;
        }
@@ -499,15 +505,16 @@ static int blogic_cmd(struct blogic_adapter *adapter, 
enum blogic_opcode opcode,
         */
        if (blogic_global_options.trace_config) {
                int i;
-               blogic_notice("blogic_cmd(%02X) Status = %02X: %2d ==> %2d:",
-                               adapter, opcode, statusreg.all, replylen,
+               blogic_notice(adapter,
+                             "blogic_cmd(%02X) Status = %02X: %2d ==> %2d:",
+                             opcode, statusreg.all, replylen,
                                reply_b);
                if (replylen > reply_b)
                        replylen = reply_b;
                for (i = 0; i < replylen; i++)
-                       blogic_notice(" %02X", adapter,
-                                       ((unsigned char *) reply)[i]);
-               blogic_notice("\n", adapter);
+                       blogic_cont(adapter, " %02X",
+                                   ((unsigned char *)reply)[i]);
+               blogic_cont(adapter, "\n");
        }
        /*
           Process Command Invalid conditions.
@@ -717,23 +724,37 @@ static int __init blogic_init_mm_probeinfo(struct 
blogic_adapter *adapter)
                pci_addr = base_addr1 = pci_resource_start(pci_device, 1);
 
                if (pci_resource_flags(pci_device, 0) & IORESOURCE_MEM) {
-                       blogic_err("BusLogic: Base Address0 0x%lX not I/O for 
MultiMaster Host Adapter\n", NULL, base_addr0);
-                       blogic_err("at PCI Bus %d Device %d I/O Address 
0x%lX\n", NULL, bus, device, io_addr);
+                       blogic_err(NULL,
+                                  "BusLogic: Base Address0 0x%lX not I/O for 
MultiMaster Host Adapter\n",
+                                  base_addr0);
+                       blogic_err(NULL,
+                                  "at PCI Bus %d Device %d I/O Address 
0x%lX\n",
+                                  bus, device, io_addr);
                        continue;
                }
                if (pci_resource_flags(pci_device, 1) & IORESOURCE_IO) {
-                       blogic_err("BusLogic: Base Address1 0x%lX not Memory 
for MultiMaster Host Adapter\n", NULL, base_addr1);
-                       blogic_err("at PCI Bus %d Device %d PCI Address 
0x%lX\n", NULL, bus, device, pci_addr);
+                       blogic_err(NULL,
+                                  "BusLogic: Base Address1 0x%lX not Memory 
for MultiMaster Host Adapter\n",
+                                  base_addr1);
+                       blogic_err(NULL,
+                                  "at PCI Bus %d Device %d PCI Address 
0x%lX\n",
+                                  bus, device, pci_addr);
                        continue;
                }
                if (irq_ch == 0) {
-                       blogic_err("BusLogic: IRQ Channel %d invalid for 
MultiMaster Host Adapter\n", NULL, irq_ch);
-                       blogic_err("at PCI Bus %d Device %d I/O Address 
0x%lX\n", NULL, bus, device, io_addr);
+                       blogic_err(NULL,
+                                  "BusLogic: IRQ Channel %d invalid for 
MultiMaster Host Adapter\n",
+                                  irq_ch);
+                       blogic_err(NULL,
+                                  "at PCI Bus %d Device %d I/O Address 
0x%lX\n",
+                                  bus, device, io_addr);
                        continue;
                }
                if (blogic_global_options.trace_probe) {
-                       blogic_notice("BusLogic: PCI MultiMaster Host Adapter 
detected at\n", NULL);
-                       blogic_notice("BusLogic: PCI Bus %d Device %d I/O 
Address 0x%lX PCI Address 0x%lX\n", NULL, bus, device, io_addr, pci_addr);
+                       blogic_notice(NULL, "BusLogic: PCI MultiMaster Host 
Adapter detected at\n");
+                       blogic_notice(NULL,
+                                     "BusLogic: PCI Bus %d Device %d I/O 
Address 0x%lX PCI Address 0x%lX\n",
+                                     bus, device, io_addr, pci_addr);
                }
                /*
                   Issue the Inquire PCI Host Adapter Information command to 
determine
@@ -819,7 +840,7 @@ static int __init blogic_init_mm_probeinfo(struct 
blogic_adapter *adapter)
                        nonpr_mmcount++;
                        mmcount++;
                } else
-                       blogic_warn("BusLogic: Too many Host Adapters 
detected\n", NULL);
+                       blogic_warn(NULL, "BusLogic: Too many Host Adapters 
detected\n");
        }
        /*
           If the AutoSCSI "Use Bus And Device # For PCI Scanning Seq."
@@ -957,23 +978,37 @@ static int __init blogic_init_fp_probeinfo(struct 
blogic_adapter *adapter)
                pci_addr = base_addr1 = pci_resource_start(pci_device, 1);
 #ifdef CONFIG_SCSI_FLASHPOINT
                if (pci_resource_flags(pci_device, 0) & IORESOURCE_MEM) {
-                       blogic_err("BusLogic: Base Address0 0x%lX not I/O for 
FlashPoint Host Adapter\n", NULL, base_addr0);
-                       blogic_err("at PCI Bus %d Device %d I/O Address 
0x%lX\n", NULL, bus, device, io_addr);
+                       blogic_err(NULL,
+                                  "BusLogic: Base Address0 0x%lX not I/O for 
FlashPoint Host Adapter\n",
+                                  base_addr0);
+                       blogic_err(NULL,
+                                  "at PCI Bus %d Device %d I/O Address 
0x%lX\n",
+                                  bus, device, io_addr);
                        continue;
                }
                if (pci_resource_flags(pci_device, 1) & IORESOURCE_IO) {
-                       blogic_err("BusLogic: Base Address1 0x%lX not Memory 
for FlashPoint Host Adapter\n", NULL, base_addr1);
-                       blogic_err("at PCI Bus %d Device %d PCI Address 
0x%lX\n", NULL, bus, device, pci_addr);
+                       blogic_err(NULL,
+                                  "BusLogic: Base Address1 0x%lX not Memory 
for FlashPoint Host Adapter\n",
+                                  base_addr1);
+                       blogic_err(NULL,
+                                  "at PCI Bus %d Device %d PCI Address 
0x%lX\n",
+                                  bus, device, pci_addr);
                        continue;
                }
                if (irq_ch == 0) {
-                       blogic_err("BusLogic: IRQ Channel %d invalid for 
FlashPoint Host Adapter\n", NULL, irq_ch);
-                       blogic_err("at PCI Bus %d Device %d I/O Address 
0x%lX\n", NULL, bus, device, io_addr);
+                       blogic_err(NULL,
+                                  "BusLogic: IRQ Channel %d invalid for 
FlashPoint Host Adapter\n",
+                                  irq_ch);
+                       blogic_err(NULL,
+                                  "at PCI Bus %d Device %d I/O Address 
0x%lX\n",
+                                  bus, device, io_addr);
                        continue;
                }
                if (blogic_global_options.trace_probe) {
-                       blogic_notice("BusLogic: FlashPoint Host Adapter 
detected at\n", NULL);
-                       blogic_notice("BusLogic: PCI Bus %d Device %d I/O 
Address 0x%lX PCI Address 0x%lX\n", NULL, bus, device, io_addr, pci_addr);
+                       blogic_notice(NULL, "BusLogic: FlashPoint Host Adapter 
detected at\n");
+                       blogic_notice(NULL,
+                                     "BusLogic: PCI Bus %d Device %d I/O 
Address 0x%lX PCI Address 0x%lX\n",
+                                     bus, device, io_addr, pci_addr);
                }
                if (blogic_probeinfo_count < BLOGIC_MAX_ADAPTERS) {
                        struct blogic_probeinfo *probeinfo =
@@ -988,11 +1023,15 @@ static int __init blogic_init_fp_probeinfo(struct 
blogic_adapter *adapter)
                        probeinfo->pci_device = pci_dev_get(pci_device);
                        fpcount++;
                } else
-                       blogic_warn("BusLogic: Too many Host Adapters 
detected\n", NULL);
+                       blogic_warn(NULL, "BusLogic: Too many Host Adapters 
detected\n");
 #else
-               blogic_err("BusLogic: FlashPoint Host Adapter detected at PCI 
Bus %d Device %d\n", NULL, bus, device);
-               blogic_err("BusLogic: I/O Address 0x%lX PCI Address 0x%lX, irq 
%d, but FlashPoint\n", NULL, io_addr, pci_addr, irq_ch);
-               blogic_err("BusLogic: support was omitted in this kernel 
configuration.\n", NULL);
+               blogic_err(NULL,
+                          "BusLogic: FlashPoint Host Adapter detected at PCI 
Bus %d Device %d\n",
+                          bus, device);
+               blogic_err(NULL,
+                          "BusLogic: I/O Address 0x%lX PCI Address 0x%lX, irq 
%d, but FlashPoint\n",
+                          io_addr, pci_addr, irq_ch);
+               blogic_err("BusLogic: support was omitted in this kernel 
configuration\n", NULL);
 #endif
        }
        /*
@@ -1098,15 +1137,19 @@ static bool blogic_failure(struct blogic_adapter 
*adapter, char *msg)
 {
        blogic_announce_drvr(adapter);
        if (adapter->adapter_bus_type == BLOGIC_PCI_BUS) {
-               blogic_err("While configuring BusLogic PCI Host Adapter at\n",
-                               adapter);
-               blogic_err("Bus %d Device %d I/O Address 0x%lX PCI Address 
0x%lX:\n", adapter, adapter->bus, adapter->dev, adapter->io_addr, 
adapter->pci_addr);
+               blogic_err(adapter, "While configuring BusLogic PCI Host 
Adapter at\n");
+               blogic_err(adapter,
+                          "Bus %d Device %d I/O Address 0x%lX PCI Address 
0x%lX:\n",
+                          adapter->bus, adapter->dev, adapter->io_addr,
+                          adapter->pci_addr);
        } else
-               blogic_err("While configuring BusLogic Host Adapter at I/O 
Address 0x%lX:\n", adapter, adapter->io_addr);
-       blogic_err("%s FAILED - DETACHING\n", adapter, msg);
+               blogic_err(adapter,
+                          "While configuring BusLogic Host Adapter at I/O 
Address 0x%lX:\n",
+                          adapter->io_addr);
+       blogic_err(adapter, "%s FAILED - DETACHING\n", msg);
        if (blogic_cmd_failure_reason != NULL)
-               blogic_err("ADDITIONAL FAILURE INFO - %s\n", adapter,
-                               blogic_cmd_failure_reason);
+               blogic_err(adapter, "ADDITIONAL FAILURE INFO - %s\n",
+                          blogic_cmd_failure_reason);
        return false;
 }
 
@@ -1130,13 +1173,20 @@ static bool __init blogic_probe(struct blogic_adapter 
*adapter)
                fpinfo->present = false;
                if (!(FlashPoint_ProbeHostAdapter(fpinfo) == 0 &&
                                        fpinfo->present)) {
-                       blogic_err("BusLogic: FlashPoint Host Adapter detected 
at PCI Bus %d Device %d\n", adapter, adapter->bus, adapter->dev);
-                       blogic_err("BusLogic: I/O Address 0x%lX PCI Address 
0x%lX, but FlashPoint\n", adapter, adapter->io_addr, adapter->pci_addr);
-                       blogic_err("BusLogic: Probe Function failed to validate 
it.\n", adapter);
+                       blogic_err(adapter,
+                                  "BusLogic: FlashPoint Host Adapter detected 
at PCI Bus %d Device %d\n",
+                                  adapter->bus, adapter->dev);
+                       blogic_err(adapter,
+                                  "BusLogic: I/O Address 0x%lX PCI Address 
0x%lX, but FlashPoint\n",
+                                  adapter->io_addr, adapter->pci_addr);
+                       blogic_err(adapter,
+                                  "BusLogic: Probe Function failed to validate 
it\n");
                        return false;
                }
                if (blogic_global_options.trace_probe)
-                       blogic_notice("BusLogic_Probe(0x%lX): FlashPoint 
Found\n", adapter, adapter->io_addr);
+                       blogic_notice(adapter,
+                                     "BusLogic_Probe(0x%lX): FlashPoint 
Found\n",
+                                     adapter->io_addr);
                /*
                   Indicate the Host Adapter Probe completed successfully.
                 */
@@ -1153,7 +1203,10 @@ static bool __init blogic_probe(struct blogic_adapter 
*adapter)
        intreg.all = blogic_rdint(adapter);
        georeg.all = blogic_rdgeom(adapter);
        if (blogic_global_options.trace_probe)
-               blogic_notice("BusLogic_Probe(0x%lX): Status 0x%02X, Interrupt 
0x%02X, Geometry 0x%02X\n", adapter, adapter->io_addr, statusreg.all, 
intreg.all, georeg.all);
+               blogic_notice(adapter,
+                             "BusLogic_Probe(0x%lX): Status 0x%02X, Interrupt 
0x%02X, Geometry 0x%02X\n",
+                             adapter->io_addr, statusreg.all, intreg.all,
+                             georeg.all);
        if (statusreg.all == 0 || statusreg.sr.diag_active ||
                        statusreg.sr.cmd_param_busy || statusreg.sr.rsvd ||
                        statusreg.sr.cmd_invalid || intreg.ir.rsvd != 0)
@@ -1232,7 +1285,9 @@ static bool blogic_hwreset(struct blogic_adapter 
*adapter, bool hard_reset)
                udelay(100);
        }
        if (blogic_global_options.trace_hw_reset)
-               blogic_notice("BusLogic_HardwareReset(0x%lX): Diagnostic 
Active, Status 0x%02X\n", adapter, adapter->io_addr, statusreg.all);
+               blogic_notice(adapter,
+                             "BusLogic_HardwareReset(0x%lX): Diagnostic 
Active, Status 0x%02X\n",
+                             adapter->io_addr, statusreg.all);
        if (timeout < 0)
                return false;
        /*
@@ -1252,7 +1307,9 @@ static bool blogic_hwreset(struct blogic_adapter 
*adapter, bool hard_reset)
                udelay(100);
        }
        if (blogic_global_options.trace_hw_reset)
-               blogic_notice("BusLogic_HardwareReset(0x%lX): Diagnostic 
Completed, Status 0x%02X\n", adapter, adapter->io_addr, statusreg.all);
+               blogic_notice(adapter,
+                             "BusLogic_HardwareReset(0x%lX): Diagnostic 
Completed, Status 0x%02X\n",
+                             adapter->io_addr, statusreg.all);
        if (timeout < 0)
                return false;
        /*
@@ -1268,7 +1325,9 @@ static bool blogic_hwreset(struct blogic_adapter 
*adapter, bool hard_reset)
                udelay(100);
        }
        if (blogic_global_options.trace_hw_reset)
-               blogic_notice("BusLogic_HardwareReset(0x%lX): Host Adapter 
Ready, Status 0x%02X\n", adapter, adapter->io_addr, statusreg.all);
+               blogic_notice(adapter,
+                             "BusLogic_HardwareReset(0x%lX): Host Adapter 
Ready, Status 0x%02X\n",
+                             adapter->io_addr, statusreg.all);
        if (timeout < 0)
                return false;
        /*
@@ -1280,11 +1339,11 @@ static bool blogic_hwreset(struct blogic_adapter 
*adapter, bool hard_reset)
        if (statusreg.sr.diag_failed || !statusreg.sr.adapter_ready) {
                blogic_cmd_failure_reason = NULL;
                blogic_failure(adapter, "HARD RESET DIAGNOSTICS");
-               blogic_err("HOST ADAPTER STATUS REGISTER = %02X\n", adapter,
-                               statusreg.all);
+               blogic_err(adapter, "HOST ADAPTER STATUS REGISTER = %02X\n",
+                          statusreg.all);
                if (statusreg.sr.datain_ready)
-                       blogic_err("HOST ADAPTER ERROR CODE = %d\n", adapter,
-                                       blogic_rddatain(adapter));
+                       blogic_err(adapter, "HOST ADAPTER ERROR CODE = %d\n",
+                                  blogic_rddatain(adapter));
                return false;
        }
        /*
@@ -1324,9 +1383,10 @@ static bool __init blogic_checkadapter(struct 
blogic_adapter *adapter)
           Provide tracing information if requested and return.
         */
        if (blogic_global_options.trace_probe)
-               blogic_notice("BusLogic_Check(0x%lX): MultiMaster %s\n", 
adapter,
-                               adapter->io_addr,
-                               (result ? "Found" : "Not Found"));
+               blogic_notice(adapter,
+                             "BusLogic_Check(0x%lX): MultiMaster %s\n",
+                             adapter->io_addr,
+                             (result ? "Found" : "Not Found"));
        return result;
 }
 
@@ -1836,30 +1896,40 @@ static bool __init blogic_reportconfig(struct 
blogic_adapter *adapter)
        char *tagq_msg = tagq_str;
        int tgt_id;
 
-       blogic_info("Configuring BusLogic Model %s %s%s%s%s SCSI Host 
Adapter\n", adapter, adapter->model, 
blogic_adapter_busnames[adapter->adapter_bus_type], (adapter->wide ? " Wide" : 
""), (adapter->differential ? " Differential" : ""), (adapter->ultra ? " Ultra" 
: ""));
-       blogic_info("  Firmware Version: %s, I/O Address: 0x%lX, IRQ Channel: 
%d/%s\n", adapter, adapter->fw_ver, adapter->io_addr, adapter->irq_ch, 
(adapter->level_int ? "Level" : "Edge"));
+       blogic_info(adapter,
+                   "Configuring BusLogic Model %s %s%s%s%s SCSI Host 
Adapter\n",
+                   adapter->model,
+                   blogic_adapter_busnames[adapter->adapter_bus_type],
+                   (adapter->wide ? " Wide" : ""),
+                   (adapter->differential ? " Differential" : ""),
+                   (adapter->ultra ? " Ultra" : ""));
+       blogic_info(adapter,
+                   "  Firmware Version: %s, I/O Address: 0x%lX, IRQ Channel: 
%d/%s\n",
+                   adapter->fw_ver, adapter->io_addr, adapter->irq_ch,
+                   (adapter->level_int ? "Level" : "Edge"));
        if (adapter->adapter_bus_type != BLOGIC_PCI_BUS) {
-               blogic_info("  DMA Channel: ", adapter);
+               blogic_info(adapter, "  DMA Channel: ");
                if (adapter->dma_ch > 0)
-                       blogic_info("%d, ", adapter, adapter->dma_ch);
+                       blogic_cont(adapter, "%d, ", adapter->dma_ch);
                else
-                       blogic_info("None, ", adapter);
+                       blogic_cont(adapter, "None, ");
                if (adapter->bios_addr > 0)
-                       blogic_info("BIOS Address: 0x%lX, ", adapter,
-                                       adapter->bios_addr);
+                       blogic_cont(adapter, "BIOS Address: 0x%X, ",
+                                   adapter->bios_addr);
                else
-                       blogic_info("BIOS Address: None, ", adapter);
+                       blogic_cont(adapter, "BIOS Address: None, ");
        } else {
-               blogic_info("  PCI Bus: %d, Device: %d, Address: ", adapter,
-                               adapter->bus, adapter->dev);
+               blogic_cont(adapter, "  PCI Bus: %d, Device: %d, Address: ",
+                           adapter->bus, adapter->dev);
                if (adapter->pci_addr > 0)
-                       blogic_info("0x%lX, ", adapter, adapter->pci_addr);
+                       blogic_cont(adapter, "0x%lX, ", adapter->pci_addr);
                else
-                       blogic_info("Unassigned, ", adapter);
+                       blogic_cont(adapter, "Unassigned, ");
        }
-       blogic_info("Host Adapter SCSI ID: %d\n", adapter, adapter->scsi_id);
-       blogic_info("  Parity Checking: %s, Extended Translation: %s\n",
-                       adapter, (adapter->parity ? "Enabled" : "Disabled"),
+       blogic_cont(adapter, "Host Adapter SCSI ID: %d\n", adapter->scsi_id);
+       blogic_info(adapter,
+                   "  Parity Checking: %s, Extended Translation: %s\n",
+                       (adapter->parity ? "Enabled" : "Disabled"),
                        (adapter->ext_trans_enable ? "Enabled" : "Disabled"));
        alltgt_mask &= ~(1 << adapter->scsi_id);
        sync_ok = adapter->sync_ok & alltgt_mask;
@@ -1928,16 +1998,25 @@ static bool __init blogic_reportconfig(struct 
blogic_adapter *adapter)
                tagq_str[adapter->scsi_id] = '#';
                tagq_str[adapter->maxdev] = '\0';
        }
-       blogic_info("  Synchronous Negotiation: %s, Wide Negotiation: %s\n",
-                       adapter, syncmsg, widemsg);
-       blogic_info("  Disconnect/Reconnect: %s, Tagged Queuing: %s\n", adapter,
-                       discon_msg, tagq_msg);
+       blogic_info(adapter,
+                   "  Synchronous Negotiation: %s, Wide Negotiation: %s\n",
+                   syncmsg, widemsg);
+       blogic_info(adapter,
+                   "  Disconnect/Reconnect: %s, Tagged Queuing: %s\n",
+                   discon_msg, tagq_msg);
        if (blogic_multimaster_type(adapter)) {
-               blogic_info("  Scatter/Gather Limit: %d of %d segments, 
Mailboxes: %d\n", adapter, adapter->drvr_sglimit, adapter->adapter_sglimit, 
adapter->mbox_count);
-               blogic_info("  Driver Queue Depth: %d, Host Adapter Queue 
Depth: %d\n", adapter, adapter->drvr_qdepth, adapter->adapter_qdepth);
+               blogic_info(adapter,
+                           "  Scatter/Gather Limit: %d of %d segments, 
Mailboxes: %d\n",
+                           adapter->drvr_sglimit, adapter->adapter_sglimit,
+                           adapter->mbox_count);
+               blogic_info(adapter,
+                           "  Driver Queue Depth: %d, Host Adapter Queue 
Depth: %d\n",
+                           adapter->drvr_qdepth, adapter->adapter_qdepth);
        } else
-               blogic_info("  Driver Queue Depth: %d, Scatter/Gather Limit: %d 
segments\n", adapter, adapter->drvr_qdepth, adapter->drvr_sglimit);
-       blogic_info("  Tagged Queue Depth: ", adapter);
+               blogic_info(adapter,
+                           "  Driver Queue Depth: %d, Scatter/Gather Limit: %d 
segments\n",
+                           adapter->drvr_qdepth, adapter->drvr_sglimit);
+       blogic_info(adapter, "  Tagged Queue Depth: ");
        common_tagq_depth = true;
        for (tgt_id = 1; tgt_id < adapter->maxdev; tgt_id++)
                if (adapter->qdepth[tgt_id] != adapter->qdepth[0]) {
@@ -1946,24 +2025,28 @@ static bool __init blogic_reportconfig(struct 
blogic_adapter *adapter)
                }
        if (common_tagq_depth) {
                if (adapter->qdepth[0] > 0)
-                       blogic_info("%d", adapter, adapter->qdepth[0]);
+                       blogic_cont(adapter, "%d", adapter->qdepth[0]);
                else
-                       blogic_info("Automatic", adapter);
+                       blogic_cont(adapter, "Automatic");
        } else
-               blogic_info("Individual", adapter);
-       blogic_info(", Untagged Queue Depth: %d\n", adapter,
-                       adapter->untag_qdepth);
+               blogic_cont(adapter, "Individual");
+       blogic_cont(adapter, ", Untagged Queue Depth: %d\n",
+                   adapter->untag_qdepth);
        if (adapter->terminfo_valid) {
                if (adapter->wide)
-                       blogic_info("  SCSI Bus Termination: %s", adapter,
-                               (adapter->low_term ? (adapter->high_term ? 
"Both Enabled" : "Low Enabled") : (adapter->high_term ? "High Enabled" : "Both 
Disabled")));
+                       blogic_info(adapter, "  SCSI Bus Termination: %s",
+                                   (adapter->low_term
+                                    ? (adapter->high_term ? "Both Enabled" : 
"Low Enabled")
+                                    : (adapter->high_term ? "High Enabled" : 
"Both Disabled")));
                else
-                       blogic_info("  SCSI Bus Termination: %s", adapter,
-                               (adapter->low_term ? "Enabled" : "Disabled"));
+                       blogic_info(adapter, "  SCSI Bus Termination: %s",
+                                   (adapter->low_term ? "Enabled" : 
"Disabled"));
                if (adapter->scam)
-                       blogic_info(", SCAM: %s", adapter,
-                               (adapter->scam_enabled ? (adapter->scam_lev2 ? 
"Enabled, Level 2" : "Enabled, Level 1") : "Disabled"));
-               blogic_info("\n", adapter);
+                       blogic_cont(adapter, ", SCAM: %s",
+                                   (adapter->scam_enabled
+                                    ? (adapter->scam_lev2 ? "Enabled, Level 2" 
: "Enabled, Level 1")
+                                    : "Disabled"));
+               blogic_cont(adapter, "\n");
        }
        /*
           Indicate reporting the Host Adapter configuration completed
@@ -1981,8 +2064,8 @@ static bool __init blogic_reportconfig(struct 
blogic_adapter *adapter)
 static bool __init blogic_getres(struct blogic_adapter *adapter)
 {
        if (adapter->irq_ch == 0) {
-               blogic_err("NO LEGAL INTERRUPT CHANNEL ASSIGNED - DETACHING\n",
-                               adapter);
+               blogic_err(adapter,
+                          "NO LEGAL INTERRUPT CHANNEL ASSIGNED - DETACHING\n");
                return false;
        }
        /*
@@ -1990,8 +2073,9 @@ static bool __init blogic_getres(struct blogic_adapter 
*adapter)
         */
        if (request_irq(adapter->irq_ch, blogic_inthandler, IRQF_SHARED,
                                adapter->full_model, adapter) < 0) {
-               blogic_err("UNABLE TO ACQUIRE IRQ CHANNEL %d - DETACHING\n",
-                               adapter, adapter->irq_ch);
+               blogic_err(adapter,
+                          "UNABLE TO ACQUIRE IRQ CHANNEL %d - DETACHING\n",
+                          adapter->irq_ch);
                return false;
        }
        adapter->irq_acquired = true;
@@ -2000,7 +2084,9 @@ static bool __init blogic_getres(struct blogic_adapter 
*adapter)
         */
        if (adapter->dma_ch > 0) {
                if (request_dma(adapter->dma_ch, adapter->full_model) < 0) {
-                       blogic_err("UNABLE TO ACQUIRE DMA CHANNEL %d - 
DETACHING\n", adapter, adapter->dma_ch);
+                       blogic_err(adapter,
+                                  "UNABLE TO ACQUIRE DMA CHANNEL %d - 
DETACHING\n",
+                                  adapter->dma_ch);
                        return false;
                }
                set_dma_mode(adapter->dma_ch, DMA_MODE_CASCADE);
@@ -2148,12 +2234,12 @@ static bool blogic_initadapter(struct blogic_adapter 
*adapter)
         */
 done:
        if (!adapter->adapter_initd) {
-               blogic_info("*** %s Initialized Successfully ***\n", adapter,
-                               adapter->full_model);
-               blogic_info("\n", adapter);
+               blogic_info(adapter, "*** %s Initialized Successfully ***\n",
+                           adapter->full_model);
+               blogic_info(adapter, "\n");
        } else
-               blogic_warn("*** %s Initialized Successfully ***\n", adapter,
-                               adapter->full_model);
+               blogic_warn(adapter, "*** %s Initialized Successfully ***\n",
+                           adapter->full_model);
        adapter->adapter_initd = true;
 
        /*
@@ -2365,15 +2451,16 @@ static int __init blogic_init(void)
            kcalloc(BLOGIC_MAX_ADAPTERS, sizeof(struct blogic_probeinfo),
                            GFP_KERNEL);
        if (blogic_probeinfo_list == NULL) {
-               blogic_err("BusLogic: Unable to allocate Probe Info List\n",
-                               NULL);
+               blogic_err(NULL,
+                          "BusLogic: Unable to allocate Probe Info List\n");
                return -ENOMEM;
        }
 
        adapter = kzalloc(sizeof(struct blogic_adapter), GFP_KERNEL);
        if (adapter == NULL) {
                kfree(blogic_probeinfo_list);
-               blogic_err("BusLogic: Unable to allocate Prototype Host 
Adapter\n", NULL);
+               blogic_err(NULL,
+                          "BusLogic: Unable to allocate Prototype Host 
Adapter\n");
                return -ENOMEM;
        }
 
@@ -2633,8 +2720,9 @@ static int blogic_resultcode(struct blogic_adapter 
*adapter,
        case BLOGIC_INVALID_OUTBOX_CODE:
        case BLOGIC_INVALID_CMD_CODE:
        case BLOGIC_BAD_CMD_PARAM:
-               blogic_warn("BusLogic Driver Protocol Error 0x%02X\n",
-                               adapter, adapter_status);
+               blogic_warn(adapter,
+                           "BusLogic Driver Protocol Error 0x%02X\n",
+                           adapter_status);
                fallthrough;
        case BLOGIC_DATA_UNDERRUN:
        case BLOGIC_DATA_OVERRUN:
@@ -2659,8 +2747,8 @@ static int blogic_resultcode(struct blogic_adapter 
*adapter,
                hoststatus = DID_RESET;
                break;
        default:
-               blogic_warn("Unknown Host Adapter Status 0x%02X\n", adapter,
-                               adapter_status);
+               blogic_warn(adapter, "Unknown Host Adapter Status 0x%02X\n",
+                           adapter_status);
                hoststatus = DID_ERROR;
                break;
        }
@@ -2718,7 +2806,9 @@ static void blogic_scan_inbox(struct blogic_adapter 
*adapter)
                                   then there is most likely a bug in
                                   the Host Adapter firmware.
                                 */
-                               blogic_warn("Illegal CCB #%ld status %d in 
Incoming Mailbox\n", adapter, ccb->serial, ccb->status);
+                               blogic_warn(adapter,
+                                           "Illegal CCB #%ld status %d in 
Incoming Mailbox\n",
+                                           ccb->serial, ccb->status);
                        }
                }
                next_inbox->comp_code = BLOGIC_INBOX_FREE;
@@ -2753,7 +2843,9 @@ static void blogic_process_ccbs(struct blogic_adapter 
*adapter)
                if (ccb->opcode == BLOGIC_BDR) {
                        int tgt_id = ccb->tgt_id;
 
-                       blogic_warn("Bus Device Reset CCB #%ld to Target %d 
Completed\n", adapter, ccb->serial, tgt_id);
+                       blogic_warn(adapter,
+                                   "Bus Device Reset CCB #%ld to Target %d 
Completed\n",
+                                   ccb->serial, tgt_id);
                        blogic_inc_count(&adapter->tgt_stats[tgt_id].bdr_done);
                        adapter->tgt_flags[tgt_id].tagq_active = false;
                        adapter->cmds_since_rst[tgt_id] = 0;
@@ -2806,7 +2898,9 @@ static void blogic_process_ccbs(struct blogic_adapter 
*adapter)
                        case BLOGIC_INBOX_FREE:
                        case BLOGIC_CMD_NOTFOUND:
                        case BLOGIC_INVALID_CCB:
-                               blogic_warn("CCB #%ld to Target %d Impossible 
State\n", adapter, ccb->serial, ccb->tgt_id);
+                               blogic_warn(adapter,
+                                           "CCB #%ld to Target %d Impossible 
State\n",
+                                           ccb->serial, ccb->tgt_id);
                                break;
                        case BLOGIC_CMD_COMPLETE_GOOD:
                                adapter->tgt_stats[ccb->tgt_id]
@@ -2816,8 +2910,9 @@ static void blogic_process_ccbs(struct blogic_adapter 
*adapter)
                                command->result = DID_OK << 16;
                                break;
                        case BLOGIC_CMD_ABORT_BY_HOST:
-                               blogic_warn("CCB #%ld to Target %d Aborted\n",
-                                       adapter, ccb->serial, ccb->tgt_id);
+                               blogic_warn(adapter,
+                                           "CCB #%ld to Target %d Aborted\n",
+                                           ccb->serial, ccb->tgt_id);
                                
blogic_inc_count(&adapter->tgt_stats[ccb->tgt_id].aborts_done);
                                command->result = DID_ABORT << 16;
                                break;
@@ -2829,16 +2924,26 @@ static void blogic_process_ccbs(struct blogic_adapter 
*adapter)
                                            .cmds_complete++;
                                        if (blogic_global_options.trace_err) {
                                                int i;
-                                               blogic_notice("CCB #%ld Target 
%d: Result %X Host "
-                                                               "Adapter Status 
%02X Target Status %02X\n", adapter, ccb->serial, ccb->tgt_id, command->result, 
ccb->adapter_status, ccb->tgt_status);
-                                               blogic_notice("CDB   ", 
adapter);
+                                               blogic_notice(adapter,
+                                                             "CCB #%ld Target 
%d: Result %X Host Adapter Status %02X Target Status %02X\n",
+                                                             ccb->serial,
+                                                             ccb->tgt_id,
+                                                             command->result,
+                                                             
ccb->adapter_status,
+                                                             ccb->tgt_status);
+                                               blogic_notice(adapter,
+                                                             "CDB   ");
                                                for (i = 0; i < ccb->cdblen; 
i++)
-                                                       blogic_notice(" %02X", 
adapter, ccb->cdb[i]);
-                                               blogic_notice("\n", adapter);
-                                               blogic_notice("Sense ", 
adapter);
+                                                       blogic_cont(adapter,
+                                                                   " %02X",
+                                                                   
ccb->cdb[i]);
+                                               blogic_cont(adapter, "\n");
+                                               blogic_notice(adapter, "Sense 
");
                                                for (i = 0; i < 
ccb->sense_datalen; i++)
-                                                       blogic_notice(" %02X", 
adapter, command->sense_buffer[i]);
-                                               blogic_notice("\n", adapter);
+                                                       blogic_cont(adapter,
+                                                                   " %02X",
+                                                                   
command->sense_buffer[i]);
+                                               blogic_cont(adapter, "\n");
                                        }
                                }
                                break;
@@ -2925,7 +3030,8 @@ static irqreturn_t blogic_inthandler(int irq_ch, void 
*devid)
                                adapter->adapter_extreset = true;
                                break;
                        case FPOINT_INTERN_ERR:
-                               blogic_warn("Internal FlashPoint Error detected 
- Resetting Host Adapter\n", adapter);
+                               blogic_warn(adapter,
+                                           "Internal FlashPoint Error detected 
- Resetting Host Adapter\n");
                                adapter->adapter_intern_err = true;
                                break;
                        }
@@ -2939,12 +3045,16 @@ static irqreturn_t blogic_inthandler(int irq_ch, void 
*devid)
           Reset the Host Adapter if requested.
         */
        if (adapter->adapter_extreset) {
-               blogic_warn("Resetting %s due to External SCSI Bus Reset\n", 
adapter, adapter->full_model);
+               blogic_warn(adapter,
+                           "Resetting %s due to External SCSI Bus Reset\n",
+                           adapter->full_model);
                blogic_inc_count(&adapter->ext_resets);
                blogic_resetadapter(adapter, false);
                adapter->adapter_extreset = false;
        } else if (adapter->adapter_intern_err) {
-               blogic_warn("Resetting %s due to Host Adapter Internal 
Error\n", adapter, adapter->full_model);
+               blogic_warn(adapter,
+                           "Resetting %s due to Host Adapter Internal Error\n",
+                           adapter->full_model);
                blogic_inc_count(&adapter->adapter_intern_errors);
                blogic_resetadapter(adapter, true);
                adapter->adapter_intern_err = false;
@@ -3142,8 +3252,9 @@ static int blogic_qcmd_lck(struct scsi_cmnd *command,
                        && tgt_flags->tagq_ok &&
                        (adapter->tagq_ok & (1 << tgt_id))) {
                tgt_flags->tagq_active = true;
-               blogic_notice("Tagged Queuing now active for Target %d\n",
-                                       adapter, tgt_id);
+               blogic_notice(adapter,
+                             "Tagged Queuing now active for Target %d\n",
+                             tgt_id);
        }
        if (tgt_flags->tagq_active) {
                enum blogic_queuetag queuetag = BLOGIC_SIMPLETAG;
@@ -3184,8 +3295,8 @@ static int blogic_qcmd_lck(struct scsi_cmnd *command,
                                command->sense_buffer, ccb->sense_datalen,
                                DMA_FROM_DEVICE);
        if (dma_mapping_error(&adapter->pci_device->dev, sense_buf)) {
-               blogic_err("DMA mapping for sense data buffer failed\n",
-                               adapter);
+               blogic_err(adapter,
+                          "DMA mapping for sense data buffer failed\n");
                blogic_dealloc_ccb(ccb, 0);
                return SCSI_MLQUEUE_HOST_BUSY;
        }
@@ -3204,12 +3315,12 @@ static int blogic_qcmd_lck(struct scsi_cmnd *command,
                 */
                if (!blogic_write_outbox(adapter, BLOGIC_MBOX_START, ccb)) {
                        spin_unlock_irq(adapter->scsi_host->host_lock);
-                       blogic_warn("Unable to write Outgoing Mailbox - Pausing 
for 1 second\n", adapter);
+                       blogic_warn(adapter, "Unable to write Outgoing Mailbox 
- Pausing for 1 second\n");
                        blogic_delay(1);
                        spin_lock_irq(adapter->scsi_host->host_lock);
                        if (!blogic_write_outbox(adapter, BLOGIC_MBOX_START,
                                                ccb)) {
-                               blogic_warn("Still unable to write Outgoing 
Mailbox - Host Adapter Dead?\n", adapter);
+                               blogic_warn(adapter, "Still unable to write 
Outgoing Mailbox - Host Adapter Dead?\n");
                                blogic_dealloc_ccb(ccb, 1);
                                command->result = DID_ERROR << 16;
                                command->scsi_done(command);
@@ -3259,13 +3370,16 @@ static int blogic_abort(struct scsi_cmnd *command)
                if (ccb->command == command)
                        break;
        if (ccb == NULL) {
-               blogic_warn("Unable to Abort Command to Target %d - No CCB 
Found\n", adapter, tgt_id);
+               blogic_warn(adapter, "Unable to Abort Command to Target %d - No 
CCB Found\n",
+                           tgt_id);
                return SUCCESS;
        } else if (ccb->status == BLOGIC_CCB_COMPLETE) {
-               blogic_warn("Unable to Abort Command to Target %d - CCB 
Completed\n", adapter, tgt_id);
+               blogic_warn(adapter, "Unable to Abort Command to Target %d - 
CCB Completed\n",
+                           tgt_id);
                return SUCCESS;
        } else if (ccb->status == BLOGIC_CCB_RESET) {
-               blogic_warn("Unable to Abort Command to Target %d - CCB 
Reset\n", adapter, tgt_id);
+               blogic_warn(adapter, "Unable to Abort Command to Target %d - 
CCB Reset\n",
+                           tgt_id);
                return SUCCESS;
        }
        if (blogic_multimaster_type(adapter)) {
@@ -3283,16 +3397,18 @@ static int blogic_abort(struct scsi_cmnd *command)
                 */
                if (adapter->tgt_flags[tgt_id].tagq_active &&
                                adapter->fw_ver[0] < '5') {
-                       blogic_warn("Unable to Abort CCB #%ld to Target %d - 
Abort Tag Not Supported\n", adapter, ccb->serial, tgt_id);
+                       blogic_warn(adapter, "Unable to Abort CCB #%ld to 
Target %d - Abort Tag Not Supported\n",
+                                   ccb->serial, tgt_id);
                        return FAILURE;
                } else if (blogic_write_outbox(adapter, BLOGIC_MBOX_ABORT,
                                        ccb)) {
-                       blogic_warn("Aborting CCB #%ld to Target %d\n",
-                                       adapter, ccb->serial, tgt_id);
+                       blogic_warn(adapter, "Aborting CCB #%ld to Target %d\n",
+                                   ccb->serial, tgt_id);
                        
blogic_inc_count(&adapter->tgt_stats[tgt_id].aborts_tried);
                        return SUCCESS;
                } else {
-                       blogic_warn("Unable to Abort CCB #%ld to Target %d - No 
Outgoing Mailboxes\n", adapter, ccb->serial, tgt_id);
+                       blogic_warn(adapter, "Unable to Abort CCB #%ld to 
Target %d - No Outgoing Mailboxes\n",
+                                   ccb->serial, tgt_id);
                        return FAILURE;
                }
        } else {
@@ -3300,8 +3416,8 @@ static int blogic_abort(struct scsi_cmnd *command)
                   Call the FlashPoint SCCB Manager to abort execution of
                   the CCB.
                 */
-               blogic_warn("Aborting CCB #%ld to Target %d\n", adapter,
-                               ccb->serial, tgt_id);
+               blogic_warn(adapter, "Aborting CCB #%ld to Target %d\n",
+                           ccb->serial, tgt_id);
                blogic_inc_count(&adapter->tgt_stats[tgt_id].aborts_tried);
                FlashPoint_AbortCCB(adapter->cardhandle, ccb);
                /*
@@ -3333,8 +3449,8 @@ static int blogic_resetadapter(struct blogic_adapter 
*adapter, bool hard_reset)
 
        if (!(blogic_hwreset(adapter, hard_reset) &&
                                blogic_initadapter(adapter))) {
-               blogic_err("Resetting %s Failed\n", adapter,
-                                               adapter->full_model);
+               blogic_err(adapter, "Resetting %s Failed\n",
+                          adapter->full_model);
                return FAILURE;
        }
 
@@ -3443,10 +3559,15 @@ static int blogic_diskparam(struct scsi_device *sdev, 
struct block_device *dev,
                diskparam->cylinders = (unsigned long) capacity / 
(diskparam->heads * diskparam->sectors);
                if (part_no < 4 && part_end_sector == diskparam->sectors) {
                        if (diskparam->cylinders != saved_cyl)
-                               blogic_warn("Adopting Geometry %d/%d from 
Partition Table\n", adapter, diskparam->heads, diskparam->sectors);
+                               blogic_warn(adapter,
+                                           "Adopting Geometry %d/%d from 
Partition Table\n",
+                                           diskparam->heads,
+                                           diskparam->sectors);
                } else if (part_end_head > 0 || part_end_sector > 0) {
-                       blogic_warn("Warning: Partition Table appears to have 
Geometry %d/%d which is\n", adapter, part_end_head + 1, part_end_sector);
-                       blogic_warn("not compatible with current BusLogic Host 
Adapter Geometry %d/%d\n", adapter, diskparam->heads, diskparam->sectors);
+                       blogic_warn(adapter,
+                                   "Warning: Partition Table appears to have 
Geometry %d/%d which is not compatible with current BusLogic Host Adapter 
Geometry %d/%d\n",
+                                   part_end_head + 1, part_end_sector,
+                                   diskparam->heads, diskparam->sectors);
                }
        }
        kfree(buf);
@@ -3571,6 +3692,7 @@ Target    Requested Completed  Requested Completed  
Requested Completed\n\
        }
        seq_printf(m, "\nExternal Host Adapter Resets: %d\n", 
adapter->ext_resets);
        seq_printf(m, "Host Adapter Internal Errors: %d\n", 
adapter->adapter_intern_errors);
+
        return 0;
 }
 
@@ -3579,41 +3701,51 @@ Target  Requested Completed  Requested Completed  
Requested Completed\n\
   blogic_msg prints Driver Messages.
 */
 
-static void blogic_msg(enum blogic_msglevel msglevel, char *fmt,
-                       struct blogic_adapter *adapter, ...)
+static void blogic_msg(enum blogic_msglevel msglevel,
+                      struct blogic_adapter *adapter, const char *fmt, ...)
 {
        static char buf[BLOGIC_LINEBUF_SIZE];
-       static bool begin = true;
        va_list args;
        int len = 0;
+       const char *kern_level = blogic_msglevelmap[msglevel];
 
-       va_start(args, adapter);
-       len = vsprintf(buf, fmt, args);
+       va_start(args, fmt);
+       len = vscnprintf(buf, sizeof(buf), fmt, args);
        va_end(args);
-       if (msglevel == BLOGIC_ANNOUNCE_LEVEL) {
+
+       switch (msglevel) {
+       case BLOGIC_ANNOUNCE_LEVEL: {
                static int msglines = 0;
+
                strcpy(&adapter->msgbuf[adapter->msgbuflen], buf);
                adapter->msgbuflen += len;
                if (++msglines <= 2)
-                       printk("%sscsi: %s", blogic_msglevelmap[msglevel], buf);
-       } else if (msglevel == BLOGIC_INFO_LEVEL) {
+                       printk("%sscsi: %s", kern_level, buf);
+               break;
+       }
+
+       case BLOGIC_INFO_LEVEL:
                strcpy(&adapter->msgbuf[adapter->msgbuflen], buf);
                adapter->msgbuflen += len;
-               if (begin) {
-                       if (buf[0] != '\n' || len > 1)
-                               printk("%sscsi%d: %s", 
blogic_msglevelmap[msglevel], adapter->host_no, buf);
-               } else
-                       printk("%s", buf);
-       } else {
-               if (begin) {
-                       if (adapter != NULL && adapter->adapter_initd)
-                               printk("%sscsi%d: %s", 
blogic_msglevelmap[msglevel], adapter->host_no, buf);
-                       else
-                               printk("%s%s", blogic_msglevelmap[msglevel], 
buf);
-               } else
-                       printk("%s", buf);
+               if (buf[0] != '\n' || len > 1)
+                       printk("%sscsi%d: %s",
+                              kern_level, adapter->host_no, buf);
+               break;
+
+       case BLOGIC_CONT_LEVEL:
+               strcpy(&adapter->msgbuf[adapter->msgbuflen], buf);
+               adapter->msgbuflen += len;
+               printk("%s%s", kern_level, buf);
+               break;
+
+       default:
+               if (adapter && adapter->adapter_initd)
+                       printk("%sscsi%d: %s",
+                              kern_level, adapter->host_no, buf);
+               else
+                       printk("%s%s", kern_level, buf);
+               break;
        }
-       begin = (buf[len - 1] == '\n');
 }
 
 
@@ -3691,7 +3823,9 @@ static int __init blogic_parseopts(char *options)
                                        blogic_probe_options.probe134 = true;
                                        break;
                                default:
-                                       blogic_err("BusLogic: Invalid Driver 
Options (invalid I/O Address 0x%lX)\n", NULL, io_addr);
+                                       blogic_err(NULL,
+                                                  "BusLogic: Invalid Driver 
Options (invalid I/O Address 0x%lX)\n",
+                                                  io_addr);
                                        return 0;
                                }
                        } else if (blogic_parse(&options, "NoProbeISA"))
@@ -3712,7 +3846,9 @@ static int __init blogic_parseopts(char *options)
                                for (tgt_id = 0; tgt_id < BLOGIC_MAXDEV; 
tgt_id++) {
                                        unsigned short qdepth = 
simple_strtoul(options, &options, 0);
                                        if (qdepth > BLOGIC_MAX_TAG_DEPTH) {
-                                               blogic_err("BusLogic: Invalid 
Driver Options (invalid Queue Depth %d)\n", NULL, qdepth);
+                                               blogic_err(NULL,
+                                                          "BusLogic: Invalid 
Driver Options (invalid Queue Depth %d)\n",
+                                                          qdepth);
                                                return 0;
                                        }
                                        drvr_opts->qdepth[tgt_id] = qdepth;
@@ -3721,12 +3857,16 @@ static int __init blogic_parseopts(char *options)
                                        else if (*options == ']')
                                                break;
                                        else {
-                                               blogic_err("BusLogic: Invalid 
Driver Options (',' or ']' expected at '%s')\n", NULL, options);
+                                               blogic_err(NULL,
+                                                          "BusLogic: Invalid 
Driver Options (',' or ']' expected at '%s')\n",
+                                                          options);
                                                return 0;
                                        }
                                }
                                if (*options != ']') {
-                                       blogic_err("BusLogic: Invalid Driver 
Options (']' expected at '%s')\n", NULL, options);
+                                       blogic_err(NULL,
+                                                  "BusLogic: Invalid Driver 
Options (']' expected at '%s')\n",
+                                                  options);
                                        return 0;
                                } else
                                        options++;
@@ -3734,7 +3874,9 @@ static int __init blogic_parseopts(char *options)
                                unsigned short qdepth = simple_strtoul(options, 
&options, 0);
                                if (qdepth == 0 ||
                                                qdepth > BLOGIC_MAX_TAG_DEPTH) {
-                                       blogic_err("BusLogic: Invalid Driver 
Options (invalid Queue Depth %d)\n", NULL, qdepth);
+                                       blogic_err(NULL,
+                                                  "BusLogic: Invalid Driver 
Options (invalid Queue Depth %d)\n",
+                                                  qdepth);
                                        return 0;
                                }
                                drvr_opts->common_qdepth = qdepth;
@@ -3780,7 +3922,9 @@ static int __init blogic_parseopts(char *options)
                                unsigned short bus_settle_time =
                                        simple_strtoul(options, &options, 0);
                                if (bus_settle_time > 5 * 60) {
-                                       blogic_err("BusLogic: Invalid Driver 
Options (invalid Bus Settle Time %d)\n", NULL, bus_settle_time);
+                                       blogic_err(NULL,
+                                                  "BusLogic: Invalid Driver 
Options (invalid Bus Settle Time %d)\n",
+                                                  bus_settle_time);
                                        return 0;
                                }
                                drvr_opts->bus_settle_time = bus_settle_time;
@@ -3805,14 +3949,17 @@ static int __init blogic_parseopts(char *options)
                        if (*options == ',')
                                options++;
                        else if (*options != ';' && *options != '\0') {
-                               blogic_err("BusLogic: Unexpected Driver Option 
'%s' ignored\n", NULL, options);
+                               blogic_err(NULL,
+                                          "BusLogic: Unexpected Driver Option 
'%s' ignored\n",
+                                          options);
                                *options = '\0';
                        }
                }
                if (!(blogic_drvr_options_count == 0 ||
                        blogic_probeinfo_count == 0 ||
                        blogic_drvr_options_count == blogic_probeinfo_count)) {
-                       blogic_err("BusLogic: Invalid Driver Options (all or no 
I/O Addresses must be specified)\n", NULL);
+                       blogic_err(NULL,
+                                  "BusLogic: Invalid Driver Options (all or no 
I/O Addresses must be specified)\n");
                        return 0;
                }
                /*
@@ -3866,7 +4013,8 @@ static int __init blogic_setup(char *str)
        (void) get_options(str, ARRAY_SIZE(ints), ints);
 
        if (ints[0] != 0) {
-               blogic_err("BusLogic: Obsolete Command Line Entry Format 
Ignored\n", NULL);
+               blogic_err(NULL,
+                          "BusLogic: Obsolete Command Line Entry Format 
Ignored\n");
                return 0;
        }
        if (str == NULL || *str == '\0')
diff --git a/drivers/scsi/BusLogic.h b/drivers/scsi/BusLogic.h
index 6182cc8a0344..42333fba6005 100644
--- a/drivers/scsi/BusLogic.h
+++ b/drivers/scsi/BusLogic.h
@@ -108,30 +108,34 @@ enum blogic_msglevel {
        BLOGIC_INFO_LEVEL = 1,
        BLOGIC_NOTICE_LEVEL = 2,
        BLOGIC_WARN_LEVEL = 3,
-       BLOGIC_ERR_LEVEL = 4
+       BLOGIC_ERR_LEVEL = 4,
+       BLOGIC_CONT_LEVEL = 5,
 };
 
-static char *blogic_msglevelmap[] = { KERN_NOTICE, KERN_NOTICE, KERN_NOTICE, 
KERN_WARNING, KERN_ERR };
+static char *blogic_msglevelmap[] = { KERN_NOTICE, KERN_NOTICE, KERN_NOTICE, 
KERN_WARNING, KERN_ERR, KERN_CONT };
 
 
 /*
   Define Driver Message macros.
 */
 
-#define blogic_announce(format, args...) \
-       blogic_msg(BLOGIC_ANNOUNCE_LEVEL, format, ##args)
+#define blogic_announce(adapter, fmt, ...)                             \
+       blogic_msg(BLOGIC_ANNOUNCE_LEVEL, adapter, fmt, ##__VA_ARGS__)
 
-#define blogic_info(format, args...) \
-       blogic_msg(BLOGIC_INFO_LEVEL, format, ##args)
+#define blogic_cont(adapter, fmt, ...)                                 \
+       blogic_msg(BLOGIC_CONT_LEVEL, adapter, fmt, ##__VA_ARGS__)
 
-#define blogic_notice(format, args...) \
-       blogic_msg(BLOGIC_NOTICE_LEVEL, format, ##args)
+#define blogic_info(adapter, fmt, ...)                                 \
+       blogic_msg(BLOGIC_INFO_LEVEL, adapter, fmt, ##__VA_ARGS__)
 
-#define blogic_warn(format, args...) \
-       blogic_msg(BLOGIC_WARN_LEVEL, format, ##args)
+#define blogic_notice(adapter, fmt, ...)                               \
+       blogic_msg(BLOGIC_NOTICE_LEVEL, adapter, fmt, ##__VA_ARGS__)
 
-#define blogic_err(format, args...) \
-       blogic_msg(BLOGIC_ERR_LEVEL, format, ##args)
+#define blogic_warn(adapter, fmt, ...)                                 \
+       blogic_msg(BLOGIC_WARN_LEVEL, adapter, fmt, ##__VA_ARGS__)
+
+#define blogic_err(adapter, fmt, ...)                                  \
+       blogic_msg(BLOGIC_ERR_LEVEL, adapter, fmt, ##__VA_ARGS__)
 
 
 /*
@@ -1289,7 +1293,9 @@ static int blogic_slaveconfig(struct scsi_device *);
 static void blogic_qcompleted_ccb(struct blogic_ccb *);
 static irqreturn_t blogic_inthandler(int, void *);
 static int blogic_resetadapter(struct blogic_adapter *, bool hard_reset);
-static void blogic_msg(enum blogic_msglevel, char *, struct blogic_adapter *, 
...);
+__printf(3, 4)
+static void blogic_msg(enum blogic_msglevel, struct blogic_adapter *adapter,
+                      const char *fmt, ...);
 static int __init blogic_setup(char *);
 
 #endif                         /* _BUSLOGIC_H */

Reply via email to