28 Oct, 2017

1 commit

  • The commit 9a393b5d5988 ("tap: tap as an independent module") created a
    separate tap module that implements tap functionality and exports
    interfaces that will be used by macvtap and ipvtap modules to create
    create respective tap devices.

    However, that patch introduced a regression wherein the modules macvtap
    and ipvtap can be removed (through modprobe -r) while there are
    applications using the respective /dev/tapX devices. These applications
    cause kernel to hold reference to /dev/tapX through 'struct cdev
    macvtap_cdev' and 'struct cdev ipvtap_dev' defined in macvtap and ipvtap
    modules respectively. So, when the application is later closed the
    kernel panics because we are referencing KVA that is present in the
    unloaded modules.

    ----------8
    BUG: unable to handle kernel paging request at ffffffffa038c500
    IP: cdev_put+0xf/0x30
    ----------8
    Signed-off-by: David S. Miller

    Girish Moodalbail
     

18 Jul, 2017

1 commit


27 Jun, 2017

1 commit


02 Mar, 2017

1 commit


12 Feb, 2017

2 commits

  • This patch makes tap a separate module for other types of virtual interfaces, for example,
    ipvlan to use.

    Signed-off-by: Sainath Grandhi
    Signed-off-by: David S. Miller

    Sainath Grandhi
     
  • macvtap module has code for tap/queue management and link management. This patch splits
    the code into macvtap_main.c for link management and tap.c for tap/queue management.
    Functionality in tap.c can be re-used for implementing tap on other virtual interfaces.

    Signed-off-by: Sainath Grandhi
    Signed-off-by: David S. Miller

    Sainath Grandhi
     

07 Feb, 2017

1 commit

  • When IFF_VNET_HDR is enabled, a virtio_net header must precede data.
    Data length is verified to be greater than or equal to expected header
    length tun->vnet_hdr_sz before copying.

    Macvtap functions read the value once, but unless READ_ONCE is used,
    the compiler may ignore this and read multiple times. Enforce a single
    read and locally cached value to avoid updates between test and use.

    Signed-off-by: Willem de Bruijn
    Suggested-by: Eric Dumazet
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Willem de Bruijn
     

21 Jan, 2017

1 commit

  • Commit 501db511397f ("virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on
    xmit") in fact disables VIRTIO_HDR_F_DATA_VALID on receiving path too,
    fixing this by adding a hint (has_data_valid) and set it only on the
    receiving path.

    Cc: Rolf Neugebauer
    Signed-off-by: Jason Wang
    Acked-by: Rolf Neugebauer
    Signed-off-by: David S. Miller

    Jason Wang
     

17 Dec, 2016

1 commit

  • Pull vfs updates from Al Viro:

    - more ->d_init() stuff (work.dcache)

    - pathname resolution cleanups (work.namei)

    - a few missing iov_iter primitives - copy_from_iter_full() and
    friends. Either copy the full requested amount, advance the iterator
    and return true, or fail, return false and do _not_ advance the
    iterator. Quite a few open-coded callers converted (and became more
    readable and harder to fuck up that way) (work.iov_iter)

    - several assorted patches, the big one being logfs removal

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    logfs: remove from tree
    vfs: fix put_compat_statfs64() does not handle errors
    namei: fold should_follow_link() with the step into not-followed link
    namei: pass both WALK_GET and WALK_MORE to should_follow_link()
    namei: invert WALK_PUT logics
    namei: shift interpretation of LOOKUP_FOLLOW inside should_follow_link()
    namei: saner calling conventions for mountpoint_last()
    namei.c: get rid of user_path_parent()
    switch getfrag callbacks to ..._full() primitives
    make skb_add_data,{_nocache}() and skb_copy_to_page_nocache() advance only on success
    [iov_iter] new primitives - copy_from_iter_full() and friends
    don't open-code file_inode()
    ceph: switch to use of ->d_init()
    ceph: unify dentry_operations instances
    lustre: switch to use of ->d_init()

    Linus Torvalds
     

06 Dec, 2016

1 commit

  • copy_from_iter_full(), copy_from_iter_full_nocache() and
    csum_and_copy_from_iter_full() - counterparts of copy_from_iter()
    et.al., advancing iterator only in case of successful full copy
    and returning whether it had been successful or not.

    Convert some obvious users. *NOTE* - do not blindly assume that
    something is a good candidate for those unless you are sure that
    not advancing iov_iter in failure case is the right thing in
    this case. Anything that does short read/short write kind of
    stuff (or is in a loop, etc.) is unlikely to be a good one.

    Signed-off-by: Al Viro

    Al Viro
     

04 Dec, 2016

1 commit

  • Couple conflicts resolved here:

    1) In the MACB driver, a bug fix to properly initialize the
    RX tail pointer properly overlapped with some changes
    to support variable sized rings.

    2) In XGBE we had a "CONFIG_PM" --> "CONFIG_PM_SLEEP" fix
    overlapping with a reorganization of the driver to support
    ACPI, OF, as well as PCI variants of the chip.

    3) In 'net' we had several probe error path bug fixes to the
    stmmac driver, meanwhile a lot of this code was cleaned up
    and reorganized in 'net-next'.

    4) The cls_flower classifier obtained a helper function in
    'net-next' called __fl_delete() and this overlapped with
    Daniel Borkamann's bug fix to use RCU for object destruction
    in 'net'. It also overlapped with Jiri's change to guard
    the rhashtable_remove_fast() call with a check against
    tc_skip_sw().

    5) In mlx4, a revert bug fix in 'net' overlapped with some
    unrelated changes in 'net-next'.

    6) In geneve, a stale header pointer after pskb_expand_head()
    bug fix in 'net' overlapped with a large reorganization of
    the same code in 'net-next'. Since the 'net-next' code no
    longer had the bug in question, there was nothing to do
    other than to simply take the 'net-next' hunks.

    Signed-off-by: David S. Miller

    David S. Miller
     

01 Dec, 2016

2 commits

  • We trigger uarg->callback() immediately after we decide do datacopy
    even if caller want to do zerocopy. This will cause the callback
    (vhost_net_zerocopy_callback) decrease the refcount. But when we meet
    an error afterwards, the error handling in vhost handle_tx() will try
    to decrease it again. This is wrong and fix this by delay the
    uarg->callback() until we're sure there's no errors.

    Signed-off-by: Jason Wang
    Acked-by: Michael S. Tsirkin
    Signed-off-by: David S. Miller

    Jason Wang
     
  • This patch replaces printk() with netdev_err() for macvtap device.

    Signed-off-by: Zhang Shengju
    Acked-by: Jason Wang
    Signed-off-by: David S. Miller

    Zhang Shengju
     

28 Nov, 2016

1 commit


19 Nov, 2016

1 commit


12 Aug, 2016

1 commit

  • We've clean skb_array in macvtap_put_queue() but still try to pop from
    it during macvtap_sock_destruct(). Fix this use after free by moving
    the skb array cleanup to macvtap_sock_destruct() instead.

    Fixes: 362899b8725b ("macvtap: switch to use skb array")
    Reported-by: Cornelia Huck
    Tested-by: Cornelia Huck
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     

19 Jul, 2016

1 commit


16 Jul, 2016

2 commits

  • This patch switch to use skb array instead of sk_receive_queue to
    avoid spinlock contentions. Tests shows about 21% improvements for
    guest rx pps:

    Before: 1472731 pkts/s
    After: 1786289 pkts/s

    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     
  • We decide the rxq through calculating its hash which is not necessary
    if we only have one rx queue. So this patch skip this and just return
    queue 0. Test shows 22% improving on guest rx pps.

    Before: 1201504 pkts/s
    After: 1472731 pkts/s

    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     

11 Jun, 2016

1 commit


10 May, 2016

1 commit


09 May, 2016

1 commit

  • If GSO packet is segmented and its segments are properly queued,
    we call consume_skb() instead of kfree_skb() to be drop monitor
    friendly.

    Fixes: 3e4f8b7873709 ("macvtap: Perform GSO on forwarding path.")
    Signed-off-by: Eric Dumazet
    Cc: Vlad Yasevich
    Reviewed-by: Shmulik Ladkani
    Signed-off-by: David S. Miller

    Eric Dumazet
     

07 May, 2016

1 commit

  • When creating macvtaps that are expected to have the same ifindex
    in different network namespaces, only the first one will succeed.
    The others will fail with a sysfs_warn_dup warning due to them trying
    to create the following sysfs link (with 'NN' the ifindex of macvtapX):

    /sys/class/macvtap/tapNN -> /sys/devices/virtual/net/macvtapX/tapNN

    This is reproducible by running the following commands:

    ip netns add ns1
    ip netns add ns2
    ip link add veth0 type veth peer name veth1
    ip link set veth0 netns ns1
    ip link set veth1 netns ns2
    ip netns exec ns1 ip l add link veth0 macvtap0 type macvtap
    ip netns exec ns2 ip l add link veth1 macvtap1 type macvtap

    The last command will fail with "RTNETLINK answers: File exists" (along
    with the kernel warning) but retrying it will work because the ifindex
    was incremented.

    The 'net' device class is isolated between network namespaces so each
    one has its own hierarchy of net devices.
    This isn't the case for the 'macvtap' device class.
    The problem occurs half-way through the netdev registration, when
    `macvtap_device_event` is called-back to create the 'tapNN' macvtap
    class device under the 'macvtapX' net class device.

    This patch adds namespace support to the 'macvtap' device class so
    that /sys/class/macvtap is no longer shared between net namespaces.

    However, making the macvtap sysfs class namespace-aware has the side
    effect of changing /sys/devices/virtual/net/macvtapX/tapNN into
    /sys/devices/virtual/net/macvtapX/macvtap/tapNN.

    This is due to Commit 24b1442 ("Driver-core: Always create class
    directories for classses that support namespaces") and the fact that
    class devices supporting namespaces are really not supposed to be placed
    directly under other class devices.

    To avoid breaking userland, a tapNN symlink pointing to macvtap/tapNN is
    created inside the macvtapX directory.

    Signed-off-by: Marc Angel
    Signed-off-by: David S. Miller

    Marc Angel
     

27 Apr, 2016

1 commit

  • macvtap_device_event(NETDEV_UNREGISTER) should check vlan->minor to
    determine if it is being invoked in the context of a macvtap_newlink
    that failed, for example in this code sequence:

    macvtap_newlink
    macvlan_common_newlink
    register_netdevice
    call_netdevice_notifiers(NETDEV_REGISTER, dev)
    macvtap_device_event(NETDEV_REGISTER)
    minor = 0>
    rollback_registered(dev);
    rollback_registered_many
    call_netdevice_notifiers(NETDEV_UNREGISTER, dev);
    macvtap_device_event(NETDEV_UNREGISTER)

    Signed-off-by: Francesco Ruggeri
    Acked-by: "Eric W. Biederman"
    Signed-off-by: David S. Miller

    Francesco Ruggeri
     

12 Mar, 2016

1 commit

  • The stack expects link layer headers in the skb linear section.
    Macvtap can create skbs with llheader in frags in edge cases:
    when (IFF_VNET_HDR is off or vnet_hdr.hdr_len < ETH_HLEN) and
    prepad + len > PAGE_SIZE and vnet_hdr.flags has no or bad csum.

    Add checks to ensure linear is always at least ETH_HLEN.
    At this point, len is already ensured to be >= ETH_HLEN.

    For backwards compatiblity, rounds up short vnet_hdr.hdr_len.
    This differs from tap and packet, which return an error.

    Fixes b9fb9ee07e67 ("macvtap: add GSO/csum offload support")
    Signed-off-by: Willem de Bruijn
    Signed-off-by: David S. Miller

    Willem de Bruijn
     

16 Dec, 2015

1 commit

  • The name NETIF_F_ALL_CSUM is a misnomer. This does not correspond to the
    set of features for offloading all checksums. This is a mask of the
    checksum offload related features bits. It is incorrect to set both
    NETIF_F_HW_CSUM and NETIF_F_IP_CSUM or NETIF_F_IPV6 at the same time for
    features of a device.

    This patch:
    - Changes instances of NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK (where
    NETIF_F_ALL_CSUM is being used as a mask).
    - Changes bonding, sfc/efx, ipvlan, macvlan, vlan, and team drivers to
    use NEITF_F_HW_CSUM in features list instead of NETIF_F_ALL_CSUM.

    Signed-off-by: Tom Herbert
    Signed-off-by: David S. Miller

    Tom Herbert
     

02 Dec, 2015

1 commit

  • This patch is a cleanup to make following patch easier to
    review.

    Goal is to move SOCK_ASYNC_NOSPACE and SOCK_ASYNC_WAITDATA
    from (struct socket)->flags to a (struct socket_wq)->flags
    to benefit from RCU protection in sock_wake_async()

    To ease backports, we rename both constants.

    Two new helpers, sk_set_bit(int nr, struct sock *sk)
    and sk_clear_bit(int net, struct sock *sk) are added so that
    following patch can change their implementation.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

10 Nov, 2015

1 commit

  • macvtap_do_read code calls macvtap_put_user while it might be set up
    to wait for the user. This results in the following warning:

    Jun 23 16:25:26 galen kernel: ------------[ cut here ]------------
    Jun 23 16:25:26 galen kernel: WARNING: CPU: 0 PID: 30433 at kernel/sched/core.c:
    7286 __might_sleep+0x7f/0x90()
    Jun 23 16:25:26 galen kernel: do not call blocking ops when !TASK_RUNNING; state
    =1 set at [] prepare_to_wait+0x2f/0x90
    Jun 23 16:25:26 galen kernel: CPU: 0 PID: 30433 Comm: cat Not tainted 4.1.0-rc6+
    #11
    Jun 23 16:25:26 galen kernel: Call Trace:
    Jun 23 16:25:26 galen kernel: [] dump_stack+0x4c/0x65
    Jun 23 16:25:26 galen kernel: [] warn_slowpath_common+0x8a/0xc
    0
    Jun 23 16:25:26 galen kernel: [] warn_slowpath_fmt+0x46/0x50
    Jun 23 16:25:26 galen kernel: [] ? prepare_to_wait+0x2f/0x90
    Jun 23 16:25:26 galen kernel: [] ? prepare_to_wait+0x2f/0x90
    Jun 23 16:25:26 galen kernel: [] __might_sleep+0x7f/0x90
    Jun 23 16:25:26 galen kernel: [] might_fault+0x55/0xb0
    Jun 23 16:25:26 galen kernel: [] ? trace_hardirqs_on_caller+0x fd/0x1c0
    Jun 23 16:25:26 galen kernel: [] copy_to_iter+0x7c/0x360
    Jun 23 16:25:26 galen kernel: [] macvtap_do_read+0x256/0x3d0 [macvtap]
    Jun 23 16:25:26 galen kernel: [] ? prepare_to_wait_event+0x110/0x110
    Jun 23 16:25:26 galen kernel: [] macvtap_read_iter+0x2b/0x50 [macvtap]
    Jun 23 16:25:26 galen kernel: [] __vfs_read+0xae/0xe0
    Jun 23 16:25:26 galen kernel: [] vfs_read+0x86/0x140
    Jun 23 16:25:26 galen kernel: [] SyS_read+0x49/0xb0
    Jun 23 16:25:26 galen kernel: [] system_call_fastpath+0x12/0x76
    Jun 23 16:25:26 galen kernel: ---[ end trace 22e33f67e70c0c2a ]---

    Make sure thet we call finish_wait() if we have the skb to process
    before trying to actually process it.

    Signed-off-by: Vladislav Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     

23 Oct, 2015

1 commit

  • We don't have fraglist support in TAP_FEATURES. This will lead
    software segmentation of gro skb with frag list. Fixes by having
    frag list support in TAP_FEATURES.

    With this patch single session of netperf receiving were restored from
    about 5Gb/s to about 12Gb/s on mlx4.

    Fixes a567dd6252 ("macvtap: simplify usage of tap_features")
    Cc: Vlad Yasevich
    Cc: Michael S. Tsirkin
    Signed-off-by: Jason Wang
    Signed-off-by: David S. Miller

    Jason Wang
     

21 Sep, 2015

1 commit

  • Upon TUNSETSNDBUF, macvtap reads the requested sndbuf size into
    a local variable u.
    commit 39ec7de7092b ("macvtap: fix uninitialized access on
    TUNSETIFF") changed its type to u16 (which is the right thing to
    do for all other macvtap ioctls), breaking all values > 64k.

    The value of TUNSETSNDBUF is actually a signed 32 bit integer, so
    the right thing to do is to read it into an int.

    Cc: David S. Miller
    Fixes: 39ec7de7092b ("macvtap: fix uninitialized access on TUNSETIFF")
    Reported-by: Mark A. Peloquin
    Bisected-by: Matthew Rosato
    Reported-by: Christian Borntraeger
    Signed-off-by: Michael S. Tsirkin
    Tested-by: Matthew Rosato
    Acked-by: Christian Borntraeger
    Signed-off-by: David S. Miller

    Michael S. Tsirkin
     

28 Jul, 2015

1 commit

  • Network header is set with offset ETH_HLEN but it is not true for VLAN
    (multiple-)tagged and results in checksum issues in lower devices.

    v2: leave skb->protocol untouched (thx Vlad), comment added
    v3: moved after skb_probe_transport_header() call (thx Toshiaki)

    Signed-off-by: Ivan Vecera
    Signed-off-by: David S. Miller

    Ivan Vecera
     

14 Jul, 2015

1 commit

  • Pull networking fixes from David Miller:

    1) Missing list head init in bluetooth hidp session creation, from Tedd
    Ho-Jeong An.

    2) Don't leak SKB in bridge netfilter error paths, from Florian
    Westphal.

    3) ipv6 netdevice private leak in netfilter bridging, fixed by Julien
    Grall.

    4) Fix regression in IP over hamradio bpq encapsulation, from Ralf
    Baechle.

    5) Fix race between rhashtable resize events and table walks, from Phil
    Sutter.

    6) Missing validation of IFLA_VF_INFO netlink attributes, fix from
    Daniel Borkmann.

    7) Missing security layer socket state initialization in tipc code,
    from Stephen Smalley.

    8) Fix shared IRQ handling in boomerang 3c59x interrupt handler, from
    Denys Vlasenko.

    9) Missing minor_idr destroy on module unload on macvtap driver, from
    Johannes Thumshirn.

    10) Various pktgen kernel thread races, from Oleg Nesterov.

    11) Fix races that can cause packets to be processed in the backlog even
    after a device attached to that SKB has been fully unregistered.
    From Julian Anastasov.

    12) bcmgenet driver doesn't account packet drops vs. errors properly,
    fix from Petri Gynther.

    13) Array index validation and off by one fix in DSA layer from Florian
    Fainelli

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (66 commits)
    can: replace timestamp as unique skb attribute
    ARM: dts: dra7x-evm: Prevent glitch on DCAN1 pinmux
    can: c_can: Fix default pinmux glitch at init
    can: rcar_can: unify error messages
    can: rcar_can: print request_irq() error code
    can: rcar_can: fix typo in error message
    can: rcar_can: print signed IRQ #
    can: rcar_can: fix IRQ check
    net: dsa: Fix off-by-one in switch address parsing
    net: dsa: Test array index before use
    net: switchdev: don't abort unsupported operations
    net: bcmgenet: fix accounting of packet drops vs errors
    cdc_ncm: update specs URL
    Doc: z8530book: Fix typo in API-z8530-sync-txdma-open.html
    net: inet_diag: always export IPV6_V6ONLY sockopt for listening sockets
    bridge: mdb: allow the user to delete mdb entry if there's a querier
    net: call rcu_read_lock early in process_backlog
    net: do not process device backlog during unregistration
    bridge: fix potential crash in __netdev_pick_tx()
    net: axienet: Fix devm_ioremap_resource return value check
    ...

    Linus Torvalds
     

09 Jul, 2015

1 commit

  • Destroy minor_idr on module_exit, reclaiming the allocated memory.

    This was detected by the following semantic patch (written by Luis Rodriguez
    )

    @ defines_module_init @
    declarer name module_init, module_exit;
    declarer name DEFINE_IDR;
    identifier init;
    @@

    module_init(init);

    @ defines_module_exit @
    identifier exit;
    @@

    module_exit(exit);

    @ declares_idr depends on defines_module_init && defines_module_exit @
    identifier idr;
    @@

    DEFINE_IDR(idr);

    @ on_exit_calls_destroy depends on declares_idr && defines_module_exit @
    identifier declares_idr.idr, defines_module_exit.exit;
    @@

    exit(void)
    {
    ...
    idr_destroy(&idr);
    ...
    }

    @ missing_module_idr_destroy depends on declares_idr && defines_module_exit && !on_exit_calls_destroy @
    identifier declares_idr.idr, defines_module_exit.exit;
    @@

    exit(void)
    {
    ...
    +idr_destroy(&idr);
    }

    Signed-off-by: Johannes Thumshirn
    Signed-off-by: David S. Miller

    Johannes Thumshirn
     

04 Jul, 2015

1 commit

  • Pull virtio/vhost cross endian support from Michael Tsirkin:
    "I have just queued some more bugfix patches today but none fix
    regressions and none are related to these ones, so it looks like a
    good time for a merge for -rc1.

    The motivation for this is support for legacy BE guests on the new LE
    hosts. There are two redeeming properties that made me merge this:

    - It's a trivial amount of code: since we wrap host/guest accesses
    anyway, almost all of it is well hidden from drivers.

    - Sane platforms would never set flags like VHOST_CROSS_ENDIAN_LEGACY,
    and when it's clear, there's zero overhead (as some point it was
    tested by compiling with and without the patches, got the same
    stripped binary).

    Maybe we could create a Kconfig symbol to enforce the second point:
    prevent people from enabling it eg on x86. I will look into this"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio-pci: alloc only resources actually used.
    macvtap/tun: cross-endian support for little-endian hosts
    vhost: cross-endian support for legacy devices
    virtio: add explicit big-endian support to memory accessors
    vhost: introduce vhost_is_little_endian() helper
    vringh: introduce vringh_is_little_endian() helper
    macvtap: introduce macvtap_is_little_endian() helper
    tun: add tun_is_little_endian() helper
    virtio: introduce virtio_is_little_endian() helper

    Linus Torvalds
     

23 Jun, 2015

1 commit

  • Macvtap should be compatible with tuntap for
    maximum number of queues.

    commit 'baf71c5c1f80d82e92924050a60b5baaf97e3094 (tuntap:
    Increase the number of queues in tun.)' removes
    the limitations and increases number of queues in tuntap.
    Now, Its safe to increase number of queues in Macvtap as well.

    This patch also modifies 'macvtap_del_queues' function
    to avoid extra memory allocation in stack.

    Changes from v1->v2 :
    Michael S. Tsirkin, Jason Wang :
    Better way to use linked list to
    avoid use of extra memory in stack.
    Sergei Shtylyov : Specify dependent commit's summary.

    Signed-off-by: Pankaj Gupta
    Signed-off-by: David S. Miller

    Pankaj Gupta
     

01 Jun, 2015

3 commits

  • The VNET_LE flag was introduced to fix accesses to virtio 1.0 headers
    that are always little-endian. It can also be used to handle the special
    case of a legacy little-endian device implemented by a big-endian host.

    Let's add a flag and ioctls for big-endian devices as well. If both flags
    are set, little-endian wins.

    Since this is isn't a common usecase, the feature is controlled by a kernel
    config option (not set by default).

    Both macvtap and tun are covered by this patch since they share the same
    API with userland.

    Signed-off-by: Greg Kurz

    Signed-off-by: Michael S. Tsirkin
    Reviewed-by: David Gibson

    Greg Kurz
     
  • The current memory accessors logic is:
    - little endian if little_endian
    - native endian (i.e. no byteswap) if !little_endian

    If we want to fully support cross-endian vhost, we also need to be
    able to convert to big endian.

    Instead of changing the little_endian argument to some 3-value enum, this
    patch changes the logic to:
    - little endian if little_endian
    - big endian if !little_endian

    The native endian case is handled by all users with a trivial helper. This
    patch doesn't change any functionality, nor it does add overhead.

    Signed-off-by: Greg Kurz

    Signed-off-by: Michael S. Tsirkin
    Reviewed-by: Cornelia Huck
    Reviewed-by: David Gibson

    Greg Kurz
     
  • Signed-off-by: Greg Kurz

    Signed-off-by: Michael S. Tsirkin
    Acked-by: Cornelia Huck
    Reviewed-by: David Gibson

    Greg Kurz
     

14 May, 2015

1 commit


13 May, 2015

1 commit

  • The macvtap driver tries to emulate all the ioctls supported by a normal
    tun/tap driver, however it was missing the generic SIOCGIFHWADDR and
    SIOCSIFHWADDR ioctls to get and set the mac address that are supported
    by tun/tap. This patch adds these.

    Signed-off-by: Justin Cormack
    Signed-off-by: David S. Miller

    Justin Cormack