04 Mar, 2015

26 commits

  • Conflicts:
    drivers/net/ethernet/rocker/rocker.c

    The rocker commit was two overlapping changes, one to rename
    the ->vport member to ->pport, and another making the bitmask
    expression use '1ULL' instead of plain '1'.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Jeff Kirsher says:

    ====================
    Intel Wired LAN Driver Updates 2015-03-03

    This series contains updates to fm10k, i40e and i40evf.

    Matthew updates the fm10k driver by cleaning up code comments and whitespace
    issues. Also modifies the tunnel length header check, to make it more robust
    by calculating the inner L4 header length based on whether it is TCP or UDP.
    Implemented ndo_features_check() that allows drivers to report their offload
    capabilities per-skb.

    Neerav updates the i40e driver to skip over priority tagging if DCB is not
    enabled. Fixes an issue where the driver is not flushing out the
    DCBNL app table for applications that are not present in the local DCBX
    application configuration TLVs. Fixed i40e where, in the case of MFP
    mode, the driver was returning the incorrect number of traffic classes
    for partitions that are not enabled for iSCSI. Even though the driver
    was not configuring these traffic classes in the transmit scheduler for
    the NIC partitions, it does use this map to setup the queue mappings.

    Shannon updates i40e/i40evf to include the firmware build number in the
    formatted firmware version string.

    Akeem adds a safety net (by adding a 'default' case) for the possible
    unmatched switch calls.

    Mitch updates i40e to not automatically disable PF loopback at runtime,
    now that we have the functionality to enable and disable PF loopback. This
    fix cleans up a bogus error message when removing the PF module with VFs
    enabled. Adds a extra check to make sure that the indirection table
    pointer is valid before dereferencing it.

    Anjali enables i40e to enable more than the max RSS qps when running in a
    single TC mode for the main VSI. It is possible to enable as many as
    num_online_cpus(). Adds a firmware check to ensure that DCB is disabled for
    firmware versions older than 4.33. Updates i40e/i40evf to add missing
    packet types for VXLAN offload. Updated i40e to be able to handle varying
    RSS table size for each VSI, since all VSI's do not have the same RSS table
    size.

    v2: Dropped previous patch #9 "i40e/i40evf: Add capability to gather VEB
    per TC stats" since the stats should be in ethtool and not debugfs.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull nfsd fixes from Bruce Fields:
    "Three miscellaneous bugfixes, most importantly the clp->cl_revoked
    bug, which we've seen several reports of people hitting"

    * 'for-4.0' of git://linux-nfs.org/~bfields/linux:
    sunrpc: integer underflow in rsc_parse()
    nfsd: fix clp->cl_revoked list deletion causing softlock in nfsd
    svcrpc: fix memory leak in gssp_accept_sec_context_upcall

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) If an IPVS tunnel is created with a mixed-family destination
    address, it cannot be removed. Fix from Alexey Andriyanov.

    2) Fix module refcount underflow in netfilter's nft_compat, from Pablo
    Neira Ayuso.

    3) Generic statistics infrastructure can reference variables sitting on
    a released function stack, therefore use dynamic allocation always.
    Fix from Ignacy Gawędzki.

    4) skb_copy_bits() return value test is inverted in ip_check_defrag().

    5) Fix network namespace exit in openvswitch, we have to release all of
    the per-net vports. From Pravin B Shelar.

    6) Fix signedness bug in CAIF's cfpkt_iterate(), from Dan Carpenter.

    7) Fix rhashtable grow/shrink behavior, only expand during inserts and
    shrink during deletes. From Daniel Borkmann.

    8) Netdevice names with semicolons should never be allowed, because
    they serve as a separator. From Matthew Thode.

    9) Use {,__}set_current_state() where appropriate, from Fabian
    Frederick.

    10) Revert byte queue limits support in r8169 driver, it's causing
    regressions we can't figure out.

    11) tcp_should_expand_sndbuf() erroneously uses tp->packets_out to
    measure packets in flight, properly use tcp_packets_in_flight()
    instead. From Neal Cardwell.

    12) Fix accidental removal of support for bluetooth in CSR based Intel
    wireless cards. From Marcel Holtmann.

    13) We accidently added a behavioral change between native and compat
    tasks, wrt testing the MSG_CMSG_COMPAT bit. Just ignore it if the
    user happened to set it in a native binary as that was always the
    behavior we had. From Catalin Marinas.

    14) Check genlmsg_unicast() return valud in hwsim netlink tx frame
    handling, from Bob Copeland.

    15) Fix stale ->radar_required setting in mac80211 that can prevent
    starting new scans, from Eliad Peller.

    16) Fix memory leak in nl80211 monitor, from Johannes Berg.

    17) Fix race in TX index handling in xen-netback, from David Vrabel.

    18) Don't enable interrupts in amx-xgbe driver until all software et al.
    state is ready for the interrupt handler to run. From Thomas
    Lendacky.

    19) Add missing netlink_ns_capable() checks to rtnl_newlink(), from Eric
    W Biederman.

    20) The amount of header space needed in macvtap was not calculated
    properly, fix it otherwise we splat past the beginning of the
    packet. From Eric Dumazet.

    21) Fix bcmgenet TCP TX perf regression, from Jaedon Shin.

    22) Don't raw initialize or mod timers, use setup_timer() and
    mod_timer() instead. From Vaishali Thakkar.

    23) Fix software maintained statistics in bcmgenet and systemport
    drivers, from Florian Fainelli.

    24) DMA descriptor updates in sh_eth need proper memory barriers, from
    Ben Hutchings.

    25) Don't do UDP Fragmentation Offload on RAW sockets, from Michal
    Kubecek.

    26) Openvswitch's non-masked set actions aren't constructed properly
    into netlink messages, fix from Joe Stringer.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (116 commits)
    openvswitch: Fix serialization of non-masked set actions.
    gianfar: Reduce logging noise seen due to phy polling if link is down
    ibmveth: Add function to enable live MAC address changes
    net: bridge: add compile-time assert for cb struct size
    udp: only allow UFO for packets from SOCK_DGRAM sockets
    sh_eth: Really fix padding of short frames on TX
    Revert "sh_eth: Enable Rx descriptor word 0 shift for r8a7790"
    sh_eth: Fix RX recovery on R-Car in case of RX ring underrun
    sh_eth: Ensure proper ordering of descriptor active bit write/read
    net/mlx4_en: Disbale GRO for incoming loopback/selftest packets
    net/mlx4_core: Fix wrong mask and error flow for the update-qp command
    net: systemport: fix software maintained statistics
    net: bcmgenet: fix software maintained statistics
    rxrpc: don't multiply with HZ twice
    rxrpc: terminate retrans loop when sending of skb fails
    net/hsr: Fix NULL pointer dereference and refcnt bugs when deleting a HSR interface.
    net: pasemi: Use setup_timer and mod_timer
    net: stmmac: Use setup_timer and mod_timer
    net: 8390: axnet_cs: Use setup_timer and mod_timer
    net: 8390: pcnet_cs: Use setup_timer and mod_timer
    ...

    Linus Torvalds
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Acked-by: Marcel Holtmann
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Acked-by: Ian Campbell
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Miscellanea:

    Add #include

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Miscellanea:

    Add #include where appropriate
    Use ETH_ALEN instead of 6

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Module dependencies are broken in the case where CONFIG_I40E=y and
    CONFIG_CONFIGFS_FS=m. This fixes the broken dependency.

    Signed-off-by: Greg Rose
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Greg Rose
     
  • Before the ax25 stack calls dev_queue_xmit it always calls
    ax25_type_trans which sets skb->protocol to ETH_P_AX25.

    Which means that by looking at the protocol type it is possible to
    detect IP packets that have not been munged by the ax25 stack in
    ndo_start_xmit and call a function to munge them.

    Rename ax25_neigh_xmit to ax25_ip_xmit and tweak the return type and
    value to be appropriate for an ndo_start_xmit function.

    Update all of the ax25 devices to test the protocol type for ETH_P_IP
    and return ax25_ip_xmit as the first thing they do. This preserves
    the existing semantics of IP packet processing, but the timing will be
    a little different as the IP packets now pass through the qdisc layer
    before reaching the ax25 ip packet processing.

    Remove the now unnecessary ax25 neighbour table operations.

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

    Eric W. Biederman
     
  • Set actions consist of a regular OVS_KEY_ATTR_* attribute nested inside
    of a OVS_ACTION_ATTR_SET action attribute. When converting masked actions
    back to regular set actions, the inner attribute length was not changed,
    ie, double the length being serialized. This patch fixes the bug.

    Fixes: 83d2b9b ("net: openvswitch: Support masked set actions.")
    Signed-off-by: Joe Stringer
    Acked-by: Jarno Rajahalme
    Signed-off-by: David S. Miller

    Joe Stringer
     
  • Commit 6ce29b0e2a04 ("gianfar: Avoid unnecessary reg accesses in adjust_link()")
    eliminates unnecessary calls to adjust_link for phy devices which don't support
    interrupts and need polling. As part of that work, the 'new_state' local flag,
    which was used to reduce logging noise on the console, was eliminated.

    Unfortunately, that means that a 'Link is Down' log message will now be
    issued continuously if a link is configured as UP, the link state is down,
    and the associated phy requires polling. This occurs because priv->oldduplex
    is -1 in this case, which always differs from phydev->duplex. In addition,
    phydev->speed may also differ from priv->oldspeed. gfar_update_link_state()
    is therefore called each time a phy is polled, even if the link state did not
    change.

    Cc: Claudiu Manoil
    Signed-off-by: Guenter Roeck
    Reviewed-by: Claudiu Manoil
    Signed-off-by: David S. Miller

    Guenter Roeck
     
  • Add a function that will enable changing the MAC address
    of an ibmveth interface while it is still running.

    Signed-off-by: Thomas Falcon
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • WAIT_FOR_DEMON code is directly undefined at the beginning
    of signaling.c since initial git version and thus never compiled.
    This also removes buggy current->state direct access.

    Suggested-by: Chas Williams
    Signed-off-by: Fabian Frederick
    Signed-off-by: David S. Miller

    Fabian Frederick
     
  • make build fail if structure no longer fits into ->cb storage.

    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • Linus Torvalds
     
  • This is a tricky story of the new atomic state handling and the legacy
    code fighting over each another. The bug at hand is an underrun of the
    framebuffer reference with subsequent hilarity caused by the load
    detect code. Which is peculiar since the the exact same code works
    fine as the implementation of the legacy setcrtc ioctl.

    Let's look at the ingredients:

    - Currently our code is a crazy mix of legacy modeset interfaces to
    set the parameters and half-baked atomic state tracking underneath.
    While this transition is going we're using the transitional plane
    helpers to update the atomic side (drm_plane_helper_disable/update
    and friends), i.e. plane->state->fb. Since the state structure owns
    the fb those functions take care of that themselves.

    The legacy state (specifically crtc->primary->fb) is still managed
    by the old code (and mostly by the drm core), with the fb reference
    counting done by callers (core drm for the ioctl or the i915 load
    detect code). The relevant commit is

    commit ea2c67bb4affa84080c616920f3899f123786e56
    Author: Matt Roper
    Date: Tue Dec 23 10:41:52 2014 -0800

    drm/i915: Move to atomic plane helpers (v9)

    - drm_plane_helper_disable has special code to handle multiple calls
    in a row - it checks plane->crtc == NULL and bails out. This is to
    match the proper atomic implementation which needs the crtc to get
    at the implied locking context atomic updates always need. See

    commit acf24a395c5a9290189b080383564437101d411c
    Author: Daniel Vetter
    Date: Tue Jul 29 15:33:05 2014 +0200

    drm/plane-helper: transitional atomic plane helpers

    - The universal plane code split out the implicit primary plane from
    the CRTC into it's own full-blown drm_plane object. As part of that
    the setcrtc ioctl (which updated both the crtc mode and primary
    plane) learned to set crtc->primary->crtc on modeset to make sure
    the plane->crtc assignments statate up to date in

    commit e13161af80c185ecd8dc4641d0f5df58f9e3e0af
    Author: Matt Roper
    Date: Tue Apr 1 15:22:38 2014 -0700

    drm: Add drm_crtc_init_with_planes() (v2)

    Unfortunately we've forgotten to update the load detect code. Which
    wasn't a problem since the load detect modeset is temporary and
    always undone before we drop the locks.

    - Finally there is a organically grown history (i.e. don't ask) around
    who sets the legacy plane->fb for the various driver entry points.
    Originally updating that was the drivers duty, but for almost all
    places we've moved that (plus updating the refcounts) into the core.
    Again the exception is the load detect code.

    Taking all together the following happens:
    - The load detect code doesn't set crtc->primary->crtc. This is only
    really an issue on crtcs never before used or when userspace
    explicitly disabled the primary plane.

    - The plane helper glue code short-circuits because of that and leaves
    a non-NULL fb behind in plane->state->fb and plane->fb. The state
    fb isn't a real problem (it's properly refcounted on its own), it's
    just the canary.

    - Load detect code drops the reference for that fb, but doesn't set
    plane->fb = NULL. This is ok since it's still living in that old
    world where drivers had to clear the pointer but the core/callers
    handled the refcounting.

    - On the next modeset the drm core notices plane->fb and takes care of
    refcounting it properly by doing another unref. This drops the
    refcount to zero, leaving state->plane now pointing at freed memory.

    - intel_plane_duplicate_state still assume it owns a reference to that
    very state->fb and bad things start to happen.

    Fix this all by applying the same duct-tape as for the legacy setcrtc
    ioctl code and set crtc->primary->crtc properly.

    Cc: Matt Roper
    Cc: Paul Bolle
    Cc: Rob Clark
    Cc: Paulo Zanoni
    Cc: Sean Paul
    Cc: Matt Roper
    Reported-and-tested-by: Linus Torvalds
    Reported-by: Paul Bolle
    Signed-off-by: Daniel Vetter
    Signed-off-by: Linus Torvalds

    Daniel Vetter
     

03 Mar, 2015

14 commits