Reviewed-by: Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> On Wed, 3 Dec 2014, Rasmus Villemoes wrote: > Using seq_printf to print a simple string is a lot more expensive than > it needs to be, since seq_puts exists. Replace seq_printf with > seq_puts when possible. > > Signed-off-by: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> > --- > drivers/scsi/advansys.c | 155 +++++++++++++++++++++++------------------------- > 1 file changed, 75 insertions(+), 80 deletions(-) > > diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c > index 6719a33..d31fc6d 100644 > --- a/drivers/scsi/advansys.c > +++ b/drivers/scsi/advansys.c > @@ -2880,7 +2880,7 @@ static void asc_prt_board_devices(struct seq_file *m, struct Scsi_Host *shost) > chip_scsi_id = boardp->dvc_var.adv_dvc_var.chip_scsi_id; > } > > - seq_printf(m, "Target IDs Detected:"); > + seq_puts(m, "Target IDs Detected:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if (boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) > seq_printf(m, " %X,", i); > @@ -2896,18 +2896,18 @@ static void asc_prt_adv_bios(struct seq_file *m, struct Scsi_Host *shost) > struct asc_board *boardp = shost_priv(shost); > ushort major, minor, letter; > > - seq_printf(m, "\nROM BIOS Version: "); > + seq_puts(m, "\nROM BIOS Version: "); > > /* > * If the BIOS saved a valid signature, then fill in > * the BIOS code segment base address. > */ > if (boardp->bios_signature != 0x55AA) { > - seq_printf(m, "Disabled or Pre-3.1\n"); > - seq_printf(m, > - "BIOS either disabled or Pre-3.1. If it is pre-3.1, then a newer version\n"); > - seq_printf(m, > - "can be found at the ConnectCom FTP site: ftp://ftp.connectcom.net/pub\n"); > + seq_puts(m, "Disabled or Pre-3.1\n"); > + seq_puts(m, > + "BIOS either disabled or Pre-3.1. If it is pre-3.1, then a newer version\n"); > + seq_puts(m, > + "can be found at the ConnectCom FTP site: ftp://ftp.connectcom.net/pub\n"); > } else { > major = (boardp->bios_version >> 12) & 0xF; > minor = (boardp->bios_version >> 8) & 0xF; > @@ -2923,10 +2923,9 @@ static void asc_prt_adv_bios(struct seq_file *m, struct Scsi_Host *shost) > */ > if (major < 3 || (major <= 3 && minor < 1) || > (major <= 3 && minor <= 1 && letter < ('I' - 'A'))) { > - seq_printf(m, > - "Newer version of ROM BIOS is available at the ConnectCom FTP site:\n"); > - seq_printf(m, > - "ftp://ftp.connectcom.net/pub\n"); > + seq_puts(m, > + "Newer version of ROM BIOS is available at the ConnectCom FTP site:\n"); > + seq_puts(m, "ftp://ftp.connectcom.net/pub\n"); > } > } > } > @@ -3056,11 +3055,10 @@ static void asc_prt_asc_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > == ASC_TRUE) > seq_printf(m, " Serial Number: %s\n", serialstr); > else if (ep->adapter_info[5] == 0xBB) > - seq_printf(m, > - " Default Settings Used for EEPROM-less Adapter.\n"); > + seq_puts(m, > + " Default Settings Used for EEPROM-less Adapter.\n"); > else > - seq_printf(m, > - " Serial Number Signature Not Present.\n"); > + seq_puts(m, " Serial Number Signature Not Present.\n"); > > seq_printf(m, > " Host SCSI ID: %u, Host Queue Size: %u, Device Queue Size: %u\n", > @@ -3070,34 +3068,34 @@ static void asc_prt_asc_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > seq_printf(m, > " cntl 0x%x, no_scam 0x%x\n", ep->cntl, ep->no_scam); > > - seq_printf(m, " Target ID: "); > + seq_puts(m, " Target ID: "); > for (i = 0; i <= ASC_MAX_TID; i++) > seq_printf(m, " %d", i); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Disconnects: "); > + seq_puts(m, " Disconnects: "); > for (i = 0; i <= ASC_MAX_TID; i++) > seq_printf(m, " %c", > (ep->disc_enable & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Command Queuing: "); > + seq_puts(m, " Command Queuing: "); > for (i = 0; i <= ASC_MAX_TID; i++) > seq_printf(m, " %c", > (ep->use_cmd_qng & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Start Motor: "); > + seq_puts(m, " Start Motor: "); > for (i = 0; i <= ASC_MAX_TID; i++) > seq_printf(m, " %c", > (ep->start_motor & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Synchronous Transfer:"); > + seq_puts(m, " Synchronous Transfer:"); > for (i = 0; i <= ASC_MAX_TID; i++) > seq_printf(m, " %c", > (ep->init_sdtr & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > #ifdef CONFIG_ISA > if (asc_dvc_varp->bus_type & ASC_IS_ISA) { > @@ -3151,7 +3149,7 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > if (asc_get_eeprom_string(wordp, serialstr) == ASC_TRUE) > seq_printf(m, " Serial Number: %s\n", serialstr); > else > - seq_printf(m, " Serial Number Signature Not Present.\n"); > + seq_puts(m, " Serial Number Signature Not Present.\n"); > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) > seq_printf(m, > @@ -3209,10 +3207,10 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > ep_38C1600->termination_lvd, termstr, > ep_38C1600->bios_ctrl); > > - seq_printf(m, " Target ID: "); > + seq_puts(m, " Target ID: "); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %X", i); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) { > word = ep_3550->disc_enable; > @@ -3221,11 +3219,11 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > } else { > word = ep_38C1600->disc_enable; > } > - seq_printf(m, " Disconnects: "); > + seq_puts(m, " Disconnects: "); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %c", > (word & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) { > word = ep_3550->tagqng_able; > @@ -3234,11 +3232,11 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > } else { > word = ep_38C1600->tagqng_able; > } > - seq_printf(m, " Command Queuing: "); > + seq_puts(m, " Command Queuing: "); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %c", > (word & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) { > word = ep_3550->start_motor; > @@ -3247,28 +3245,28 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > } else { > word = ep_38C1600->start_motor; > } > - seq_printf(m, " Start Motor: "); > + seq_puts(m, " Start Motor: "); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %c", > (word & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) { > - seq_printf(m, " Synchronous Transfer:"); > + seq_puts(m, " Synchronous Transfer:"); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %c", > (ep_3550->sdtr_able & ADV_TID_TO_TIDMASK(i)) ? > 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > } > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) { > - seq_printf(m, " Ultra Transfer: "); > + seq_puts(m, " Ultra Transfer: "); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %c", > (ep_3550->ultra_able & ADV_TID_TO_TIDMASK(i)) > ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > } > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC3550) { > @@ -3278,16 +3276,15 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > } else { > word = ep_38C1600->wdtr_able; > } > - seq_printf(m, " Wide Transfer: "); > + seq_puts(m, " Wide Transfer: "); > for (i = 0; i <= ADV_MAX_TID; i++) > seq_printf(m, " %c", > (word & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > if (adv_dvc_varp->chip_type == ADV_CHIP_ASC38C0800 || > adv_dvc_varp->chip_type == ADV_CHIP_ASC38C1600) { > - seq_printf(m, > - " Synchronous Transfer Speed (Mhz):\n "); > + seq_puts(m, " Synchronous Transfer Speed (Mhz):\n "); > for (i = 0; i <= ADV_MAX_TID; i++) { > char *speed_str; > > @@ -3325,10 +3322,10 @@ static void asc_prt_adv_board_eeprom(struct seq_file *m, struct Scsi_Host *shost > } > seq_printf(m, "%X:%s ", i, speed_str); > if (i == 7) > - seq_printf(m, "\n "); > + seq_puts(m, "\n "); > sdtr_speed >>= 4; > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > } > } > > @@ -3403,7 +3400,7 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > seq_printf(m, > " Total Command Pending: %d\n", v->cur_total_qng); > > - seq_printf(m, " Command Queuing:"); > + seq_puts(m, " Command Queuing:"); > for (i = 0; i <= ASC_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3413,10 +3410,10 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > i, > (v->use_tagged_qng & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > /* Current number of commands waiting for a device. */ > - seq_printf(m, " Command Queue Pending:"); > + seq_puts(m, " Command Queue Pending:"); > for (i = 0; i <= ASC_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3424,10 +3421,10 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > } > seq_printf(m, " %X:%u", i, v->cur_dvc_qng[i]); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > /* Current limit on number of commands that can be sent to a device. */ > - seq_printf(m, " Command Queue Limit:"); > + seq_puts(m, " Command Queue Limit:"); > for (i = 0; i <= ASC_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3435,10 +3432,10 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > } > seq_printf(m, " %X:%u", i, v->max_dvc_qng[i]); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > /* Indicate whether the device has returned queue full status. */ > - seq_printf(m, " Command Queue Full:"); > + seq_puts(m, " Command Queue Full:"); > for (i = 0; i <= ASC_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3450,9 +3447,9 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > else > seq_printf(m, " %X:N", i); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Synchronous Transfer:"); > + seq_puts(m, " Synchronous Transfer:"); > for (i = 0; i <= ASC_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3462,7 +3459,7 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > i, > (v->sdtr_done & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > for (i = 0; i <= ASC_MAX_TID; i++) { > uchar syn_period_ix; > @@ -3476,7 +3473,7 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > seq_printf(m, " %X:", i); > > if ((boardp->sdtr_data[i] & ASC_SYN_MAX_OFFSET) == 0) { > - seq_printf(m, " Asynchronous"); > + seq_puts(m, " Asynchronous"); > } else { > syn_period_ix = > (boardp->sdtr_data[i] >> 4) & (v->max_sdtr_index - > @@ -3494,16 +3491,15 @@ static void asc_prt_asc_board_info(struct seq_file *m, struct Scsi_Host *shost) > } > > if ((v->sdtr_done & ADV_TID_TO_TIDMASK(i)) == 0) { > - seq_printf(m, "*\n"); > + seq_puts(m, "*\n"); > renegotiate = 1; > } else { > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > } > } > > if (renegotiate) { > - seq_printf(m, > - " * = Re-negotiation pending before next command.\n"); > + seq_puts(m, " * = Re-negotiation pending before next command.\n"); > } > } > > @@ -3548,7 +3544,7 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > c->mcode_date, c->mcode_version); > > AdvReadWordLram(iop_base, ASC_MC_TAGQNG_ABLE, tagqng_able); > - seq_printf(m, " Queuing Enabled:"); > + seq_puts(m, " Queuing Enabled:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3559,9 +3555,9 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > i, > (tagqng_able & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Queue Limit:"); > + seq_puts(m, " Queue Limit:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3573,9 +3569,9 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > > seq_printf(m, " %X:%d", i, lrambyte); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > - seq_printf(m, " Command Pending:"); > + seq_puts(m, " Command Pending:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3587,10 +3583,10 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > > seq_printf(m, " %X:%d", i, lrambyte); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > AdvReadWordLram(iop_base, ASC_MC_WDTR_ABLE, wdtr_able); > - seq_printf(m, " Wide Enabled:"); > + seq_puts(m, " Wide Enabled:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3601,10 +3597,10 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > i, > (wdtr_able & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > AdvReadWordLram(iop_base, ASC_MC_WDTR_DONE, wdtr_done); > - seq_printf(m, " Transfer Bit Width:"); > + seq_puts(m, " Transfer Bit Width:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3620,14 +3616,14 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > > if ((wdtr_able & ADV_TID_TO_TIDMASK(i)) && > (wdtr_done & ADV_TID_TO_TIDMASK(i)) == 0) { > - seq_printf(m, "*"); > + seq_puts(m, "*"); > renegotiate = 1; > } > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > AdvReadWordLram(iop_base, ASC_MC_SDTR_ABLE, sdtr_able); > - seq_printf(m, " Synchronous Enabled:"); > + seq_puts(m, " Synchronous Enabled:"); > for (i = 0; i <= ADV_MAX_TID; i++) { > if ((chip_scsi_id == i) || > ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(i)) == 0)) { > @@ -3638,7 +3634,7 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > i, > (sdtr_able & ADV_TID_TO_TIDMASK(i)) ? 'Y' : 'N'); > } > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > > AdvReadWordLram(iop_base, ASC_MC_SDTR_DONE, sdtr_done); > for (i = 0; i <= ADV_MAX_TID; i++) { > @@ -3657,14 +3653,14 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > seq_printf(m, " %X:", i); > > if ((lramword & 0x1F) == 0) { /* Check for REQ/ACK Offset 0. */ > - seq_printf(m, " Asynchronous"); > + seq_puts(m, " Asynchronous"); > } else { > - seq_printf(m, " Transfer Period Factor: "); > + seq_puts(m, " Transfer Period Factor: "); > > if ((lramword & 0x1F00) == 0x1100) { /* 80 Mhz */ > - seq_printf(m, "9 (80.0 Mhz),"); > + seq_puts(m, "9 (80.0 Mhz),"); > } else if ((lramword & 0x1F00) == 0x1000) { /* 40 Mhz */ > - seq_printf(m, "10 (40.0 Mhz),"); > + seq_puts(m, "10 (40.0 Mhz),"); > } else { /* 20 Mhz or below. */ > > period = (((lramword >> 8) * 25) + 50) / 4; > @@ -3684,16 +3680,15 @@ static void asc_prt_adv_board_info(struct seq_file *m, struct Scsi_Host *shost) > } > > if ((sdtr_done & ADV_TID_TO_TIDMASK(i)) == 0) { > - seq_printf(m, "*\n"); > + seq_puts(m, "*\n"); > renegotiate = 1; > } else { > - seq_printf(m, "\n"); > + seq_puts(m, "\n"); > } > } > > if (renegotiate) { > - seq_printf(m, > - " * = Re-negotiation pending before next command.\n"); > + seq_puts(m, " * = Re-negotiation pending before next command.\n"); > } > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html