Displaying 20 results from an estimated 46 matches for "virtnet_ack_link_announce".
2012 Mar 28
2
[V6 PATCH] virtio-net: send gratuitous packets when needed
...+ /* Work struct for sending gratuitous packets. */
+ struct work_struct announce;
+
/* Chain pages by the private ptr. */
struct page *pages;
@@ -781,12 +784,30 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd,
return status == VIRTIO_NET_OK;
}
+static void virtnet_ack_link_announce(struct virtnet_info *vi)
+{
+ if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
+ VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL,
+ 0, 0)) {
+ dev_warn(&vi->dev->dev, "Failed to ack link nnounce.\n");
+ }
+}
+
+static void announce_work(struct work_struct *work)
+{
+ struct...
2012 Mar 28
2
[V6 PATCH] virtio-net: send gratuitous packets when needed
...+ /* Work struct for sending gratuitous packets. */
+ struct work_struct announce;
+
/* Chain pages by the private ptr. */
struct page *pages;
@@ -781,12 +784,30 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd,
return status == VIRTIO_NET_OK;
}
+static void virtnet_ack_link_announce(struct virtnet_info *vi)
+{
+ if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
+ VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL,
+ 0, 0)) {
+ dev_warn(&vi->dev->dev, "Failed to ack link nnounce.\n");
+ }
+}
+
+static void announce_work(struct work_struct *work)
+{
+ struct...
2012 Apr 12
2
[net-next V7 PATCH] virtio-net: send gratuitous packets when needed
...uct config_work;
+
+ /* Lock for config space updates */
+ struct mutex config_lock;
+
/* Chain pages by the private ptr. */
struct page *pages;
@@ -781,6 +790,16 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd,
return status == VIRTIO_NET_OK;
}
+static void virtnet_ack_link_announce(struct virtnet_info *vi)
+{
+ rtnl_lock();
+ if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
+ VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL,
+ 0, 0))
+ dev_warn(&vi->dev->dev, "Failed to ack link announce.\n");
+ rtnl_unlock();
+}
+
static int virtnet_close(struct net_...
2012 Apr 12
2
[net-next V7 PATCH] virtio-net: send gratuitous packets when needed
...uct config_work;
+
+ /* Lock for config space updates */
+ struct mutex config_lock;
+
/* Chain pages by the private ptr. */
struct page *pages;
@@ -781,6 +790,16 @@ static bool virtnet_send_command(struct virtnet_info *vi, u8 class, u8 cmd,
return status == VIRTIO_NET_OK;
}
+static void virtnet_ack_link_announce(struct virtnet_info *vi)
+{
+ rtnl_lock();
+ if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
+ VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL,
+ 0, 0))
+ dev_warn(&vi->dev->dev, "Failed to ack link announce.\n");
+ rtnl_unlock();
+}
+
static int virtnet_close(struct net_...
2017 Oct 05
0
[PATCH RFC 1/2] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
.../drivers/net/virtio_net.c
>> index 52ae78ca3d38..5e349226f7c1 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -1458,12 +1458,11 @@ static void virtnet_netpoll(struct net_device *dev)
>> }
>> #endif
>>
>> -static void virtnet_ack_link_announce(struct virtnet_info *vi)
>> +static void virtnet_ack(struct virtnet_info *vi, u8 class, u8 cmd)
>> {
>> rtnl_lock();
>> - if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
>> - VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL))
>>...
2017 Oct 05
0
[PATCH RFC 1/2] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
.../drivers/net/virtio_net.c
>> index 52ae78ca3d38..5e349226f7c1 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -1458,12 +1458,11 @@ static void virtnet_netpoll(struct net_device *dev)
>> }
>> #endif
>>
>> -static void virtnet_ack_link_announce(struct virtnet_info *vi)
>> +static void virtnet_ack(struct virtnet_info *vi, u8 class, u8 cmd)
>> {
>> rtnl_lock();
>> - if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
>> - VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL))
>>...
2017 Oct 13
2
[PATCH net-next] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...enable(dev);
+ return 0;
+
+err:
+ virtio_add_status(dev, VIRTIO_CONFIG_S_FAILED);
+ return ret;
+}
+
static int virtnet_set_guest_offloads(struct virtnet_info *vi, u64 offloads)
{
struct scatterlist sg;
@@ -2136,6 +2172,10 @@ static void virtnet_config_changed_work(struct work_struct *work)
virtnet_ack_link_announce(vi);
}
+ if (vi->vdev->config->get_status(vi->vdev) &
+ VIRTIO_CONFIG_S_NEEDS_RESET)
+ virtnet_reset(vi);
+
/* Ignore unknown (future) status bits */
v &= VIRTIO_NET_S_LINK_UP;
@@ -2756,7 +2796,7 @@ static __maybe_unused int virtnet_freeze(struct virtio_device *vd...
2017 Oct 13
2
[PATCH net-next] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...enable(dev);
+ return 0;
+
+err:
+ virtio_add_status(dev, VIRTIO_CONFIG_S_FAILED);
+ return ret;
+}
+
static int virtnet_set_guest_offloads(struct virtnet_info *vi, u64 offloads)
{
struct scatterlist sg;
@@ -2136,6 +2172,10 @@ static void virtnet_config_changed_work(struct work_struct *work)
virtnet_ack_link_announce(vi);
}
+ if (vi->vdev->config->get_status(vi->vdev) &
+ VIRTIO_CONFIG_S_NEEDS_RESET)
+ virtnet_reset(vi);
+
/* Ignore unknown (future) status bits */
v &= VIRTIO_NET_S_LINK_UP;
@@ -2756,7 +2796,7 @@ static __maybe_unused int virtnet_freeze(struct virtio_device *vd...
2023 Mar 30
1
[PATCH 00/16] virtio-net: split virtio-net.c
...virtio_net: move struct to header file
> virtio_net: add prefix to the struct inside header file
> virtio_net: separating cpu-related funs
> virtio_net: separate virtnet_ctrl_set_queues()
> virtio_net: separate virtnet_ctrl_set_mac_address()
> virtio_net: remove lock from virtnet_ack_link_announce()
> virtio_net: separating the APIs of cq
> virtio_net: introduce virtnet_rq_update_stats()
> virtio_net: separating the funcs of ethtool
> virtio_net: introduce virtnet_dev_rx_queue_group()
> virtio_net: introduce virtnet_get_netdev()
> virtio_net: prepare for virtio...
2023 Mar 31
1
[PATCH 00/16] virtio-net: split virtio-net.c
...> virtio_net: add prefix to the struct inside header file
> > > virtio_net: separating cpu-related funs
> > > virtio_net: separate virtnet_ctrl_set_queues()
> > > virtio_net: separate virtnet_ctrl_set_mac_address()
> > > virtio_net: remove lock from virtnet_ack_link_announce()
> > > virtio_net: separating the APIs of cq
> > > virtio_net: introduce virtnet_rq_update_stats()
> > > virtio_net: separating the funcs of ethtool
> > > virtio_net: introduce virtnet_dev_rx_queue_group()
> > > virtio_net: introduce virtnet_g...
2023 Mar 31
1
[PATCH 00/16] virtio-net: split virtio-net.c
...add prefix to the struct inside header file
> > > > virtio_net: separating cpu-related funs
> > > > virtio_net: separate virtnet_ctrl_set_queues()
> > > > virtio_net: separate virtnet_ctrl_set_mac_address()
> > > > virtio_net: remove lock from virtnet_ack_link_announce()
> > > > virtio_net: separating the APIs of cq
> > > > virtio_net: introduce virtnet_rq_update_stats()
> > > > virtio_net: separating the funcs of ethtool
> > > > virtio_net: introduce virtnet_dev_rx_queue_group()
> > > > virtio...
2023 Mar 31
1
[PATCH 00/16] virtio-net: split virtio-net.c
...ruct inside header file
> > > > > virtio_net: separating cpu-related funs
> > > > > virtio_net: separate virtnet_ctrl_set_queues()
> > > > > virtio_net: separate virtnet_ctrl_set_mac_address()
> > > > > virtio_net: remove lock from virtnet_ack_link_announce()
> > > > > virtio_net: separating the APIs of cq
> > > > > virtio_net: introduce virtnet_rq_update_stats()
> > > > > virtio_net: separating the funcs of ethtool
> > > > > virtio_net: introduce virtnet_dev_rx_queue_group()
> >...
2013 Dec 10
0
[PATCH net-next 2/3] virtio_net: remove unused parameter to send_command
...end_command(vi, VIRTIO_NET_CTRL_MAC,
- VIRTIO_NET_CTRL_MAC_ADDR_SET,
- &sg, NULL)) {
+ VIRTIO_NET_CTRL_MAC_ADDR_SET, &sg)) {
dev_warn(&vdev->dev,
"Failed to set mac address by vq command.\n");
return -EINVAL;
@@ -1008,7 +1003,7 @@ static void virtnet_ack_link_announce(st
{
rtnl_lock();
if (!virtnet_send_command(vi, VIRTIO_NET_CTRL_ANNOUNCE,
- VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL, NULL))
+ VIRTIO_NET_CTRL_ANNOUNCE_ACK, NULL))
dev_warn(&vi->dev->dev, "Failed to ack link announce.\n");
rtnl_unlock();
}
@@ -1026,7 +1021,7 @@ st...
2017 Oct 15
0
[PATCH net-next] virtio_net: implement VIRTIO_CONFIG_S_NEEDS_RESET
...w do things like MAC address
get restored?
What about the rx mode?
vlans?
Also, it seems that LINK_ANNOUNCE requests will get ignored
even if they got set before the reset, leading to downtime.
> @@ -2136,6 +2172,10 @@ static void virtnet_config_changed_work(struct work_struct *work)
> virtnet_ack_link_announce(vi);
> }
>
> + if (vi->vdev->config->get_status(vi->vdev) &
> + VIRTIO_CONFIG_S_NEEDS_RESET)
> + virtnet_reset(vi);
> +
> /* Ignore unknown (future) status bits */
> v &= VIRTIO_NET_S_LINK_UP;
>
> @@ -2756,7 +2796,7 @@ static __maybe_...
2013 Dec 10
11
[PATCH net-next 1/3] virtio_net: set multicast filter list to host
The virtio_net driver never sends the multicast address list to
the host. This is because send command takes a pointer to scatter list
to send but only inserts that one entry into the outgoing scatter list.
This bug has been there since:
commit f565a7c259d71cc186753653d978c646d2354b36
Author: Alex Williamson <alex.williamson at hp.com>
Date: Wed Feb 4 09:02:45 2009 +0000
virtio_net:
2013 Dec 10
11
[PATCH net-next 1/3] virtio_net: set multicast filter list to host
The virtio_net driver never sends the multicast address list to
the host. This is because send command takes a pointer to scatter list
to send but only inserts that one entry into the outgoing scatter list.
This bug has been there since:
commit f565a7c259d71cc186753653d978c646d2354b36
Author: Alex Williamson <alex.williamson at hp.com>
Date: Wed Feb 4 09:02:45 2009 +0000
virtio_net:
2013 Jan 10
8
[RFC PATCH 0/2] make mac programming for virtio net more robust
From: Amos Kong <akong at redhat.com>
Currenly mac is programmed byte by byte. This means that we
have an intermediate step where mac is wrong.
Second patch introduced a new vq control command to set mac
address in one time.
Amos Kong (2):
move virtnet_send_command() above virtnet_set_mac_address()
virtio-net: introduce a new control to set macaddr
drivers/net/virtio_net.c |
2013 Jan 10
8
[RFC PATCH 0/2] make mac programming for virtio net more robust
From: Amos Kong <akong at redhat.com>
Currenly mac is programmed byte by byte. This means that we
have an intermediate step where mac is wrong.
Second patch introduced a new vq control command to set mac
address in one time.
Amos Kong (2):
move virtnet_send_command() above virtnet_set_mac_address()
virtio-net: introduce a new control to set macaddr
drivers/net/virtio_net.c |
2013 Jan 17
2
[PATCH v3 0/2] make mac programming for virtio net more robust
From: Amos Kong <akong at redhat.com>
Currenly mac is programmed byte by byte. This means that we
have an intermediate step where mac is wrong.
Second patch introduced a new vq control command to set mac
address, it's atomic.
V2: check return of sending command, delay eth_mac_addr()
V3: restore software address when fail to set hardware address
Amos Kong (2):
move
2013 Jan 17
2
[PATCH v3 0/2] make mac programming for virtio net more robust
From: Amos Kong <akong at redhat.com>
Currenly mac is programmed byte by byte. This means that we
have an intermediate step where mac is wrong.
Second patch introduced a new vq control command to set mac
address, it's atomic.
V2: check return of sending command, delay eth_mac_addr()
V3: restore software address when fail to set hardware address
Amos Kong (2):
move