03 Oct, 2012

1 commit


15 Aug, 2012

1 commit

  • I believe net/core/dev.c is a better place for netif_notify_peers(),
    because other net event notify functions also stay in this file.

    And rename it to netdev_notify_peers().

    Cc: David S. Miller
    Cc: Ian Campbell
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Amerigo Wang
     

26 Jul, 2012

1 commit


17 Jul, 2012

1 commit

  • This adds support for setting synthetic NIC MAC address from within Linux
    guests. Before using this feature, the option "spoofing of MAC address"
    should be enabled at the Hyper-V manager / Settings of the synthetic
    NIC.

    Thanks to Kin Cho for the initial implementation and
    tests. And, thanks to Long Li for the debugging
    works.

    Reported-and-tested-by: Kin Cho
    Reported-by: Long Li
    Signed-off-by: Haiyang Zhang
    Reviewed-by: K. Y. Srinivasan
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

24 Apr, 2012

1 commit


22 Apr, 2012

1 commit

  • Although the network interface is down, the RX packets number which
    could be observed by ifconfig may keep on increasing.

    This is because the WORK scheduled in netvsc_set_multicast_list()
    may be executed after netvsc_close(). That means the rndis filter
    may be re-enabled by do_set_multicast() even if it was closed by
    netvsc_close().

    By canceling possible WORK before close the rndis filter, the issue
    could be never happened.

    Signed-off-by: Wenqi Ma
    Reviewed-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wenqi Ma
     

04 Apr, 2012

1 commit

  • In the existing code, we only stop queue when the ringbuffer is full,
    so the current packet has to be dropped or retried from upper layer.

    This patch stops the tx queue when available ringbuffer is below
    the low watermark. So the ringbuffer still has small amount of space
    available for the current packet. This will reduce the overhead of
    retries on sending.

    Signed-off-by: Haiyang Zhang
    Reviewed-by: K. Y. Srinivasan
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

20 Mar, 2012

1 commit

  • Instead of dropping the packet, we keep the skb buffer, and return
    NETDEV_TX_BUSY to let upper layer retry send. This will not cause
    endless loop, because the host is taking data away from ring buffer,
    and we have called the stop_queue before returning NETDEV_TX_BUSY.

    The stop_queue was called in the function netvsc_send() in file
    netvsc.c, then it returns to rndis_filter_send(), which returns to
    netvsc_start_xmit() in file netvsc_drv.c. So the NETDEV_TX_BUSY is
    indeed returned AFTER queue is stopped.

    Signed-off-by: Haiyang Zhang
    Reviewed-by: K. Y. Srinivasan
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

19 Mar, 2012

1 commit


16 Mar, 2012

1 commit

  • A driver start_xmit() method cannot free skb and return NETDEV_TX_BUSY,
    since caller is going to reuse freed skb.

    This is mostly a revert of commit bf769375c (staging: hv: fix the return
    status of netvsc_start_xmit())

    In fact netif_tx_stop_queue() / netif_stop_queue() is needed before
    returning NETDEV_TX_BUSY or you can trigger a ksoftirqd fatal loop.

    In case of memory allocation error, only safe way is to drop the packet
    and return NETDEV_TX_OK

    Signed-off-by: Eric Dumazet
    Cc: "K. Y. Srinivasan"
    Cc: Haiyang Zhang
    Cc: Greg Kroah-Hartman
    Reviewed-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Eric Dumazet
     

13 Mar, 2012

1 commit


10 Mar, 2012

1 commit


09 Mar, 2012

1 commit


06 Feb, 2012

1 commit


03 Feb, 2012

2 commits


02 Feb, 2012

1 commit


25 Jan, 2012

1 commit


05 Jan, 2012

2 commits


10 Dec, 2011

1 commit

  • The ring buffer is only used to pass meta data for outbound packets. The
    actual payload is accessed by DMA from the host. So the stop/wake queue
    mechanism based on counting and comparing number of pages sent v.s. number
    of pages in the ring buffer is wrong. Also, there is a race condition in
    the stop/wake queue calls, which can stop xmit queue forever.

    The new stop/wake queue mechanism is based on the actual bytes used by
    outbound packets in the ring buffer. The check for number of outstanding
    sends after stop queue prevents the race condition that can cause wake
    queue happening earlier than stop queue.

    Signed-off-by: Haiyang Zhang
    Signed-off-by: K. Y. Srinivasan
    Reported-by: Long Li
    Signed-off-by: Greg Kroah-Hartman

    Haiyang Zhang
     

02 Dec, 2011

1 commit


29 Nov, 2011

1 commit

  • hv_netvsc has been reviewed on netdev mailing list on 6/09/2011.
    All recommended changes have been made. We are requesting to move
    it out of staging area.

    Signed-off-by: Haiyang Zhang
    Signed-off-by: KY Srinivasan
    Signed-off-by: Mike Sterling
    Acked-by: Stephen Hemminger
    Acked-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Haiyang Zhang