14 Jun, 2012

5 commits


13 Jun, 2012

15 commits

  • Conflicts:
    MAINTAINERS
    drivers/net/wireless/iwlwifi/pcie/trans.c

    The iwlwifi conflict was resolved by keeping the code added
    in 'net' that turns off the buggy chip feature.

    The MAINTAINERS conflict was merely overlapping changes, one
    change updated all the wireless web site URLs and the other
    changed some GIT trees to be Johannes's instead of John's.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • 'Get' commands should generally not require CAP_NET_ADMIN, with
    the exception of those that expose internal state.

    Signed-off-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • Add dev_loopback_xmit() in order to deduplicate functions
    ip_dev_loopback_xmit() (in net/ipv4/ip_output.c) and
    ip6_dev_loopback_xmit() (in net/ipv6/ip6_output.c).

    I was about to reinvent the wheel when I noticed that
    ip_dev_loopback_xmit() and ip6_dev_loopback_xmit() do exactly what I
    need and are not IP-only functions, but they were not available to reuse
    elsewhere.

    ip6_dev_loopback_xmit() does not have line "skb_dst_force(skb);", but I
    understand that this is harmless, and should be in dev_loopback_xmit().

    Signed-off-by: Michel Machado
    CC: "David S. Miller"
    CC: Alexey Kuznetsov
    CC: James Morris
    CC: Hideaki YOSHIFUJI
    CC: Patrick McHardy
    CC: Eric Dumazet
    CC: Jiri Pirko
    CC: "Michał Mirosław"
    CC: Ben Hutchings
    Signed-off-by: David S. Miller

    Michel Machado
     
  • Cloning all packets in input path have a significant cost.

    Use skb_header_pointer()/skb_copy_bits() instead of pskb_may_pull() so
    that recv_probe handlers (bond_3ad_lacpdu_recv / bond_arp_rcv /
    rlb_arp_recv ) dont touch input skb.

    bond_handle_frame() can avoid the skb_clone()/dev_kfree_skb()

    Signed-off-by: Eric Dumazet
    Cc: Jay Vosburgh
    Cc: Andy Gospodarek
    Cc: Jiri Bohac
    Cc: Nicolas de Pesloüan
    Cc: Maciej Żenczykowski
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The line below in intr_complete isn't needed,

    memset(urb->transfer_buffer, 0, urb->transfer_buffer_length);

    so just remove it.

    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    tom.leiming@gmail.com
     
  • Remove declaration for intr_complete so that ctags may be happy to
    decrease duplicated symbols, also decrease one line code.

    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    tom.leiming@gmail.com
     
  • The flag of EVENT_DEV_WAKING is not used any more, so just remove it.

    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    tom.leiming@gmail.com
     
  • usb_device is parent device of usb_interface in the view of driver
    model, so its reference count is always held during .probe/.disconnect
    of usb_interface instance.

    This patch just removes the unnecessay usb_get/put_dev.

    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    tom.leiming@gmail.com
     
  • usb_device is parent device of usb_interface in the view of driver
    model, so its reference count is always held during .probe/.disconnect
    of usb_interface instance.

    This patch just removes the unnecessay usb_get/put_dev.

    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    tom.leiming@gmail.com
     
  • usb_device is parent device of usb_interface in the view of driver
    model, so its reference count is always held during .probe/.disconnect
    of usb_interface instance.

    This patch just removes the unnecessay usb_get/put_dev.

    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    tom.leiming@gmail.com
     
  • In the transmit path of the bonding driver, skb->cb is used to
    stash the skb->queue_mapping so that the bonding device can set its
    own queue mapping. This value becomes corrupted since the skb->cb is
    also used in __dev_xmit_skb.

    When transmitting through bonding driver, bond_select_queue is
    called from dev_queue_xmit. In bond_select_queue the original
    skb->queue_mapping is copied into skb->cb (via bond_queue_mapping)
    and skb->queue_mapping is overwritten with the bond driver queue.

    Subsequently in dev_queue_xmit, __dev_xmit_skb is called which writes
    the packet length into skb->cb, thereby overwriting the stashed
    queue mappping. In bond_dev_queue_xmit (called from hard_start_xmit),
    the queue mapping for the skb is set to the stashed value which is now
    the skb length and hence is an invalid queue for the slave device.

    If we want to save skb->queue_mapping into skb->cb[], best place is to
    add a field in struct qdisc_skb_cb, to make sure it wont conflict with
    other layers (eg : Qdiscc, Infiniband...)

    This patchs also makes sure (struct qdisc_skb_cb)->data is aligned on 8
    bytes :

    netem qdisc for example assumes it can store an u64 in it, without
    misalignment penalty.

    Note : we only have 20 bytes left in (struct qdisc_skb_cb)->data[].
    The largest user is CHOKe and it fills it.

    Based on a previous patch from Tom Herbert.

    Signed-off-by: Eric Dumazet
    Reported-by: Tom Herbert
    Cc: John Fastabend
    Cc: Roland Dreier
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Routing of 127/8 is tradtionally forbidden, we consider
    packets from that address block martian when routing and do
    not process corresponding ARP requests.

    This is a sane default but renders a huge address space
    practically unuseable.

    The RFC states that no address within the 127/8 block should
    ever appear on any network anywhere but it does not forbid
    the use of such addresses outside of the loopback device in
    particular. For example to address a pool of virtual guests
    behind a load balancer.

    This patch adds a new interface option 'route_localnet'
    enabling routing of the 127/8 address block and processing
    of ARP requests on a specific interface.

    Note that for the feature to work, the default local route
    covering 127/8 dev lo needs to be removed.

    Example:
    $ sysctl -w net.ipv4.conf.eth0.route_localnet=1
    $ ip route del 127.0.0.0/8 dev lo table local
    $ ip addr add 127.1.0.1/16 dev eth0
    $ ip route flush cache

    V2: Fix invalid check to auto flush cache (thanks davem)

    Signed-off-by: Thomas Graf
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Thomas Graf
     
  • If we modify primary via sysfs and it is not a valid slave,
    we should record it for future use, and this behavior is the same with
    bond_check_params().

    Signed-off-by: Weiping Pan
    Acked-by: Nicolas de Pesloüan
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Weiping Pan
     
  • David S. Miller
     
  • …wireless-next into for-davem

    John W. Linville
     

12 Jun, 2012

19 commits


11 Jun, 2012

1 commit

  • We handle NULL in rt{,6}_set_peer but then our caller will try to pass
    that NULL pointer into inet_putpeer() which isn't ready for it.

    Fix this by moving the NULL check one level up, and then remove the
    now unnecessary NULL check from inetpeer_ptr_set_peer().

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

    David S. Miller