SF Markus Elfring
2017-May-20 14:30 UTC
[PATCH 0/2] vhost/scsi: Adjustments for five function implementations
From: Markus Elfring <elfring at users.sourceforge.net> Date: Sat, 20 May 2017 16:25:04 +0200 A few update suggestions were taken into account from static source code analysis. Markus Elfring (2): Improve a size determination in four functions Delete error messages for failed memory allocations in five functions drivers/vhost/scsi.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) -- 2.13.0
SF Markus Elfring
2017-May-20 14:31 UTC
[PATCH 1/2] vhost/scsi: Improve a size determination in four functions
From: Markus Elfring <elfring at users.sourceforge.net> Date: Sat, 20 May 2017 13:48:44 +0200 Replace the specification of four data structures by pointer dereferences as the parameter for the operator "sizeof" to make the corresponding size determination a bit safer according to the Linux coding style convention. Signed-off-by: Markus Elfring <elfring at users.sourceforge.net> --- drivers/vhost/scsi.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index fd6c8b66f06f..650533916c19 100644 --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -597,8 +597,7 @@ vhost_scsi_get_tag(struct vhost_virtqueue *vq, struct vhost_scsi_tpg *tpg, sg = cmd->tvc_sgl; prot_sg = cmd->tvc_prot_sgl; pages = cmd->tvc_upages; - memset(cmd, 0, sizeof(struct vhost_scsi_cmd)); - + memset(cmd, 0, sizeof(*cmd)); cmd->tvc_sgl = sg; cmd->tvc_prot_sgl = prot_sg; cmd->tvc_upages = pages; @@ -1757,5 +1756,5 @@ static int vhost_scsi_make_nexus(struct vhost_scsi_tpg *tpg, return -EEXIST; } - tv_nexus = kzalloc(sizeof(struct vhost_scsi_nexus), GFP_KERNEL); + tv_nexus = kzalloc(sizeof(*tv_nexus), GFP_KERNEL); if (!tv_nexus) { @@ -1958,5 +1957,5 @@ vhost_scsi_make_tpg(struct se_wwn *wwn, if (kstrtou16(name + 5, 10, &tpgt) || tpgt >= VHOST_SCSI_MAX_TARGET) return ERR_PTR(-EINVAL); - tpg = kzalloc(sizeof(struct vhost_scsi_tpg), GFP_KERNEL); + tpg = kzalloc(sizeof(*tpg), GFP_KERNEL); if (!tpg) { @@ -2012,5 +2011,5 @@ vhost_scsi_make_tport(struct target_fabric_configfs *tf, /* if (vhost_scsi_parse_wwn(name, &wwpn, 1) < 0) return ERR_PTR(-EINVAL); */ - tport = kzalloc(sizeof(struct vhost_scsi_tport), GFP_KERNEL); + tport = kzalloc(sizeof(*tport), GFP_KERNEL); if (!tport) { -- 2.13.0
SF Markus Elfring
2017-May-20 14:32 UTC
[PATCH 2/2] vhost/scsi: Delete error messages for failed memory allocations in five functions
From: Markus Elfring <elfring at users.sourceforge.net> Date: Sat, 20 May 2017 15:50:30 +0200 Omit seven extra messages for memory allocation failures in these functions. This issue was detected by using the Coccinelle software. Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdf Signed-off-by: Markus Elfring <elfring at users.sourceforge.net> --- drivers/vhost/scsi.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index 650533916c19..49d07950e2e5 100644 --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -417,5 +417,4 @@ vhost_scsi_allocate_evt(struct vhost_scsi *vs, if (!evt) { - vq_err(vq, "Failed to allocate vhost_scsi_evt\n"); vs->vs_events_missed = true; return NULL; } @@ -1722,21 +1721,15 @@ static int vhost_scsi_nexus_cb(struct se_portal_group *se_tpg, - if (!tv_cmd->tvc_sgl) { - pr_err("Unable to allocate tv_cmd->tvc_sgl\n"); + if (!tv_cmd->tvc_sgl) goto out; - } tv_cmd->tvc_upages = kzalloc(sizeof(struct page *) * VHOST_SCSI_PREALLOC_UPAGES, GFP_KERNEL); - if (!tv_cmd->tvc_upages) { - pr_err("Unable to allocate tv_cmd->tvc_upages\n"); + if (!tv_cmd->tvc_upages) goto out; - } tv_cmd->tvc_prot_sgl = kzalloc(sizeof(struct scatterlist) * VHOST_SCSI_PREALLOC_PROT_SGLS, GFP_KERNEL); - if (!tv_cmd->tvc_prot_sgl) { - pr_err("Unable to allocate tv_cmd->tvc_prot_sgl\n"); + if (!tv_cmd->tvc_prot_sgl) goto out; - } } return 0; out: @@ -1760,6 +1753,5 @@ static int vhost_scsi_make_nexus(struct vhost_scsi_tpg *tpg, if (!tv_nexus) { mutex_unlock(&tpg->tv_tpg_mutex); - pr_err("Unable to allocate struct vhost_scsi_nexus\n"); return -ENOMEM; } /* @@ -1961,7 +1953,6 @@ vhost_scsi_make_tpg(struct se_wwn *wwn, - if (!tpg) { - pr_err("Unable to allocate struct vhost_scsi_tpg"); + if (!tpg) return ERR_PTR(-ENOMEM); - } + mutex_init(&tpg->tv_tpg_mutex); INIT_LIST_HEAD(&tpg->tv_tpg_list); tpg->tport = tport; @@ -2015,7 +2006,6 @@ vhost_scsi_make_tport(struct target_fabric_configfs *tf, - if (!tport) { - pr_err("Unable to allocate struct vhost_scsi_tport"); + if (!tport) return ERR_PTR(-ENOMEM); - } + tport->tport_wwpn = wwpn; /* * Determine the emulated Protocol Identifier and Target Port Name -- 2.13.0
Stefan Hajnoczi
2017-May-22 09:37 UTC
[PATCH 1/2] vhost/scsi: Improve a size determination in four functions
On Sat, May 20, 2017 at 04:31:13PM +0200, SF Markus Elfring wrote:> From: Markus Elfring <elfring at users.sourceforge.net> > Date: Sat, 20 May 2017 13:48:44 +0200 > > Replace the specification of four data structures by pointer dereferences > as the parameter for the operator "sizeof" to make the corresponding size > determination a bit safer according to the Linux coding style convention. > > Signed-off-by: Markus Elfring <elfring at users.sourceforge.net> > --- > drivers/vhost/scsi.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-)Reviewed-by: Stefan Hajnoczi <stefanha at redhat.com> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 455 bytes Desc: not available URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20170522/83665a53/attachment.sig>
Stefan Hajnoczi
2017-May-22 09:43 UTC
[PATCH 2/2] vhost/scsi: Delete error messages for failed memory allocations in five functions
On Sat, May 20, 2017 at 04:32:17PM +0200, SF Markus Elfring wrote:> From: Markus Elfring <elfring at users.sourceforge.net> > Date: Sat, 20 May 2017 15:50:30 +0200 > > Omit seven extra messages for memory allocation failures in these functions. > > This issue was detected by using the Coccinelle software. > > Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdfPlease include an actual explanation for this change instead of linking to slides. Why are you trying to get rid of memory allocation failure messages?> Signed-off-by: Markus Elfring <elfring at users.sourceforge.net> > --- > drivers/vhost/scsi.c | 24 +++++++----------------- > 1 file changed, 7 insertions(+), 17 deletions(-) > > diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c > index 650533916c19..49d07950e2e5 100644 > --- a/drivers/vhost/scsi.c > +++ b/drivers/vhost/scsi.c > @@ -417,5 +417,4 @@ vhost_scsi_allocate_evt(struct vhost_scsi *vs, > if (!evt) { > - vq_err(vq, "Failed to allocate vhost_scsi_evt\n");#define vq_err(vq, fmt, ...) do { \ pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \ if ((vq)->error_ctx) \ eventfd_signal((vq)->error_ctx, 1);\ } while (0) You silently dropped the eventfd_signal() call. Please explain. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 455 bytes Desc: not available URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20170522/8e65535e/attachment.sig>
Reasonably Related Threads
- [PATCH 0/2] vhost/scsi: Adjustments for five function implementations
- [PATCH 0/3] vhost-scsi: Fix IO hangs when using windows
- [PATCH-v2 0/3] target/vhost-scsi: Add per-cpu ida tag pre-allocation for v3.12
- [PATCH-v2 0/3] target/vhost-scsi: Add per-cpu ida tag pre-allocation for v3.12
- [PATCH 2/2] vhost/scsi: Delete error messages for failed memory allocations in five functions