Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1527759 > unrolled thread

[PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32 bit kernels.

Started byCathy Avery <cavery@redhat.com>
First post2016-11-22 18:40 +0100
Last post2016-11-23 04:00 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32 bit kernels. Cathy Avery <cavery@redhat.com> - 2016-11-22 18:40 +0100
    [PATCH] storvsc: fix kzalloc-simple.cocci warnings kbuild test robot <lkp@intel.com> - 2016-11-23 04:00 +0100
    Re: [PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32  bit kernels. kbuild test robot <lkp@intel.com> - 2016-11-23 04:00 +0100

#1527759 — [PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32 bit kernels.

FromCathy Avery <cavery@redhat.com>
Date2016-11-22 18:40 +0100
Subject[PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32 bit kernels.
Message-ID<sGnd1-1Py-59@gated-at.bofh.it>
On a 32 bit kernel sizeof(void *) is not 64 bits as hv_mpb_array
requires. Also the buffer needs to be cleared or the upper bytes
could contain junk.

Suggested-by: Vitaly Kuznets <vkuznets@redhat.com>
Signed-off-by: Cathy Avery <cavery@redhat.com>
---
 drivers/scsi/storvsc_drv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 8ccfc9e..b4a8c9d 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1495,11 +1495,12 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
 	if (sg_count) {
 		if (sg_count > MAX_PAGE_BUFFER_COUNT) {
 
-			payload_sz = (sg_count * sizeof(void *) +
+			payload_sz = (sg_count * sizeof(u64) +
 				      sizeof(struct vmbus_packet_mpb_array));
 			payload = kmalloc(payload_sz, GFP_ATOMIC);
 			if (!payload)
 				return SCSI_MLQUEUE_DEVICE_BUSY;
+			memset(payload, 0, payload_sz);
 		}
 
 		payload->range.len = length;
-- 
2.5.0

[toc] | [next] | [standalone]


#1528090 — [PATCH] storvsc: fix kzalloc-simple.cocci warnings

Fromkbuild test robot <lkp@intel.com>
Date2016-11-23 04:00 +0100
Subject[PATCH] storvsc: fix kzalloc-simple.cocci warnings
Message-ID<sGvWV-7jS-9@gated-at.bofh.it>
In reply to#1527759
drivers/scsi/storvsc_drv.c:1500:13-20: WARNING: kzalloc should be used for payload, instead of kmalloc/memset


 Use kzalloc rather than kmalloc followed by memset with 0

 This considers some simple cases that are common and easy to validate
 Note in particular that there are no ...s in the rule, so all of the
 matched code has to be contiguous

Generated by: scripts/coccinelle/api/alloc/kzalloc-simple.cocci

CC: Cathy Avery <cavery@redhat.com>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
---

 storvsc_drv.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1497,10 +1497,9 @@ static int storvsc_queuecommand(struct S
 
 			payload_sz = (sg_count * sizeof(u64) +
 				      sizeof(struct vmbus_packet_mpb_array));
-			payload = kmalloc(payload_sz, GFP_ATOMIC);
+			payload = kzalloc(payload_sz, GFP_ATOMIC);
 			if (!payload)
 				return SCSI_MLQUEUE_DEVICE_BUSY;
-			memset(payload, 0, payload_sz);
 		}
 
 		payload->range.len = length;

[toc] | [prev] | [next] | [standalone]


#1528092 — Re: [PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32 bit kernels.

Fromkbuild test robot <lkp@intel.com>
Date2016-11-23 04:00 +0100
SubjectRe: [PATCH] [hv] storvsc: Payload buffer incorrectly sized for 32 bit kernels.
Message-ID<sGvWV-7jS-11@gated-at.bofh.it>
In reply to#1527759
Hi Cathy,

[auto build test WARNING on scsi/for-next]
[also build test WARNING on v4.9-rc6 next-20161122]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Cathy-Avery/storvsc-Payload-buffer-incorrectly-sized-for-32-bit-kernels/20161123-091420
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next


coccinelle warnings: (new ones prefixed by >>)

>> drivers/scsi/storvsc_drv.c:1500:13-20: WARNING: kzalloc should be used for payload, instead of kmalloc/memset

Please review and possibly fold the followup patch.

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web