Skip to content

Commit 747a64b

Browse files
Malcolm Priestleygregkh
authored andcommitted
staging: vt6656: Remove memory buffer from vnt_download_firmware.
The memory buffer is being done twice here as vnt_control_out passes it straight to kmemdup. Remove buffer and add const to the variable in vnt_control_out to pass the pointer to it. Signed-off-by: Malcolm Priestley <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 1ca9c73 commit 747a64b

File tree

3 files changed

+4
-14
lines changed

3 files changed

+4
-14
lines changed

drivers/staging/vt6656/firmware.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ int vnt_download_firmware(struct vnt_private *priv)
3030
{
3131
struct device *dev = &priv->usb->dev;
3232
const struct firmware *fw;
33-
void *buffer = NULL;
3433
u16 length;
3534
int ii;
3635
int ret = 0;
@@ -44,26 +43,17 @@ int vnt_download_firmware(struct vnt_private *priv)
4443
goto end;
4544
}
4645

47-
buffer = kmalloc(FIRMWARE_CHUNK_SIZE, GFP_KERNEL);
48-
if (!buffer) {
49-
ret = -ENOMEM;
50-
goto free_fw;
51-
}
52-
5346
for (ii = 0; ii < fw->size; ii += FIRMWARE_CHUNK_SIZE) {
5447
length = min_t(int, fw->size - ii, FIRMWARE_CHUNK_SIZE);
55-
memcpy(buffer, fw->data + ii, length);
5648

5749
ret = vnt_control_out(priv, 0, 0x1200 + ii, 0x0000, length,
58-
buffer);
50+
fw->data + ii);
5951
if (ret)
60-
goto free_buffer;
52+
goto free_fw;
6153

6254
dev_dbg(dev, "Download firmware...%d %zu\n", ii, fw->size);
6355
}
6456

65-
free_buffer:
66-
kfree(buffer);
6757
free_fw:
6858
release_firmware(fw);
6959
end:

drivers/staging/vt6656/usbpipe.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#define USB_CTL_WAIT 500 /* ms */
3535

3636
int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
37-
u16 index, u16 length, u8 *buffer)
37+
u16 index, u16 length, const u8 *buffer)
3838
{
3939
int ret = 0;
4040
u8 *usb_buffer;

drivers/staging/vt6656/usbpipe.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#define VNT_REG_BLOCK_SIZE 64
2222

2323
int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
24-
u16 index, u16 length, u8 *buffer);
24+
u16 index, u16 length, const u8 *buffer);
2525
int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
2626
u16 index, u16 length, u8 *buffer);
2727

0 commit comments

Comments
 (0)