diff options
author | Ye Bin <yebin10@huawei.com> | 2020-07-17 17:09:21 +0800 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2020-07-24 22:09:57 -0400 |
commit | 811f39479c0c2d4da959b8d915f2f699d70ab143 (patch) | |
tree | 15ff16bb88815eff8053ca5784e231725c04e0a5 /drivers/scsi/scsi_logging.c | |
parent | f30785db7546520acd53aac7497d42352ff031e0 (diff) | |
download | lwn-811f39479c0c2d4da959b8d915f2f699d70ab143.tar.gz lwn-811f39479c0c2d4da959b8d915f2f699d70ab143.zip |
scsi: core: Delete unnecessary buffer allocation for every loop iteration
No need to allocate buffer every loop iteration. Allocate buffer once and
reuse it.
Link: https://lore.kernel.org/r/20200717090921.29243-2-yebin10@huawei.com
Signed-off-by: Ye Bin <yebin10@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/scsi_logging.c')
-rw-r--r-- | drivers/scsi/scsi_logging.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/scsi/scsi_logging.c b/drivers/scsi/scsi_logging.c index c91fa3feb930..8ea44c6595ef 100644 --- a/drivers/scsi/scsi_logging.c +++ b/drivers/scsi/scsi_logging.c @@ -205,13 +205,9 @@ void scsi_print_command(struct scsi_cmnd *cmd) /* Print opcode in one line and use separate lines for CDB */ off += scnprintf(logbuf + off, logbuf_len - off, "\n"); dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf); - scsi_log_release_buffer(logbuf); for (k = 0; k < cmd->cmd_len; k += 16) { size_t linelen = min(cmd->cmd_len - k, 16); - logbuf = scsi_log_reserve_buffer(&logbuf_len); - if (!logbuf) - break; off = sdev_format_header(logbuf, logbuf_len, scmd_name(cmd), cmd->request->tag); @@ -224,9 +220,8 @@ void scsi_print_command(struct scsi_cmnd *cmd) } dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf); - scsi_log_release_buffer(logbuf); } - return; + goto out; } if (!WARN_ON(off > logbuf_len - 49)) { off += scnprintf(logbuf + off, logbuf_len - off, " "); @@ -236,6 +231,7 @@ void scsi_print_command(struct scsi_cmnd *cmd) } out_printk: dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf); +out: scsi_log_release_buffer(logbuf); } EXPORT_SYMBOL(scsi_print_command); |