From: Ye Bin Date: Fri, 17 Jul 2020 09:09:21 +0000 (+0800) Subject: scsi: core: Delete unnecessary buffer allocation for every loop iteration X-Git-Tag: Ubuntu-5.13.0-19.19~5355^2~97 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=811f39479c0c2d4da959b8d915f2f699d70ab143;p=mirror_ubuntu-jammy-kernel.git 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 Signed-off-by: Martin K. Petersen --- 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);