scsi: virtio_scsi: Use struct_size() helper
Subsystems (3)
PATCH 1/1 scsi: virtio_scsi: Use struct_size() helper
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct virtio_scsi {
...
struct virtio_scsi_vq req_vqs[];
};Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes.
So, replace the following form:
sizeof(*vscsi) + sizeof(vscsi->req_vqs[0]) * num_queues
with:
struct_size(vscsi, req_vqs, num_queues)
This code was detected with the help of Coccinelle.
--- drivers/scsi/virtio_scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/virtio_scsi.c +1 -1
@@ -795,7 +795,7 @@ static int virtscsi_probe(struct virtio_device *vdev) num_targets =virtscsi_config_get (vdev, max_target) +1 ; shost =scsi_host_alloc (&virtscsi_host_template, -sizeof (*vscsi) +sizeof (vscsi->req_vqs[0 ]) * num_queues); +struct_size (vscsi, req_vqs, num_queues));if (!shost)return -ENOMEM ;
Signature · 1 line
2.21.0
Quoted 18 lines · Gustavo A. R. Silva
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct virtio_scsi { ... struct virtio_scsi_vq req_vqs[]; };Make use of the
struct_size()helper instead of an open-coded version in order to avoid any potential type mistakes.So, replace the following form:
sizeof(*vscsi)+sizeof(vscsi->req_vqs[0])*num_queueswith:
Quoted 8 lines
struct_size(vscsi, req_vqs, num_queues)This code was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/scsi/virtio_scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 18 lines · Gustavo A. R. Silva
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct virtio_scsi { ... struct virtio_scsi_vq req_vqs[]; };Make use of the
struct_size()helper instead of an open-coded version in order to avoid any potential type mistakes.So, replace the following form:
sizeof(*vscsi)+sizeof(vscsi->req_vqs[0])*num_queueswith:
Quoted 8 lines
struct_size(vscsi, req_vqs, num_queues)This code was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/scsi/virtio_scsi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Martin K. Petersen
AppliedGustavo,
Quoted 3 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
Applied to 5.4/scsi-queue, thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
Michael S. Tsirkin
maintainerQuoted 8 lines · Martin K. Petersen
Gustavo,
Quoted 3 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
Applied to 5.4/scsi-queue, thanks!
Oh I put it in the virtio tree already.
Can't hurt I guess :)
Quoted 2 lines
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
Michael S. Tsirkin
maintainerQuoted 8 lines · Martin K. Petersen
Gustavo,
Quoted 3 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
Applied to 5.4/scsi-queue, thanks!
Oh I put it in the virtio tree already.
Can't hurt I guess :)
Quoted 2 lines
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering
Martin K. Petersen
AppliedGustavo,
Quoted 3 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
Applied to 5.4/scsi-queue, thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering