[<prev] [next>] [day] [month] [year] [list]
Message-ID: <1321683755.18250.6.camel@Joe-Laptop>
Date: Fri, 18 Nov 2011 22:22:35 -0800
From: Joe Perches <joe@...ches.com>
To: Adam Radford <linuxraid@....com>
Cc: linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org,
"James E.J. Bottomley" <JBottomley@...allels.com>
Subject: [PATCH] 3ware: Reduce object size by centralizing printks
Reduced object size of 15-20% is good.
Convert TW_PRINTK macros to functions.
Convert printks to pr_<level>.
Align arguments.
$ size drivers/scsi/3w-*.o*
text data bss dec hex filename
30993 2172 5320 38485 9655 drivers/scsi/3w-9xxx.o.new
35424 2172 6024 43620 aa64 drivers/scsi/3w-9xxx.o.old
21437 696 4352 26485 6775 drivers/scsi/3w-sas.o.new
24974 696 4928 30598 7786 drivers/scsi/3w-sas.o.old
Signed-off-by: Joe Perches <joe@...ches.com>
---
drivers/scsi/3w-9xxx.c | 232 +++++++++++++++++++++++++++++------------------
drivers/scsi/3w-9xxx.h | 9 +--
drivers/scsi/3w-sas.c | 192 +++++++++++++++++++++++++---------------
drivers/scsi/3w-sas.h | 6 --
4 files changed, 265 insertions(+), 174 deletions(-)
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index 3868ab2..3663626 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -81,6 +81,8 @@
2.26.02.014 - Force 60 second timeout default.
*/
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
#include <linux/module.h>
#include <linux/reboot.h>
#include <linux/spinlock.h>
@@ -153,6 +155,17 @@ static void twa_unmap_scsi_data(TW_Device_Extension *tw_dev, int request_id);
/* Functions */
+static void twa_msg(const struct Scsi_Host *host, int err1, int err2,
+ const char *desc)
+{
+ if (host)
+ pr_warn("scsi%d: ERROR: (0x%02X:0x%04X): %s\n",
+ host->host_no, err1, err2, desc);
+ else
+ pr_warn("ERROR: (0x%02X:0x%04X): %s\n",
+ err1, err2, desc);
+}
+
/* Show some statistics about the card */
static ssize_t twa_show_stats(struct device *dev,
struct device_attribute *attr, char *buf)
@@ -311,7 +324,8 @@ static int twa_aen_drain_queue(TW_Device_Extension *tw_dev, int no_check_reset)
sglist[0].address = tw_dev->generic_buffer_phys[request_id];
if (sglist[0].address & TW_ALIGNMENT_9000_SGL) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1, "Found unaligned address during AEN drain");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1,
+ "Found unaligned address during AEN drain");
goto out;
}
@@ -321,13 +335,15 @@ static int twa_aen_drain_queue(TW_Device_Extension *tw_dev, int no_check_reset)
do {
/* Send command to the board */
if (twa_scsiop_execute_scsi(tw_dev, request_id, cdb, 1, sglist)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2, "Error posting request sense");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x2,
+ "Error posting request sense");
goto out;
}
/* Now poll for completion */
if (twa_poll_response(tw_dev, request_id, 30)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x3, "No valid response while draining AEN queue");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x3,
+ "No valid response while draining AEN queue");
tw_dev->posted_request_count--;
goto out;
}
@@ -413,12 +429,12 @@ static void twa_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_H
event->parameter_len = strlen(header->err_specific_desc);
memcpy(event->parameter_data, header->err_specific_desc, event->parameter_len + (error_str[0] == '\0' ? 0 : (1 + strlen(error_str))));
if (event->severity != TW_AEN_SEVERITY_DEBUG)
- printk(KERN_WARNING "3w-9xxx:%s AEN: %s (0x%02X:0x%04X): %s:%s.\n",
- host,
- twa_aen_severity_lookup(TW_SEV_OUT(header->status_block.severity__reserved)),
- TW_MESSAGE_SOURCE_CONTROLLER_EVENT, aen,
- error_str[0] == '\0' ? twa_string_lookup(twa_aen_table, aen) : error_str,
- header->err_specific_desc);
+ pr_warn("%s AEN: %s (0x%02X:0x%04X): %s:%s\n",
+ host,
+ twa_aen_severity_lookup(TW_SEV_OUT(header->status_block.severity__reserved)),
+ TW_MESSAGE_SOURCE_CONTROLLER_EVENT, aen,
+ error_str[0] == '\0' ? twa_string_lookup(twa_aen_table, aen) : error_str,
+ header->err_specific_desc);
else
tw_dev->aen_count--;
@@ -453,7 +469,8 @@ static int twa_aen_read_queue(TW_Device_Extension *tw_dev, int request_id)
/* Now post the command packet */
if (twa_scsiop_execute_scsi(tw_dev, request_id, cdb, 1, sglist)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x4, "Post failed while reading AEN queue");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x4,
+ "Post failed while reading AEN queue");
goto out;
}
retval = 0;
@@ -529,12 +546,14 @@ static int twa_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
cpu_addr = pci_alloc_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, &dma_handle);
if (!cpu_addr) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x5,
+ "Memory allocation failed");
goto out;
}
if ((unsigned long)cpu_addr % (TW_ALIGNMENT_9000)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x6, "Failed to allocate correctly aligned memory");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x6,
+ "Failed to allocate correctly aligned memory");
pci_free_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, cpu_addr, dma_handle);
goto out;
}
@@ -587,7 +606,8 @@ static int twa_check_srl(TW_Device_Extension *tw_dev, int *flashed)
TW_CURRENT_DRIVER_BUILD, &fw_on_ctlr_srl,
&fw_on_ctlr_arch_id, &fw_on_ctlr_branch,
&fw_on_ctlr_build, &init_connect_result)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x7, "Initconnection failed while checking SRL");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x7,
+ "Initconnection failed while checking SRL");
goto out;
}
@@ -604,14 +624,17 @@ static int twa_check_srl(TW_Device_Extension *tw_dev, int *flashed)
&fw_on_ctlr_srl, &fw_on_ctlr_arch_id,
&fw_on_ctlr_branch, &fw_on_ctlr_build,
&init_connect_result)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xa, "Initconnection (base mode) failed while checking SRL");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xa,
+ "Initconnection (base mode) failed while checking SRL");
goto out;
}
if (!(init_connect_result & TW_CTLR_FW_COMPATIBLE)) {
if (TW_CURRENT_DRIVER_SRL > fw_on_ctlr_srl) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x32, "Firmware and driver incompatibility: please upgrade firmware");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x32,
+ "Firmware and driver incompatibility: please upgrade firmware");
} else {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x33, "Firmware and driver incompatibility: please upgrade driver");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x33,
+ "Firmware and driver incompatibility: please upgrade driver");
}
goto out;
}
@@ -724,9 +747,8 @@ static long twa_chrdev_ioctl(struct file *file, unsigned int cmd, unsigned long
/* We timed out, and didn't get an interrupt */
if (tw_dev->chrdev_request_id != TW_IOCTL_CHRDEV_FREE) {
/* Now we need to reset the board */
- printk(KERN_WARNING "3w-9xxx: scsi%d: WARNING: (0x%02X:0x%04X): Character ioctl (0x%x) timed out, resetting card.\n",
- tw_dev->host->host_no, TW_DRIVER, 0x37,
- cmd);
+ pr_warn("scsi%d: WARNING: (0x%02X:0x%04X): Character ioctl (0x%x) timed out, resetting card\n",
+ tw_dev->host->host_no, TW_DRIVER, 0x37, cmd);
retval = TW_IOCTL_ERROR_OS_EIO;
twa_reset_device_extension(tw_dev);
goto out3;
@@ -906,12 +928,13 @@ static int twa_decode_bits(TW_Device_Extension *tw_dev, u32 status_reg_value)
/* Check for various error conditions and handle them appropriately */
if (status_reg_value & TW_STATUS_PCI_PARITY_ERROR) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xc, "PCI Parity Error: clearing");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xc,
+ "PCI Parity Error: clearing");
writel(TW_CONTROL_CLEAR_PARITY_ERROR, TW_CONTROL_REG_ADDR(tw_dev));
}
if (status_reg_value & TW_STATUS_PCI_ABORT) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xd, "PCI Abort: clearing");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xd, "PCI Abort: clearing");
writel(TW_CONTROL_CLEAR_PCI_ABORT, TW_CONTROL_REG_ADDR(tw_dev));
pci_write_config_word(tw_dev->tw_pci_dev, PCI_STATUS, TW_PCI_CLEAR_PCI_ABORT);
}
@@ -920,13 +943,15 @@ static int twa_decode_bits(TW_Device_Extension *tw_dev, u32 status_reg_value)
if (((tw_dev->tw_pci_dev->device != PCI_DEVICE_ID_3WARE_9650SE) &&
(tw_dev->tw_pci_dev->device != PCI_DEVICE_ID_3WARE_9690SA)) ||
(!test_bit(TW_IN_RESET, &tw_dev->flags)))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xe, "Controller Queue Error: clearing");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xe,
+ "Controller Queue Error: clearing");
writel(TW_CONTROL_CLEAR_QUEUE_ERROR, TW_CONTROL_REG_ADDR(tw_dev));
}
if (status_reg_value & TW_STATUS_MICROCONTROLLER_ERROR) {
if (tw_dev->reset_print == 0) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x10, "Microcontroller Error: clearing");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x10,
+ "Microcontroller Error: clearing");
tw_dev->reset_print = 1;
}
goto out;
@@ -998,22 +1023,22 @@ static int twa_fill_sense(TW_Device_Extension *tw_dev, int request_id, int copy_
error = le16_to_cpu(full_command_packet->header.status_block.error);
if ((error != TW_ERROR_LOGICAL_UNIT_NOT_SUPPORTED) && (error != TW_ERROR_UNIT_OFFLINE)) {
if (print_host)
- printk(KERN_WARNING "3w-9xxx: scsi%d: ERROR: (0x%02X:0x%04X): %s:%s.\n",
- tw_dev->host->host_no,
- TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
- full_command_packet->header.status_block.error,
- error_str[0] == '\0' ?
- twa_string_lookup(twa_error_table,
- full_command_packet->header.status_block.error) : error_str,
- full_command_packet->header.err_specific_desc);
+ pr_warn("scsi%d: ERROR: (0x%02X:0x%04X): %s:%s\n",
+ tw_dev->host->host_no,
+ TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
+ full_command_packet->header.status_block.error,
+ error_str[0] == '\0' ?
+ twa_string_lookup(twa_error_table,
+ full_command_packet->header.status_block.error) : error_str,
+ full_command_packet->header.err_specific_desc);
else
- printk(KERN_WARNING "3w-9xxx: ERROR: (0x%02X:0x%04X): %s:%s.\n",
- TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
- full_command_packet->header.status_block.error,
- error_str[0] == '\0' ?
- twa_string_lookup(twa_error_table,
- full_command_packet->header.status_block.error) : error_str,
- full_command_packet->header.err_specific_desc);
+ pr_warn("ERROR: (0x%02X:0x%04X): %s:%s\n",
+ TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
+ full_command_packet->header.status_block.error,
+ error_str[0] == '\0' ?
+ twa_string_lookup(twa_error_table,
+ full_command_packet->header.status_block.error) : error_str,
+ full_command_packet->header.err_specific_desc);
}
if (copy_sense) {
@@ -1086,7 +1111,8 @@ static void *twa_get_param(TW_Device_Extension *tw_dev, int request_id, int tabl
/* Poll for completion */
if (twa_poll_response(tw_dev, request_id, 30))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x13, "No valid response during get param")
+ twa_msg(tw_dev->host, TW_DRIVER, 0x13,
+ "No valid response during get param");
else
retval = (void *)&(param->data[0]);
@@ -1150,7 +1176,8 @@ static int twa_initconnection(TW_Device_Extension *tw_dev, int message_credits,
/* Poll for completion */
if (twa_poll_response(tw_dev, request_id, 30)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x15, "No valid response during init connection");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x15,
+ "No valid response during init connection");
} else {
if (set_features & TW_EXTENDED_INIT_CONNECT) {
*fw_on_ctlr_srl = le16_to_cpu(tw_initconnect->fw_srl);
@@ -1175,20 +1202,23 @@ static int twa_initialize_device_extension(TW_Device_Extension *tw_dev)
/* Initialize command packet buffers */
if (twa_allocate_memory(tw_dev, sizeof(TW_Command_Full), 0)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x16, "Command packet memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x16,
+ "Command packet memory allocation failed");
goto out;
}
/* Initialize generic buffer */
if (twa_allocate_memory(tw_dev, TW_SECTOR_SIZE, 1)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x17, "Generic memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x17,
+ "Generic memory allocation failed");
goto out;
}
/* Allocate event info space */
tw_dev->event_queue[0] = kcalloc(TW_Q_LENGTH, sizeof(TW_Event), GFP_KERNEL);
if (!tw_dev->event_queue[0]) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x18, "Event info memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x18,
+ "Event info memory allocation failed");
goto out;
}
@@ -1274,7 +1304,8 @@ static irqreturn_t twa_interrupt(int irq, void *dev_instance)
while (tw_dev->pending_request_count > 0) {
request_id = tw_dev->pending_queue[tw_dev->pending_head];
if (tw_dev->state[request_id] != TW_S_PENDING) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x19, "Found request id that wasn't pending");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x19,
+ "Found request id that wasn't pending");
TW_CLEAR_ALL_INTERRUPTS(tw_dev);
goto twa_interrupt_bail;
}
@@ -1313,7 +1344,8 @@ static irqreturn_t twa_interrupt(int irq, void *dev_instance)
/* Check for correct state */
if (tw_dev->state[request_id] != TW_S_POSTED) {
if (tw_dev->srb[request_id] != NULL) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1a, "Received a request id that wasn't posted");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1a,
+ "Received a request id that wasn't posted");
TW_CLEAR_ALL_INTERRUPTS(tw_dev);
goto twa_interrupt_bail;
}
@@ -1323,7 +1355,8 @@ static irqreturn_t twa_interrupt(int irq, void *dev_instance)
if (tw_dev->srb[request_id] == NULL) {
if (request_id != tw_dev->chrdev_request_id) {
if (twa_aen_complete(tw_dev, request_id))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1b, "Error completing AEN during attention interrupt");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1b,
+ "Error completing AEN during attention interrupt");
} else {
tw_dev->chrdev_request_id = TW_IOCTL_CHRDEV_FREE;
wake_up(&tw_dev->ioctl_wqueue);
@@ -1424,7 +1457,8 @@ static int twa_map_scsi_sg_data(TW_Device_Extension *tw_dev, int request_id)
if (!use_sg)
return 0;
else if (use_sg < 0) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1c, "Failed to map scatter gather list");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1c,
+ "Failed to map scatter gather list");
return 0;
}
@@ -1445,7 +1479,8 @@ static int twa_poll_response(TW_Device_Extension *tw_dev, int request_id, int se
response_queue.value = readl(TW_RESPONSE_QUEUE_REG_ADDR(tw_dev));
response_request_id = TW_RESID_OUT(response_queue.response_id);
if (request_id != response_request_id) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1e, "Found unexpected request id while polling for response");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1e,
+ "Found unexpected request id while polling for response");
goto out;
}
if (TW_OP_OUT(full_command_packet->command.newcommand.opcode__reserved) == TW_OP_EXECUTE_SCSI) {
@@ -1656,7 +1691,8 @@ static int twa_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
TW_SOFT_RESET(tw_dev);
/* Clear pchip/response queue on 9550SX */
if (twa_empty_response_queue_large(tw_dev)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x36, "Response queue (large) empty failed during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x36,
+ "Response queue (large) empty failed during reset sequence");
do_soft_reset = 1;
tries++;
continue;
@@ -1665,7 +1701,8 @@ static int twa_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Make sure controller is in a good state */
if (twa_poll_status(tw_dev, TW_STATUS_MICROCONTROLLER_READY | (do_soft_reset == 1 ? TW_STATUS_ATTENTION_INTERRUPT : 0), 60)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1f, "Microcontroller not ready during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1f,
+ "Microcontroller not ready during reset sequence");
do_soft_reset = 1;
tries++;
continue;
@@ -1673,7 +1710,8 @@ static int twa_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Empty response queue */
if (twa_empty_response_queue(tw_dev)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x20, "Response queue empty failed during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x20,
+ "Response queue empty failed during reset sequence");
do_soft_reset = 1;
tries++;
continue;
@@ -1683,7 +1721,8 @@ static int twa_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Check for compatibility/flash */
if (twa_check_srl(tw_dev, &flashed)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x21, "Compatibility check failed during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x21,
+ "Compatibility check failed during reset sequence");
do_soft_reset = 1;
tries++;
continue;
@@ -1696,7 +1735,8 @@ static int twa_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Drain the AEN queue */
if (twa_aen_drain_queue(tw_dev, soft_reset)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x22, "AEN drain failed during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x22,
+ "AEN drain failed during reset sequence");
do_soft_reset = 1;
tries++;
continue;
@@ -1746,15 +1786,16 @@ static int twa_scsi_eh_reset(struct scsi_cmnd *SCpnt)
tw_dev->num_resets++;
sdev_printk(KERN_WARNING, SCpnt->device,
- "WARNING: (0x%02X:0x%04X): Command (0x%x) timed out, resetting card.\n",
- TW_DRIVER, 0x2c, SCpnt->cmnd[0]);
+ "WARNING: (0x%02X:0x%04X): Command (0x%x) timed out, resetting card\n",
+ TW_DRIVER, 0x2c, SCpnt->cmnd[0]);
/* Make sure we are not issuing an ioctl or resetting from ioctl */
mutex_lock(&tw_dev->ioctl_lock);
/* Now reset the card and some of the device extension data */
if (twa_reset_device_extension(tw_dev)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2b, "Controller reset failed during scsi host reset");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x2b,
+ "Controller reset failed during scsi host reset");
goto out;
}
@@ -1883,7 +1924,8 @@ static int twa_scsiop_execute_scsi(TW_Device_Extension *tw_dev, int request_id,
command_packet->sg_list[i].address = TW_CPU_TO_SGL(sg_dma_address(sg));
command_packet->sg_list[i].length = cpu_to_le32(sg_dma_len(sg));
if (command_packet->sg_list[i].address & TW_CPU_TO_SGL(TW_ALIGNMENT_9000_SGL)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2e, "Found unaligned sgl address during execute scsi");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x2e,
+ "Found unaligned sgl address during execute scsi");
goto out;
}
}
@@ -1896,7 +1938,8 @@ static int twa_scsiop_execute_scsi(TW_Device_Extension *tw_dev, int request_id,
command_packet->sg_list[i].address = TW_CPU_TO_SGL(sglistarg[i].address);
command_packet->sg_list[i].length = cpu_to_le32(sglistarg[i].length);
if (command_packet->sg_list[i].address & TW_CPU_TO_SGL(TW_ALIGNMENT_9000_SGL)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2f, "Found unaligned sgl address during internal post");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x2f,
+ "Found unaligned sgl address during internal post");
goto out;
}
}
@@ -1959,13 +2002,14 @@ static void __twa_shutdown(TW_Device_Extension *tw_dev)
/* Free up the IRQ */
free_irq(tw_dev->tw_pci_dev->irq, tw_dev);
- printk(KERN_WARNING "3w-9xxx: Shutting down host %d.\n", tw_dev->host->host_no);
+ pr_warn("Shutting down host %d\n", tw_dev->host->host_no);
/* Tell the card we are shutting down */
if (twa_initconnection(tw_dev, 1, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x31, "Connection shutdown failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x31,
+ "Connection shutdown failed");
} else {
- printk(KERN_WARNING "3w-9xxx: Shutdown complete.\n");
+ pr_warn("Shutdown complete\n");
}
/* Clear all interrupts just before exit */
@@ -2038,7 +2082,7 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
retval = pci_enable_device(pdev);
if (retval) {
- TW_PRINTK(host, TW_DRIVER, 0x34, "Failed to enable pci device");
+ twa_msg(host, TW_DRIVER, 0x34, "Failed to enable pci device");
goto out_disable_device;
}
@@ -2049,14 +2093,16 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
- TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask");
+ twa_msg(host, TW_DRIVER, 0x23,
+ "Failed to set dma mask");
retval = -ENODEV;
goto out_disable_device;
}
host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
if (!host) {
- TW_PRINTK(host, TW_DRIVER, 0x24, "Failed to allocate memory for device extension");
+ twa_msg(host, TW_DRIVER, 0x24,
+ "Failed to allocate memory for device extension");
retval = -ENOMEM;
goto out_disable_device;
}
@@ -2067,14 +2113,16 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
tw_dev->tw_pci_dev = pdev;
if (twa_initialize_device_extension(tw_dev)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x25, "Failed to initialize device extension");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x25,
+ "Failed to initialize device extension");
goto out_free_device_extension;
}
/* Request IO regions */
retval = pci_request_regions(pdev, "3w-9xxx");
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x26, "Failed to get mem region");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x26,
+ "Failed to get mem region");
goto out_free_device_extension;
}
@@ -2089,7 +2137,7 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
/* Save base address */
tw_dev->base_addr = ioremap(mem_addr, mem_len);
if (!tw_dev->base_addr) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x35, "Failed to ioremap");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x35, "Failed to ioremap");
goto out_release_mem_region;
}
@@ -2116,22 +2164,22 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
/* Register the card with the kernel SCSI layer */
retval = scsi_add_host(host, &pdev->dev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x27, "scsi add host failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x27, "scsi add host failed");
goto out_iounmap;
}
pci_set_drvdata(pdev, host);
- printk(KERN_WARNING "3w-9xxx: scsi%d: Found a 3ware 9000 Storage Controller at 0x%lx, IRQ: %d.\n",
- host->host_no, mem_addr, pdev->irq);
- printk(KERN_WARNING "3w-9xxx: scsi%d: Firmware %s, BIOS %s, Ports: %d.\n",
- host->host_no,
- (char *)twa_get_param(tw_dev, 0, TW_VERSION_TABLE,
- TW_PARAM_FWVER, TW_PARAM_FWVER_LENGTH),
- (char *)twa_get_param(tw_dev, 1, TW_VERSION_TABLE,
- TW_PARAM_BIOSVER, TW_PARAM_BIOSVER_LENGTH),
- le32_to_cpu(*(int *)twa_get_param(tw_dev, 2, TW_INFORMATION_TABLE,
- TW_PARAM_PORTCOUNT, TW_PARAM_PORTCOUNT_LENGTH)));
+ pr_warn("scsi%d: Found a 3ware 9000 Storage Controller at 0x%lx, IRQ: %d\n",
+ host->host_no, mem_addr, pdev->irq);
+ pr_warn("scsi%d: Firmware %s, BIOS %s, Ports: %d.\n",
+ host->host_no,
+ (char *)twa_get_param(tw_dev, 0, TW_VERSION_TABLE,
+ TW_PARAM_FWVER, TW_PARAM_FWVER_LENGTH),
+ (char *)twa_get_param(tw_dev, 1, TW_VERSION_TABLE,
+ TW_PARAM_BIOSVER, TW_PARAM_BIOSVER_LENGTH),
+ le32_to_cpu(*(int *)twa_get_param(tw_dev, 2, TW_INFORMATION_TABLE,
+ TW_PARAM_PORTCOUNT, TW_PARAM_PORTCOUNT_LENGTH)));
/* Try to enable MSI */
if (use_msi && (pdev->device != PCI_DEVICE_ID_3WARE_9000) &&
@@ -2141,7 +2189,7 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
/* Now setup the interrupt handler */
retval = request_irq(pdev->irq, twa_interrupt, IRQF_SHARED, "3w-9xxx", tw_dev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x30, "Error requesting IRQ");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x30, "Error requesting IRQ");
goto out_remove_host;
}
@@ -2156,7 +2204,8 @@ static int __devinit twa_probe(struct pci_dev *pdev, const struct pci_device_id
if (twa_major == -1) {
if ((twa_major = register_chrdev (0, "twa", &twa_fops)) < 0)
- TW_PRINTK(host, TW_DRIVER, 0x29, "Failed to register character device");
+ twa_msg(host, TW_DRIVER, 0x29,
+ "Failed to register character device");
}
return 0;
@@ -2219,7 +2268,7 @@ static int twa_suspend(struct pci_dev *pdev, pm_message_t state)
struct Scsi_Host *host = pci_get_drvdata(pdev);
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
- printk(KERN_WARNING "3w-9xxx: Suspending host %d.\n", tw_dev->host->host_no);
+ pr_warn("Suspending host %d\n", tw_dev->host->host_no);
TW_DISABLE_INTERRUPTS(tw_dev);
free_irq(tw_dev->tw_pci_dev->irq, tw_dev);
@@ -2229,9 +2278,10 @@ static int twa_suspend(struct pci_dev *pdev, pm_message_t state)
/* Tell the card we are shutting down */
if (twa_initconnection(tw_dev, 1, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x38, "Connection shutdown failed during suspend");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x38,
+ "Connection shutdown failed during suspend");
} else {
- printk(KERN_WARNING "3w-9xxx: Suspend complete.\n");
+ pr_warn("Suspend complete\n");
}
TW_CLEAR_ALL_INTERRUPTS(tw_dev);
@@ -2249,14 +2299,15 @@ static int twa_resume(struct pci_dev *pdev)
struct Scsi_Host *host = pci_get_drvdata(pdev);
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
- printk(KERN_WARNING "3w-9xxx: Resuming host %d.\n", tw_dev->host->host_no);
+ pr_warn("Resuming host %d\n", tw_dev->host->host_no);
pci_set_power_state(pdev, PCI_D0);
pci_enable_wake(pdev, PCI_D0, 0);
pci_restore_state(pdev);
retval = pci_enable_device(pdev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x39, "Enable device failed during resume");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x39,
+ "Enable device failed during resume");
return retval;
}
@@ -2267,7 +2318,8 @@ static int twa_resume(struct pci_dev *pdev)
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
- TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume");
+ twa_msg(host, TW_DRIVER, 0x40,
+ "Failed to set dma mask during resume");
retval = -ENODEV;
goto out_disable_device;
}
@@ -2281,7 +2333,8 @@ static int twa_resume(struct pci_dev *pdev)
/* Now setup the interrupt handler */
retval = request_irq(pdev->irq, twa_interrupt, IRQF_SHARED, "3w-9xxx", tw_dev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x42, "Error requesting IRQ during resume");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x42,
+ "Error requesting IRQ during resume");
retval = -ENODEV;
goto out_disable_device;
}
@@ -2293,7 +2346,7 @@ static int twa_resume(struct pci_dev *pdev)
/* Re-enable interrupts on the card */
TW_ENABLE_AND_CLEAR_INTERRUPTS(tw_dev);
- printk(KERN_WARNING "3w-9xxx: Resume complete.\n");
+ pr_warn("Resume complete\n");
return 0;
out_disable_device:
@@ -2334,7 +2387,8 @@ static struct pci_driver twa_driver = {
/* This function is called on driver initialization */
static int __init twa_init(void)
{
- printk(KERN_WARNING "3ware 9000 Storage Controller device driver for Linux v%s.\n", TW_DRIVER_VERSION);
+ pr_warn("3ware 9000 Storage Controller device driver for Linux v%s\n",
+ TW_DRIVER_VERSION);
return pci_register_driver(&twa_driver);
} /* End twa_init() */
diff --git a/drivers/scsi/3w-9xxx.h b/drivers/scsi/3w-9xxx.h
index 040f721..44849b7 100644
--- a/drivers/scsi/3w-9xxx.h
+++ b/drivers/scsi/3w-9xxx.h
@@ -466,12 +466,9 @@ static twa_message_type twa_error_table[] = {
TW_CONTROL_MASK_RESPONSE_INTERRUPT | \
TW_CONTROL_CLEAR_ERROR_STATUS | \
TW_CONTROL_DISABLE_INTERRUPTS, TW_CONTROL_REG_ADDR(x)))
-#define TW_PRINTK(h,a,b,c) { \
-if (h) \
-printk(KERN_WARNING "3w-9xxx: scsi%d: ERROR: (0x%02X:0x%04X): %s.\n",h->host_no,a,b,c); \
-else \
-printk(KERN_WARNING "3w-9xxx: ERROR: (0x%02X:0x%04X): %s.\n",a,b,c); \
-}
+void TW9_PRINTK(const struct Scsi_Host *host, int err1, int err2,
+ const char *desc);
+
#define TW_MAX_LUNS(srl) (srl < TW_FW_SRL_LUNS_SUPPORTED ? 1 : 16)
#define TW_COMMAND_SIZE (sizeof(dma_addr_t) > 4 ? 5 : 4)
#define TW_APACHE_MAX_SGL_LENGTH (sizeof(dma_addr_t) > 4 ? 72 : 109)
diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c
index 13e39e1..fc16928 100644
--- a/drivers/scsi/3w-sas.c
+++ b/drivers/scsi/3w-sas.c
@@ -53,6 +53,8 @@
3.26.02.000 - Initial driver release.
*/
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
#include <linux/module.h>
#include <linux/reboot.h>
#include <linux/spinlock.h>
@@ -97,6 +99,17 @@ static int twl_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_res
/* Functions */
+static void twa_msg(const struct Scsi_Host *host, int err1, int err2,
+ const char *desc)
+{
+ if (host)
+ pr_warn("scsi%d: ERROR: (0x%02X:0x%04X): %s\n",
+ host->host_no, err1, err2, desc);
+ else
+ pr_warn("ERROR: (0x%02X:0x%04X): %s\n",
+ err1, err2, desc);
+}
+
/* This function returns AENs through sysfs */
static ssize_t twl_sysfs_aen_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr,
@@ -271,11 +284,11 @@ static void twl_aen_queue_event(TW_Device_Extension *tw_dev, TW_Command_Apache_H
event->parameter_len = strlen(header->err_specific_desc);
memcpy(event->parameter_data, header->err_specific_desc, event->parameter_len + 1 + strlen(error_str));
if (event->severity != TW_AEN_SEVERITY_DEBUG)
- printk(KERN_WARNING "3w-sas:%s AEN: %s (0x%02X:0x%04X): %s:%s.\n",
- host,
- twl_aen_severity_lookup(TW_SEV_OUT(header->status_block.severity__reserved)),
- TW_MESSAGE_SOURCE_CONTROLLER_EVENT, aen, error_str,
- header->err_specific_desc);
+ pr_warn("%s AEN: %s (0x%02X:0x%04X): %s:%s\n",
+ host,
+ twl_aen_severity_lookup(TW_SEV_OUT(header->status_block.severity__reserved)),
+ TW_MESSAGE_SOURCE_CONTROLLER_EVENT, aen, error_str,
+ header->err_specific_desc);
else
tw_dev->aen_count--;
@@ -313,7 +326,8 @@ static int twl_map_scsi_sg_data(TW_Device_Extension *tw_dev, int request_id)
if (!use_sg)
return 0;
else if (use_sg < 0) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1, "Failed to map scatter gather list");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1,
+ "Failed to map scatter gather list");
return 0;
}
@@ -432,7 +446,8 @@ static int twl_aen_read_queue(TW_Device_Extension *tw_dev, int request_id)
/* Now post the command packet */
if (twl_scsiop_execute_scsi(tw_dev, request_id, cdb, 1, sglist)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2, "Post failed while reading AEN queue");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x2,
+ "Post failed while reading AEN queue");
goto out;
}
retval = 0;
@@ -625,13 +640,15 @@ static int twl_aen_drain_queue(TW_Device_Extension *tw_dev, int no_check_reset)
do {
/* Send command to the board */
if (twl_scsiop_execute_scsi(tw_dev, request_id, cdb, 1, sglist)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x3, "Error posting request sense");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x3,
+ "Error posting request sense");
goto out;
}
/* Now poll for completion */
if (twl_poll_response(tw_dev, request_id, 30)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x4, "No valid response while draining AEN queue");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x4,
+ "No valid response while draining AEN queue");
tw_dev->posted_request_count--;
goto out;
}
@@ -685,7 +702,8 @@ static int twl_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
cpu_addr = pci_alloc_consistent(tw_dev->tw_pci_dev, size*TW_Q_LENGTH, &dma_handle);
if (!cpu_addr) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x5,
+ "Memory allocation failed");
goto out;
}
@@ -829,9 +847,8 @@ static long twl_chrdev_ioctl(struct file *file, unsigned int cmd, unsigned long
/* We timed out, and didn't get an interrupt */
if (tw_dev->chrdev_request_id != TW_IOCTL_CHRDEV_FREE) {
/* Now we need to reset the board */
- printk(KERN_WARNING "3w-sas: scsi%d: WARNING: (0x%02X:0x%04X): Character ioctl (0x%x) timed out, resetting card.\n",
- tw_dev->host->host_no, TW_DRIVER, 0x6,
- cmd);
+ pr_warn("scsi%d: WARNING: (0x%02X:0x%04X): Character ioctl (0x%x) timed out, resetting card\n",
+ tw_dev->host->host_no, TW_DRIVER, 0x6, cmd);
retval = -EIO;
twl_reset_device_extension(tw_dev, 1);
goto out3;
@@ -912,14 +929,14 @@ static int twl_fill_sense(TW_Device_Extension *tw_dev, int i, int request_id, in
error = le16_to_cpu(header->status_block.error);
if ((error != TW_ERROR_LOGICAL_UNIT_NOT_SUPPORTED) && (error != TW_ERROR_UNIT_OFFLINE) && (error != TW_ERROR_INVALID_FIELD_IN_CDB)) {
if (print_host)
- printk(KERN_WARNING "3w-sas: scsi%d: ERROR: (0x%02X:0x%04X): %s:%s.\n",
- tw_dev->host->host_no,
- TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
- header->status_block.error,
- error_str,
- header->err_specific_desc);
+ pr_warn("scsi%d: ERROR: (0x%02X:0x%04X): %s:%s\n",
+ tw_dev->host->host_no,
+ TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
+ header->status_block.error,
+ error_str,
+ header->err_specific_desc);
else
- printk(KERN_WARNING "3w-sas: ERROR: (0x%02X:0x%04X): %s:%s.\n",
+ pr_warn("ERROR: (0x%02X:0x%04X): %s:%s\n",
TW_MESSAGE_SOURCE_CONTROLLER_ERROR,
header->status_block.error,
error_str,
@@ -993,7 +1010,8 @@ static void *twl_get_param(TW_Device_Extension *tw_dev, int request_id, int tabl
/* Poll for completion */
if (twl_poll_response(tw_dev, request_id, 30))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x7, "No valid response during get param")
+ twa_msg(tw_dev->host, TW_DRIVER, 0x7,
+ "No valid response during get param");
else
retval = (void *)&(param->data[0]);
@@ -1049,7 +1067,8 @@ static int twl_initconnection(TW_Device_Extension *tw_dev, int message_credits,
/* Poll for completion */
if (twl_poll_response(tw_dev, request_id, 30)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x8, "No valid response during init connection");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x8,
+ "No valid response during init connection");
} else {
if (set_features & TW_EXTENDED_INIT_CONNECT) {
*fw_on_ctlr_srl = le16_to_cpu(tw_initconnect->fw_srl);
@@ -1074,26 +1093,30 @@ static int twl_initialize_device_extension(TW_Device_Extension *tw_dev)
/* Initialize command packet buffers */
if (twl_allocate_memory(tw_dev, sizeof(TW_Command_Full), 0)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x9, "Command packet memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x9,
+ "Command packet memory allocation failed");
goto out;
}
/* Initialize generic buffer */
if (twl_allocate_memory(tw_dev, TW_SECTOR_SIZE, 1)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xa, "Generic memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xa,
+ "Generic memory allocation failed");
goto out;
}
/* Allocate sense buffers */
if (twl_allocate_memory(tw_dev, sizeof(TW_Command_Apache_Header), 2)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xb, "Sense buffer allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xb,
+ "Sense buffer allocation failed");
goto out;
}
/* Allocate event info space */
tw_dev->event_queue[0] = kcalloc(TW_Q_LENGTH, sizeof(TW_Event), GFP_KERNEL);
if (!tw_dev->event_queue[0]) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xc, "Event info memory allocation failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xc,
+ "Event info memory allocation failed");
goto out;
}
@@ -1136,7 +1159,8 @@ static int twl_handle_attention_interrupt(TW_Device_Extension *tw_dev)
/* Check for controller errors */
if (doorbell & TWL_DOORBELL_CONTROLLER_ERROR) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xd, "Microcontroller Error: clearing");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xd,
+ "Microcontroller Error: clearing");
goto out;
}
@@ -1237,7 +1261,8 @@ static irqreturn_t twl_interrupt(int irq, void *dev_instance)
/* Check for correct state */
if (tw_dev->state[request_id] != TW_S_POSTED) {
if (tw_dev->srb[request_id] != NULL) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xe, "Received a request id that wasn't posted");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xe,
+ "Received a request id that wasn't posted");
TWL_MASK_INTERRUPTS(tw_dev);
goto twl_interrupt_bail;
}
@@ -1247,7 +1272,8 @@ static irqreturn_t twl_interrupt(int irq, void *dev_instance)
if (tw_dev->srb[request_id] == NULL) {
if (request_id != tw_dev->chrdev_request_id) {
if (twl_aen_complete(tw_dev, request_id))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0xf, "Error completing AEN during attention interrupt");
+ twa_msg(tw_dev->host, TW_DRIVER, 0xf,
+ "Error completing AEN during attention interrupt");
} else {
tw_dev->chrdev_request_id = TW_IOCTL_CHRDEV_FREE;
wake_up(&tw_dev->ioctl_wqueue);
@@ -1321,12 +1347,14 @@ static int twl_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Make sure controller is in a good state */
if (twl_poll_register(tw_dev, TWL_SCRPD3_REG_ADDR(tw_dev), TWL_CONTROLLER_READY, 0x0, 30)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x10, "Controller never went non-ready during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x10,
+ "Controller never went non-ready during reset sequence");
tries++;
continue;
}
if (twl_poll_register(tw_dev, TWL_SCRPD3_REG_ADDR(tw_dev), TWL_CONTROLLER_READY, TWL_CONTROLLER_READY, 60)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x11, "Controller not ready during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x11,
+ "Controller not ready during reset sequence");
tries++;
continue;
}
@@ -1339,7 +1367,8 @@ static int twl_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
TW_CURRENT_DRIVER_BUILD, &fw_on_ctlr_srl,
&fw_on_ctlr_arch_id, &fw_on_ctlr_branch,
&fw_on_ctlr_build, &init_connect_result)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x12, "Initconnection failed while checking SRL");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x12,
+ "Initconnection failed while checking SRL");
do_soft_reset = 1;
tries++;
continue;
@@ -1359,7 +1388,8 @@ static int twl_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Now check status */
status = readl(TWL_STATUS_REG_ADDR(tw_dev));
if (status) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x13, "Bad controller status after loading sense buffers");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x13,
+ "Bad controller status after loading sense buffers");
do_soft_reset = 1;
tries++;
continue;
@@ -1367,7 +1397,8 @@ static int twl_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
/* Drain the AEN queue */
if (twl_aen_drain_queue(tw_dev, soft_reset)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x14, "AEN drain failed during reset sequence");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x14,
+ "AEN drain failed during reset sequence");
do_soft_reset = 1;
tries++;
continue;
@@ -1482,15 +1513,16 @@ static int twl_scsi_eh_reset(struct scsi_cmnd *SCpnt)
tw_dev->num_resets++;
sdev_printk(KERN_WARNING, SCpnt->device,
- "WARNING: (0x%02X:0x%04X): Command (0x%x) timed out, resetting card.\n",
- TW_DRIVER, 0x2c, SCpnt->cmnd[0]);
+ "WARNING: (0x%02X:0x%04X): Command (0x%x) timed out, resetting card\n",
+ TW_DRIVER, 0x2c, SCpnt->cmnd[0]);
/* Make sure we are not issuing an ioctl or resetting from ioctl */
mutex_lock(&tw_dev->ioctl_lock);
/* Now reset the card and some of the device extension data */
if (twl_reset_device_extension(tw_dev, 0)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x15, "Controller reset failed during scsi host reset");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x15,
+ "Controller reset failed during scsi host reset");
goto out;
}
@@ -1547,13 +1579,14 @@ static void __twl_shutdown(TW_Device_Extension *tw_dev)
/* Free up the IRQ */
free_irq(tw_dev->tw_pci_dev->irq, tw_dev);
- printk(KERN_WARNING "3w-sas: Shutting down host %d.\n", tw_dev->host->host_no);
+ pr_warn("Shutting down host %d\n", tw_dev->host->host_no);
/* Tell the card we are shutting down */
if (twl_initconnection(tw_dev, 1, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x16, "Connection shutdown failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x16,
+ "Connection shutdown failed");
} else {
- printk(KERN_WARNING "3w-sas: Shutdown complete.\n");
+ pr_warn("Shutdown complete\n");
}
/* Clear doorbell interrupt just before exit */
@@ -1613,7 +1646,7 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
retval = pci_enable_device(pdev);
if (retval) {
- TW_PRINTK(host, TW_DRIVER, 0x17, "Failed to enable pci device");
+ twa_msg(host, TW_DRIVER, 0x17, "Failed to enable pci device");
goto out_disable_device;
}
@@ -1624,14 +1657,16 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
- TW_PRINTK(host, TW_DRIVER, 0x18, "Failed to set dma mask");
+ twa_msg(host, TW_DRIVER, 0x18,
+ "Failed to set dma mask");
retval = -ENODEV;
goto out_disable_device;
}
host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
if (!host) {
- TW_PRINTK(host, TW_DRIVER, 0x19, "Failed to allocate memory for device extension");
+ twa_msg(host, TW_DRIVER, 0x19,
+ "Failed to allocate memory for device extension");
retval = -ENOMEM;
goto out_disable_device;
}
@@ -1642,21 +1677,23 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
tw_dev->tw_pci_dev = pdev;
if (twl_initialize_device_extension(tw_dev)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1a, "Failed to initialize device extension");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1a,
+ "Failed to initialize device extension");
goto out_free_device_extension;
}
/* Request IO regions */
retval = pci_request_regions(pdev, "3w-sas");
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1b, "Failed to get mem region");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1b,
+ "Failed to get mem region");
goto out_free_device_extension;
}
/* Save base address, use region 1 */
tw_dev->base_addr = pci_iomap(pdev, 1, 0);
if (!tw_dev->base_addr) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1c, "Failed to ioremap");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1c, "Failed to ioremap");
goto out_release_mem_region;
}
@@ -1665,7 +1702,8 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
/* Initialize the card */
if (twl_reset_sequence(tw_dev, 0)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1d, "Controller reset failed during probe");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1d,
+ "Controller reset failed during probe");
goto out_iounmap;
}
@@ -1678,30 +1716,30 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
/* Register the card with the kernel SCSI layer */
retval = scsi_add_host(host, &pdev->dev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1e, "scsi add host failed");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1e, "scsi add host failed");
goto out_iounmap;
}
pci_set_drvdata(pdev, host);
- printk(KERN_WARNING "3w-sas: scsi%d: Found an LSI 3ware %s Controller at 0x%llx, IRQ: %d.\n",
- host->host_no,
- (char *)twl_get_param(tw_dev, 1, TW_VERSION_TABLE,
- TW_PARAM_MODEL, TW_PARAM_MODEL_LENGTH),
- (u64)pci_resource_start(pdev, 1), pdev->irq);
+ pr_warn("scsi%d: Found an LSI 3ware %s Controller at 0x%llx, IRQ: %d\n",
+ host->host_no,
+ (char *)twl_get_param(tw_dev, 1, TW_VERSION_TABLE,
+ TW_PARAM_MODEL, TW_PARAM_MODEL_LENGTH),
+ (u64)pci_resource_start(pdev, 1), pdev->irq);
ptr_phycount = twl_get_param(tw_dev, 2, TW_PARAM_PHY_SUMMARY_TABLE,
TW_PARAM_PHYCOUNT, TW_PARAM_PHYCOUNT_LENGTH);
if (ptr_phycount)
phycount = le32_to_cpu(*(int *)ptr_phycount);
- printk(KERN_WARNING "3w-sas: scsi%d: Firmware %s, BIOS %s, Phys: %d.\n",
- host->host_no,
- (char *)twl_get_param(tw_dev, 1, TW_VERSION_TABLE,
- TW_PARAM_FWVER, TW_PARAM_FWVER_LENGTH),
- (char *)twl_get_param(tw_dev, 2, TW_VERSION_TABLE,
- TW_PARAM_BIOSVER, TW_PARAM_BIOSVER_LENGTH),
- phycount);
+ pr_warn("scsi%d: Firmware %s, BIOS %s, Phys: %d\n",
+ host->host_no,
+ (char *)twl_get_param(tw_dev, 1, TW_VERSION_TABLE,
+ TW_PARAM_FWVER, TW_PARAM_FWVER_LENGTH),
+ (char *)twl_get_param(tw_dev, 2, TW_VERSION_TABLE,
+ TW_PARAM_BIOSVER, TW_PARAM_BIOSVER_LENGTH),
+ phycount);
/* Try to enable MSI */
if (use_msi && !pci_enable_msi(pdev))
@@ -1710,7 +1748,7 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
/* Now setup the interrupt handler */
retval = request_irq(pdev->irq, twl_interrupt, IRQF_SHARED, "3w-sas", tw_dev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1f, "Error requesting IRQ");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x1f, "Error requesting IRQ");
goto out_remove_host;
}
@@ -1725,13 +1763,16 @@ static int __devinit twl_probe(struct pci_dev *pdev, const struct pci_device_id
/* Add sysfs binary files */
if (sysfs_create_bin_file(&host->shost_dev.kobj, &twl_sysfs_aen_read_attr))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x20, "Failed to create sysfs binary file: 3ware_aen_read");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x20,
+ "Failed to create sysfs binary file: 3ware_aen_read");
if (sysfs_create_bin_file(&host->shost_dev.kobj, &twl_sysfs_compat_info_attr))
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x21, "Failed to create sysfs binary file: 3ware_compat_info");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x21,
+ "Failed to create sysfs binary file: 3ware_compat_info");
if (twl_major == -1) {
if ((twl_major = register_chrdev (0, "twl", &twl_fops)) < 0)
- TW_PRINTK(host, TW_DRIVER, 0x22, "Failed to register character device");
+ twa_msg(host, TW_DRIVER, 0x22,
+ "Failed to register character device");
}
tw_dev->online = 1;
return 0;
@@ -1807,7 +1848,7 @@ static int twl_suspend(struct pci_dev *pdev, pm_message_t state)
struct Scsi_Host *host = pci_get_drvdata(pdev);
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
- printk(KERN_WARNING "3w-sas: Suspending host %d.\n", tw_dev->host->host_no);
+ pr_warn("Suspending host %d\n", tw_dev->host->host_no);
/* Disable interrupts */
TWL_MASK_INTERRUPTS(tw_dev);
@@ -1815,9 +1856,10 @@ static int twl_suspend(struct pci_dev *pdev, pm_message_t state)
/* Tell the card we are shutting down */
if (twl_initconnection(tw_dev, 1, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL)) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x23, "Connection shutdown failed during suspend");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x23,
+ "Connection shutdown failed during suspend");
} else {
- printk(KERN_WARNING "3w-sas: Suspend complete.\n");
+ pr_warn("Suspend complete\n");
}
/* Clear doorbell interrupt */
@@ -1837,14 +1879,15 @@ static int twl_resume(struct pci_dev *pdev)
struct Scsi_Host *host = pci_get_drvdata(pdev);
TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata;
- printk(KERN_WARNING "3w-sas: Resuming host %d.\n", tw_dev->host->host_no);
+ pr_warn("Resuming host %d\n", tw_dev->host->host_no);
pci_set_power_state(pdev, PCI_D0);
pci_enable_wake(pdev, PCI_D0, 0);
pci_restore_state(pdev);
retval = pci_enable_device(pdev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x24, "Enable device failed during resume");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x24,
+ "Enable device failed during resume");
return retval;
}
@@ -1855,7 +1898,8 @@ static int twl_resume(struct pci_dev *pdev)
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
- TW_PRINTK(host, TW_DRIVER, 0x25, "Failed to set dma mask during resume");
+ twa_msg(host, TW_DRIVER, 0x25,
+ "Failed to set dma mask during resume");
retval = -ENODEV;
goto out_disable_device;
}
@@ -1869,7 +1913,8 @@ static int twl_resume(struct pci_dev *pdev)
/* Now setup the interrupt handler */
retval = request_irq(pdev->irq, twl_interrupt, IRQF_SHARED, "3w-sas", tw_dev);
if (retval) {
- TW_PRINTK(tw_dev->host, TW_DRIVER, 0x26, "Error requesting IRQ during resume");
+ twa_msg(tw_dev->host, TW_DRIVER, 0x26,
+ "Error requesting IRQ during resume");
retval = -ENODEV;
goto out_disable_device;
}
@@ -1881,7 +1926,7 @@ static int twl_resume(struct pci_dev *pdev)
/* Re-enable interrupts on the card */
TWL_UNMASK_INTERRUPTS(tw_dev);
- printk(KERN_WARNING "3w-sas: Resume complete.\n");
+ pr_warn("Resume complete\n");
return 0;
out_disable_device:
@@ -1915,7 +1960,8 @@ static struct pci_driver twl_driver = {
/* This function is called on driver initialization */
static int __init twl_init(void)
{
- printk(KERN_INFO "LSI 3ware SAS/SATA-RAID Controller device driver for Linux v%s.\n", TW_DRIVER_VERSION);
+ pr_info("LSI 3ware SAS/SATA-RAID Controller device driver for Linux v%s\n",
+ TW_DRIVER_VERSION);
return pci_register_driver(&twl_driver);
} /* End twl_init() */
diff --git a/drivers/scsi/3w-sas.h b/drivers/scsi/3w-sas.h
index d474892..d1a32fa 100644
--- a/drivers/scsi/3w-sas.h
+++ b/drivers/scsi/3w-sas.h
@@ -195,12 +195,6 @@ static char *twl_aen_severity_table[] =
#define TWL_SOFT_RESET(x) (writel(TWL_ISSUE_SOFT_RESET, TWL_HIBDB_REG_ADDR(tw_dev)))
/* Macros */
-#define TW_PRINTK(h,a,b,c) { \
-if (h) \
-printk(KERN_WARNING "3w-sas: scsi%d: ERROR: (0x%02X:0x%04X): %s.\n",h->host_no,a,b,c); \
-else \
-printk(KERN_WARNING "3w-sas: ERROR: (0x%02X:0x%04X): %s.\n",a,b,c); \
-}
#define TW_MAX_LUNS 16
#define TW_COMMAND_SIZE (sizeof(dma_addr_t) > 4 ? 6 : 4)
#define TW_LIBERATOR_MAX_SGL_LENGTH (sizeof(dma_addr_t) > 4 ? 46 : 92)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists