27 Mar, 2014

23 commits

  • Signed-off-by: Manfred Rudigier
    Signed-off-by: Christian Riesch
    Acked-by: Richard Cochran
    Signed-off-by: David S. Miller

    Manfred Rudigier
     
  • Ding Tianhong says:

    ====================
    bonding: support QinQ for bond arp interval

    v1->v2: remvoe the comment "TODO: QinQ?".
    convert pr_xxx() to pr_xxx_ratelimited() for arp interval.

    v2->v3: remove the unnecessary log for arp interval and add net ratelimit to
    avoid spam log.

    v3->v4: Add ratelimit for debugging is not a good idea, it will miss some message
    if the user turns the debugging on, so don't add ratelimited on debugging.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Remove the unnecessary log and add net_ratelimit to the others, in order to
    avoid spam the log.

    Cc: Joe Perches
    Cc: Jay Vosburgh
    Cc: Veaceslav Falico
    Cc: Andy Gospodarek
    Signed-off-by: Ding Tianhong
    Signed-off-by: David S. Miller

    dingtianhong
     
  • The bond send arp request to indicate that the slave is active, and if the bond dev
    is a vlan dev, it will set the vlan tag in skb to notice the vlan group, but the
    bond could only send a skb with 802.1q proto, not support for QinQ.

    So add outer tag for lower vlan tag and inner tag for upper vlan tag to support QinQ,
    The new skb will be consist of two vlan tag just like this:

    dst mac | src mac | outer vlan tag | inner vlan tag | data | .....

    If We don't need QinQ, the inner vlan tag could be set to 0 and use outer vlan tag
    as a normal vlan group.

    Using "ip link" to configure the bond for QinQ and add test log:

    ip link add link bond0 bond0.20 type vlan proto 802.1ad id 20
    ip link add link bond0.20 bond0.20.200 type vlan proto 802.1q id 200

    ifconfig bond0.20 11.11.20.36/24
    ifconfig bond0.20.200 11.11.200.36/24

    echo +11.11.200.37 > /sys/class/net/bond0/bonding/arp_ip_target

    90:e2:ba:07:4a:5c (oui Unknown) > Broadcast, ethertype 802.1Q-QinQ (0x88a8),length 50: vlan 20, p 0,ethertype 802.1Q, vlan 200, p 0, ethertype ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 11.11.200.37 tell 11.11.200.36, length 28

    90:e2:ba:06:f9:86 (oui Unknown) > 90:e2:ba:07:4a:5c (oui Unknown), ethertype 802.1Q-QinQ (0x88a8), length 50: vlan 20, p 0, ethertype 802.1Q, vlan 200, p 0, ethertype ARP, Ethernet (len 6), IPv4 (len 4), Reply 11.11.200.37 is-at 90:e2:ba:06:f9:86 (oui Unknown), length 28

    v1->v2: remove the comment "TODO: QinQ?".

    Cc: Jay Vosburgh
    Cc: Veaceslav Falico
    Cc: Andy Gospodarek
    Signed-off-by: Ding Tianhong
    Signed-off-by: David S. Miller

    dingtianhong
     
  • The vlan support 2 proto: 802.1q and 802.1ad, so make a new function
    called vlan_dev_vlan_proto() which could return the vlan proto for
    input dev.

    Signed-off-by: Ding Tianhong
    Signed-off-by: David S. Miller

    dingtianhong
     
  • Ding Tianhong says:

    ====================
    bonding: slight optimization and avoid spam for bond xmit path

    v1->v2: Add ratelimit for debugging is not a good idea, it will miss some message
    if the user turns the debugging on, so remove the patch 3.
    use net_err_ratelimited instead of pr_err_ratelimited and use __func__ instead of
    bond_xmit_broadcast().
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • It may spam if the system is out of the memory, add ratelimit for it.

    Signed-off-by: Ding Tianhong
    Signed-off-by: David S. Miller

    dingtianhong
     
  • Add unlikely() micro to the unlikely conditions in the bond
    xmit path for slight optimization.

    Signed-off-by: Ding Tianhong
    Signed-off-by: David S. Miller

    dingtianhong
     
  • Ian made some late comments about the grant mapping series, I incorporated the
    functional outcomes into this patch:

    - use callback_param macro to shorten access to pending_tx_info in
    xenvif_fill_frags() and xenvif_tx_submit()
    - print an error message in xenvif_idx_unmap() before panic

    Signed-off-by: Zoltan Kiss
    Signed-off-by: David S. Miller

    Zoltan Kiss
     
  • Ian made some late comments about the grant mapping series, I incorporated the
    non-functional outcomes into this patch:

    - typo fixes in a comment of xenvif_free(), and add another one there as well
    - typo fix for comment of rx_drain_timeout_msecs
    - remove stale comment before calling xenvif_grant_handle_reset()

    Signed-off-by: Zoltan Kiss
    Signed-off-by: David S. Miller

    Zoltan Kiss
     
  • Since the early days TX stops if there isn't enough free pending slots to
    consume a maximum sized (slot-wise) packet. Probably the reason for that is to
    avoid the case when we don't have enough free pending slot in the ring to finish
    the packet. But if we make sure that the pending ring has the same size as the
    shared ring, that shouldn't really happen. The frontend can only post packets
    which fit the to the free space of the shared ring. If it doesn't, the frontend
    has to stop, as it can only increase the req_prod when the whole packet fits
    onto the ring.
    This patch avoid using this checking, makes sure the 2 ring has the same size,
    and remove a checking from the callback. As now we don't stop the NAPI instance
    on this condition, we don't have to wake it up if we free pending slots up.

    Signed-off-by: Zoltan Kiss
    Signed-off-by: David S. Miller

    Zoltan Kiss
     
  • Florian Fainelli says:

    ====================
    net: phy: bcm7xxx: workaround updates

    This patch updates the BCM7xxx internal PHY workaround, this time with
    defines for the registers we are touching.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The AFE_RX_LP_COUNTER kept the last 3 bits set, which would not properly
    clear the EEE LPI mode errors bits. Make sure that those bits are set to
    0 to ensure the PHY timing is always good even during EEE wake-up.

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

    Florian Fainelli
     
  • Writing first to the AFE registers, and then the VCO, RCAL, RC_CAL
    registers turned out to unveil some spurious MDIO read/write failures
    which would make the workaround partially applied. The fix is to write
    first to the VCO, RCAL, RC_CAL registers, and then write to the AFE
    registers.

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

    Florian Fainelli
     
  • Define constants for the various registers used in
    bcm7xxx_28nm_afe_config_init() to help clarify what this workaround is
    about.

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

    Florian Fainelli
     
  • The packet hash can be considered a property of the packet, not just
    on RX path.

    This patch changes name of rxhash and l4_rxhash skbuff fields to be
    hash and l4_hash respectively. This includes changing uses of the
    field in the code which don't call the access functions.

    Signed-off-by: Tom Herbert
    Signed-off-by: Eric Dumazet
    Cc: Mahesh Bandewar
    Signed-off-by: David S. Miller

    Tom Herbert
     
  • Casting a pointer to a pointer of the same type is pointless,
    so remove these unnecessary casts.

    Done via coccinelle script:

    $ cat typecast_2.cocci
    @@
    type T;
    T *foo;
    @@

    - (T *)foo
    + foo

    Signed-off-by: Joe Perches
    Acked-by: Shahed Shaikh
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Casting a pointer to a pointer of the same type is pointless,
    so remove these unnecessary casts.

    Done via coccinelle script:

    $ cat typecast_2.cocci
    @@
    type T;
    T *foo;
    @@

    - (T *)foo
    + foo

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

    Joe Perches
     
  • Casting a pointer to a pointer of the same type is pointless,
    so remove these unnecessary casts.

    Done via coccinelle script:

    $ cat typecast_2.cocci
    @@
    type T;
    T *foo;
    @@

    - (T *)foo
    + foo

    Signed-off-by: Joe Perches
    Acked-by: Vince Bridgers
    Signed-off-by: David S. Miller

    Joe Perches
     
  • Using addressof then casting to the original type is pointless,
    so remove these unnecessary casts.

    Done via coccinelle script:

    $ cat typecast.cocci
    @@
    type T;
    T foo;
    @@

    - (T *)&foo
    + &foo

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

    Joe Perches
     
  • Having the kernel to print:

    "smsc911x: Driver version 2008-10-21" on every boot is not very useful, so
    remove the print of the driver version.

    Signed-off-by: Fabio Estevam
    Signed-off-by: David S. Miller

    Fabio Estevam
     
  • With debug enabled we get the following message:

    smsc911x smsc911x (unregistered net_device): couldn't get clock -2

    As the device has not been registered at this point, it is better to use
    dev_dbg() instead of netdev_dbg().

    CC: Sergei Shtylyov

    Suggested-by: Sergei Shtylyov
    Signed-off-by: Fabio Estevam
    Signed-off-by: David S. Miller

    Fabio Estevam
     
  • After commit d4589926d7a9 (tcp: refine TSO splits), tcp_nagle_check() does
    not use parameter mss_now anymore.

    Signed-off-by: Weiping Pan
    Signed-off-by: David S. Miller

    Peter Pan(潘卫平)
     

26 Mar, 2014

16 commits

  • Yuval Mintz says:

    ====================
    bnx2x: SR-IOV patch series

    (With the exception of the first patch) This series contains IOV-related
    patches, where the main changes are related to the driver's IOV-support
    backbone - it adds a new workqueue for IOV related tasks and removes the vfop
    mechanism from the driver.

    Please consider applying this series to `net-next'.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Currently, if a VF's Rx Mode will be configured to support promiscuous mode
    the PF will comply, causing the VF to actually become promiscuous.
    This will enable the VF to see all unicast traffic which might be intended for
    other VMs, which we believe should not be possible.

    This patch will cause the hypervisor to ignore the VF's request for changes in
    its Rx mode (other than disabling it), preventing it from becoming promiscuous.

    Reported-by: Yoann Juet
    Signed-off-by: Yuval Mintz
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • VFs are currently showing port statistics, although they can't really access
    those - thus all such statistics will always show a value of 0.

    This patch removes said statistics from the VF's view as to not confuse the
    user.

    Signed-off-by: Yuval Mintz
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • Since we now posses a workqueue dedicated for sriov, the paradigm that sriov-
    related tasks cannot sleep is no longer correct.

    The VFOP mechanism was the one previously supporting said paradigm - the sriov
    related tasks were broken into segments which did not require sleep, and the
    mechanism re-scheduled the next segment whenever possible.

    This patch remvoes the VFOP mechanism altogether - the resulting code is a much
    easier to follow code; The segments are gathered into straight-forward
    functions which sleep whenever neccessary.

    Signed-off-by: Yuval Mintz
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • The bnx2x sriov mechanisms were done in the bnx2x slowpath workitem which
    runs on the bnx2x's workqueue; This workitem is also responsible for the bottom
    half of interrupt handling in the driver, and specifically it also receives
    FW notifications of ramrod completions, allowing other flows to progress.

    The original design of the sriov reltaed-flows was based on the notion such
    flows must not sleep, since their context is the slowpath workitem.
    Otherwise, we might reach timeouts - those flows may wait for ramrod completion
    that will never arrive as the workitem wlll not be re-scheduled until that same
    flow will be over.

    In more recent time bnx2x started supporting features in which the VF interface
    can be configured by the tools accessing the PF on the hypervisor.
    This support created possible races on the VF-PF lock (which is taken either
    when the PF is handling a VF message or when the PF is doing some slowpath work
    on behalf of the VF) which may cause timeouts on the VF side and lags on the PF
    side.

    This patch changes the scheme - it creates a new workqueue for sriov related
    tasks and moves all handling currently done in the slowpath task into the the
    new workqueue.

    Signed-off-by: Yuval Mintz
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • This adds support in a new management feature which needs the driver versions
    (bnx2x, bnx2fc and bnx2i) loaded for each interface.

    Signed-off-by: Yuval Mintz
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • The module is about to go away. Make sure everything is stopped safely
    before we pull the plug.

    Signed-off-by: Thomas Gleixner
    Cc: Chas Williams
    Cc: atm
    Cc: netdev
    Signed-off-by: David S. Miller

    Thomas Gleixner
     
  • The device is about to vanish. So we need to make sure that the timer
    is completely stopped and the callback is not running on another CPU.

    Signed-off-by: Thomas Gleixner
    Cc: Chas Williams
    Cc: atm
    Cc: netdev
    Signed-off-by: David S. Miller

    Thomas Gleixner
     
  • The code which is dealing with SRIOV alias GUIDs in the mlx4 IB driver has some
    logic which operated according to the maximal possible active functions (PF + VFs).

    After the single port VFs code integration this resulted in a flow of false-positive
    warnings going to the kernel log after the PF driver started the alias GUID work.

    Fix it by referring to the actual number of functions.

    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     
  • Conflicts:
    Documentation/devicetree/bindings/net/micrel-ks8851.txt
    net/core/netpoll.c

    The net/core/netpoll.c conflict is a bug fix in 'net' happening
    to code which is completely removed in 'net-next'.

    In micrel-ks8851.txt we simply have overlapping changes.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • John W. Linville says:

    ====================
    Please pull this batch of wireless updates intended for 3.15!

    For the mac80211 bits, Johannes says:

    "This has a whole bunch of bugfixes for things that went into -next
    previously as well as some other bugfixes I didn't want to rush into
    3.14 at this point. The rest of it is some cleanups and a few small
    features, the biggest of which is probably Janusz's regulatory DFS CAC
    time code."

    For the Bluetooth bits, Gustavo says:

    "One more pull request to 3.15. This is mostly and bug fix pull request, it
    contains several fixes and clean up all over the tree, plus some small new
    features."

    For the NFC bits, Samuel says:

    "This is the NFC pull request for 3.15. With this one we have:

    - Support for ISO 15693 a.k.a. NFC vicinity a.k.a. Type 5 tags. ISO
    15693 are long range (1 - 2 meters) vicinity tags/cards. The kernel
    now supports those through the NFC netlink and digital APIs.

    - Support for TI's trf7970a chipset. This chipset relies on the NFC
    digital layer and the driver currently supports type 2, 4A and 5 tags.

    - Support for NXP's pn544 secure firmare download. The pn544 C3 chipsets
    relies on a different firmware download protocal than the C2 one. We
    now support both and use the right one depending on the version we
    detect at runtime.

    - Support for 4A tags from the NFC digital layer.

    - A bunch of cleanups and minor fixes from Axel Lin and Thierry Escande."

    For the iwlwifi bits, Emmanuel says:

    "We were sending a host command while the mutex wasn't held. This
    led to hard-to-catch races."

    And...

    "I have a fix for a "merge damage" which is not really a merge
    damage: it enables scheduled scan which has been disabled in
    wireless.git. Since you merged wireless.git into wireless-next.git,
    this can now be fixed in wireless-next.git.

    Besides this, Alex made a workaround for a hardware bug. This fix
    allows us to consume less power in S3. Arik and Eliad continue to
    work on D0i3 which is a run-time power saving feature. Eliad also
    contributes a few bits to the rate scaling logic to which Eyal adds his
    own contribution. Avri dives deep in the power code - newer firmware
    will allow to enable power save in newer scenarios. Johannes made a few
    clean-ups. I have the regular amount of BT Coex boring stuff. I disable
    uAPSD since we identified firmware bugs that cause packet loss. One
    thing that do stand out is the udev event that we now send when the
    FW asserts. I hope it will allow us to debug the FW more easily."

    Also included is one last iwlwifi pull for a build breakage fix...

    For the Atheros bits, Kalle says:

    "Michal now did some optimisations and was able to improve throughput by
    100 Mbps on our MIPS based AP135 platform. Chun-Yeow added some
    workarounds to be able to better use ad-hoc mode. Ben improved log
    messages and added support for MSDU chaining. And, as usual, also some
    smaller fixes."

    Beyond that...

    Andrea Merello continues his rtl8180 refactoring, in preparation for
    a long-awaited rtl8187 driver. We get a new driver (rsi) for the
    RS9113 chip, from Fariya Fatima. And, of course, we get the usual
    round of updates for ath9k, brcmfmac, mwifiex, wil6210, etc. as well.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This fixes:

    drivers/net/xen-netback/netback.c: In function ‘xenvif_tx_dealloc_action’:
    drivers/net/xen-netback/netback.c:1573:8: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘long int’ [-Wformat=]

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This reverts commit e9275f5e2df1b2098a8cc405d87b88b9affd73e6. This commit is the
    last in the netback grant mapping series, and it tries to do more aggressive
    aggreagtion of unmap operations. However practical use showed almost no
    positive effect, whilst with certain frontends it causes significant performance
    regression.

    Signed-off-by: Zoltan Kiss
    Acked-by: Ian Campbell
    Signed-off-by: David S. Miller

    Zoltan Kiss
     
  • Eric W. Biederman says:

    ====================
    Using dev_kfree/consume_skb_any for functions called in multiple contexts

    These changes are a result of walking through the network drivers
    supporting netpoll and verifying the code paths that netpoll can cause
    to be called in hard irq context use an appropriate flavor of
    kfree_skb. Either dev_kfree_skb_any or dev_consume_skb_any.

    Since my last pass at this I have become aware of the small differences
    between dev_kfree_skb_any and dev_consume_skb_any.
    net/core/drop_monitor.c reports the dev_kfree_skb_any as a drop and
    while being quite about the second. With the weird twist that
    dev_kfree_skb is unintuitively consume_skb.

    As netpoll now calls the napi poll function with budget == 0, pieces of
    a drivers the napi poll function that don't run when budget == 0 have
    been ignored.

    The most interesting change is to the atl1c which tried unsuccesfully to
    tell one of it's functions which context it is called in so that it
    could call dev_kfree_skb_irq or dev_kfree_skb as appropriate. I have
    just removed the extra parameter and called dev_consume_skb_any.

    At 54 separate changes I will post each change as a separate patch (so
    they can be reviewed) but for general sanity sake I have gathered them
    all into a git branch for easy acces.
    ====================

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

    David S. Miller
     
  • Pull nfsd fix frm Bruce Fields:
    "J R Okajima sent this early and I was just slow to pass it along,
    apologies. Fortunately it's a simple fix"

    * 'nfsd-next' of git://linux-nfs.org/~bfields/linux:
    nfsd: fix lost nfserrno() call in nfsd_setattr()

    Linus Torvalds
     
  • Pull vfs fixes from Al Viro:
    "These four commits are obvious fixes (a couple of fdget_pos()-related
    ones from Eric Biggers, prepend_name() fix, missing checks for false
    negatives from __lookup_mnt() in fs/namei.c)"

    For now I'm pulling just the four obvious fixes, there's another four
    pending in Al's 'for-linus' branch wrt the mnt_hash list that were more
    involved.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    rcuwalk: recheck mount_lock after mountpoint crossing attempts
    make prepend_name() work correctly when called with negative *buflen
    vfs: Don't let __fdget_pos() get FMODE_PATH files
    vfs: atomic f_pos access in llseek()

    Linus Torvalds
     

25 Mar, 2014

1 commit

  • Replace kfree_skb with dev_kfree_skb_any in vlan_insert_tag as
    vlan_insert_tag can be called from hard irq context (netpoll)
    and from other contexts.

    dev_kfree_skb_any is used as vlan_insert_tag only frees the skb if the
    skb can not be modified to insert a tag, in which case vlan_insert_tag
    drops the skb.

    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman