diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 4a105006ca637bc985698fa378ff6d14e1494b3f..2cea022e6e6ed155a24261f04b54a11caf63ba8d 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1236,10 +1236,9 @@ static int virtnet_set_mac_address(struct net_device *dev, void *p) struct sockaddr *addr; struct scatterlist sg; - addr = kmalloc(sizeof(*addr), GFP_KERNEL); + addr = kmemdup(p, sizeof(*addr), GFP_KERNEL); if (!addr) return -ENOMEM; - memcpy(addr, p, sizeof(*addr)); ret = eth_prepare_mac_addr_change(dev, addr); if (ret)