10 May, 2013

3 commits

  • Pull tile update from Chris Metcalf:
    "The interesting bug fix is support for the upcoming "4.2" release of
    the Tilera hypervisor, which by default launches Linux at privilege
    level 2 instead of 1. The fix lets new and old hypervisors and
    Linuxes interoperate more smoothly, so I've tagged it for
    stable@kernel.org so that older Linuxes will be able to boot under the
    newer hypervisor."

    * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    usb: tilegx: fix memleak when create hcd fail
    arch/tile: remove inline marking of EXPORT_SYMBOL functions
    rtc: rtc-tile: add missing platform_device_unregister() when module exit
    tile: support new Tilera hypervisor

    Linus Torvalds
     
  • Pull networking update from David Miller:

    1) Propagate return error values properly in irda, spider_net, sfc, and
    bfin_mac. From Wei Yongjun.

    2) Fix fec driver OOPS on rapid link up/down, from Frank Li.

    3) FIX VF resource allocation and chip message payload length errors in
    be2net driver, from Sathya Perla.

    4) Fix inner protocol inspection during GSO from Pravin B Shelar.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    if_cablemodem.h: Add parenthesis around ioctl macros
    gso: Handle Trans-Ether-Bridging protocol in skb_network_protocol()
    net: fec: fix kernel oops when plug/unplug cable many times
    bfin_mac: fix error return code in bfin_mac_probe()
    sfc: fix return value check in efx_ptp_probe_channel()
    net/spider_net: fix error return code in spider_net_open()
    net/irda: fix error return code in bfin_sir_open()
    net: of_mdio: fix behavior on missing phy device
    sierra_net: keep status interrupt URB active
    usbnet: allow status interrupt URB to always be active
    qmi_wwan/cdc_ether: add device IDs for Dell 5804 (Novatel E371) WWAN card
    be2net: disable TX in be_close()
    be2net: fix EQ from getting full while cleaning RX CQ
    be2net: fix payload_len value for GET_MAC_LIST cmd req
    be2net: provision VF resources before enabling SR-IOV

    Linus Torvalds
     
  • Pull removal of GENERIC_GPIO from Grant Likely:
    "GENERIC_GPIO now synonymous with GPIOLIB. There are no longer any
    valid cases for enableing GENERIC_GPIO without GPIOLIB, even though it
    is possible to do so which has been causing confusion and breakage.
    This branch does the work to completely eliminate GENERIC_GPIO."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux:
    gpio: update gpio Chinese documentation
    Remove GENERIC_GPIO config option
    Convert selectors of GENERIC_GPIO to GPIOLIB
    blackfin: force use of gpiolib
    m68k: coldfire: use gpiolib
    mips: pnx833x: remove requirement for GENERIC_GPIO
    openrisc: default GENERIC_GPIO to false
    avr32: default GENERIC_GPIO to false
    xtensa: remove explicit selection of GENERIC_GPIO
    sh: replace CONFIG_GENERIC_GPIO by CONFIG_GPIOLIB
    powerpc: remove redundant GENERIC_GPIO selection
    unicore32: default GENERIC_GPIO to false
    unicore32: remove unneeded select GENERIC_GPIO
    arm: plat-orion: use GPIO driver on CONFIG_GPIOLIB
    arm: remove redundant GENERIC_GPIO selection
    mips: alchemy: require gpiolib
    mips: txx9: change GENERIC_GPIO to GPIOLIB
    mips: loongson: use GPIO driver on CONFIG_GPIOLIB
    mips: remove redundant GENERIC_GPIO select

    Linus Torvalds
     

09 May, 2013

13 commits

  • Pull InfiniBand/RDMA changes from Roland Dreier:
    - XRC transport fixes
    - Fix DHCP on IPoIB
    - mlx4 preparations for flow steering
    - iSER fixes
    - miscellaneous other fixes

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (23 commits)
    IB/iser: Add support for iser CM REQ additional info
    IB/iser: Return error to upper layers on EAGAIN registration failures
    IB/iser: Move informational messages from error to info level
    IB/iser: Add module version
    mlx4_core: Expose a few helpers to fill DMFS HW strucutures
    mlx4_core: Directly expose fields of DMFS HW rule control segment
    mlx4_core: Change a few DMFS fields names to match firmare spec
    mlx4: Match DMFS promiscuous field names to firmware spec
    mlx4_core: Move DMFS HW structs to common header file
    IB/mlx4: Set link type for RAW PACKET QPs in the QP context
    IB/mlx4: Disable VLAN stripping for RAW PACKET QPs
    mlx4_core: Reduce warning message for SRQ_LIMIT event to debug level
    RDMA/iwcm: Don't touch cmid after dropping reference
    IB/qib: Correct qib_verbs_register_sysfs() error handling
    IB/ipath: Correct ipath_verbs_register_sysfs() error handling
    RDMA/cxgb4: Fix SQ allocation when on-chip SQ is disabled
    SRPT: Fix odd use of WARN_ON()
    IPoIB: Fix ipoib_hard_header() return value
    RDMA: Rename random32() to prandom_u32()
    RDMA/cxgb3: Fix uninitialized variable
    ...

    Linus Torvalds
     
  • reproduce steps
    1. flood ping from other machine
    ping -f -s 41000 IP
    2. run below script
    while [ 1 ]; do ethtool -s eth0 autoneg off;
    sleep 3;ethtool -s eth0 autoneg on; sleep 4; done;

    You can see oops in one hour.

    The reason is fec_restart clear BD but NAPI may use it.
    The solution is disable NAPI and stop xmit when reset BD.
    disable NAPI may sleep, so fec_restart can't be call in
    atomic context.

    Signed-off-by: Frank Li
    Reviewed-by: Lucas Stach
    Tested-by: Lucas Stach
    Signed-off-by: David S. Miller

    Frank Li
     
  • Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • In case of error, the function ptp_clock_register() returns ERR_PTR()
    and never returns NULL. The NULL test in the return value check should
    be replaced with IS_ERR().

    Signed-off-by: Wei Yongjun
    Reviewed-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • Fix to return -ENOMEM in the irlap_open() error handling case instead
    of 0(overwrite to 0 by bfin_sir_startup()), as done elsewhere in this
    function.

    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • The driver and firmware sync up through SYNC messages, and the
    firmware's affirmative reply to these SYNC messages appears to be the
    "Reset" indication received via the status interrupt endpoint. Thus the
    driver needs the status interrupt endpoint always active so that the
    Reset indication can be received even if the netdev is closed, which is
    the case right after device insertion.

    If the Reset indication is not received by the driver, it continues
    sending SYNC messages to the firmware, which crashes about 10 seconds
    later and the device stops responding.

    Signed-off-by: Dan Williams
    Signed-off-by: David S. Miller

    Dan Williams
     
  • Some drivers (sierra_net) need the status interrupt URB
    active even when the device is closed, because they receive
    custom indications from firmware. Add functions to refcount
    the status interrupt URB submit/kill operation so that
    sub-drivers and the generic driver don't fight over whether
    the status interrupt URB is active or not.

    A sub-driver can call usbnet_status_start() at any time, but
    the URB is only submitted the first time the function is
    called. Likewise, when the sub-driver is done with the URB,
    it calls usbnet_status_stop() but the URB is only killed when
    all users have stopped it. The URB is still killed and
    re-submitted for suspend/resume, as before, with the same
    refcount it had at suspend.

    Signed-off-by: Dan Williams
    Acked-by: Oliver Neukum
    Signed-off-by: David S. Miller

    Dan Williams
     
  • A rebranded Novatel E371 for AT&T's LTE bands. qmi_wwan should drive this
    device, while cdc_ether should ignore it. Even though the USB descriptors
    are plain CDC-ETHER that USB interface is a QMI interface.

    Cc:
    Signed-off-by: Dan Williams
    Acked-by: Bjørn Mork
    Signed-off-by: David S. Miller

    Dan Williams
     
  • be_close() followed by be_clear() is called as a part of cleanup in the
    EEH/AER flow. This patch stops TX in be_close() before cleaning/freeing
    up the TX queues in be_clear(). This prevents be_xmit() from being called
    while TX queues no longer exist.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • While cleaning RX queues, the CQ DB may be rung several times (with rearm)
    while waiting for the flush compl. Each CQ-notify with rearm can result in
    an event. The EQ may get full resulting in a HW error.

    Fix this by not re-arming the CQ while notifying a valid completion.
    Also, there's no need to wait for 1ms after destroying RXQ, as the code in
    be_rx_cq_clean() waits for the flush compl to arrive.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • The buffer size for a FW cmd request must be big enough to fit the response,
    else the cmd fails. For GET_MAC_LIST cmd, though the memory allocated for
    the cmd is big enough to fit the response, the payload_len value in the
    WRB hdr is being set to the request length only.
    Fix this for GET_MAC_LIST cmd.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • When the PF driver calls pci_enable_sriov(), the VFs may be probed
    inline before the call returns. So, the resources required for all VFs
    must be provisioned by the PF driver *before* calling pci_enable_sriov();
    else, VF probe will fail.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     

08 May, 2013

3 commits

  • Merge more incoming from Andrew Morton:

    - Various fixes which were stalled or which I picked up recently

    - A large rotorooting of the AIO code. Allegedly to improve
    performance but I don't really have good performance numbers (I might
    have lost the email) and I can't raise Kent today. I held this out
    of 3.9 and we could give it another cycle if it's all too late/scary.

    I ended up taking only the first two thirds of the AIO rotorooting. I
    left the percpu parts and the batch completion for later. - Linus

    * emailed patches from Andrew Morton : (33 commits)
    aio: don't include aio.h in sched.h
    aio: kill ki_retry
    aio: kill ki_key
    aio: give shared kioctx fields their own cachelines
    aio: kill struct aio_ring_info
    aio: kill batch allocation
    aio: change reqs_active to include unreaped completions
    aio: use cancellation list lazily
    aio: use flush_dcache_page()
    aio: make aio_read_evt() more efficient, convert to hrtimers
    wait: add wait_event_hrtimeout()
    aio: refcounting cleanup
    aio: make aio_put_req() lockless
    aio: do fget() after aio_get_req()
    aio: dprintk() -> pr_debug()
    aio: move private stuff out of aio.h
    aio: add kiocb_cancel()
    aio: kill return value of aio_complete()
    char: add aio_{read,write} to /dev/{null,zero}
    aio: remove retry-based AIO
    ...

    Linus Torvalds
     
  • Use preferable function name which implies using a pseudo-random number
    generator.

    [akpm@linux-foundation.org: convert team_mode_random.c]
    Signed-off-by: Akinobu Mita
    Acked-by: Thomas Sailer
    Acked-by: Bing Zhao [mwifiex]
    Cc: "David S. Miller"
    Cc: Michael Chan
    Cc: Thomas Sailer
    Cc: Jean-Paul Roubelat
    Cc: Bing Zhao
    Cc: Brett Rudley
    Cc: Arend van Spriel
    Cc: "Franky (Zhenhui) Lin"
    Cc: Hante Meuleman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Pull ARM SoC device tree updates (part 2) from Arnd Bergmann:
    "These are mostly new device tree bindings for existing drivers, as
    well as changes to the device tree source files to add support for
    those devices, and a couple of new boards, most notably Samsung's
    Exynos5 based Chromebook.

    The changes depend on earlier platform specific updates and touch the
    usual platforms: omap, exynos, tegra, mxs, mvebu and davinci."

    * tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
    ARM: exynos: dts: cros5250: add EC device
    ARM: dts: Add sbs-battery for exynos5250-snow
    ARM: dts: Add i2c-arbitrator bus for exynos5250-snow
    ARM: dts: add mshc controller node for Exynos4x12 SoCs
    ARM: dts: Add chip-id controller node on Exynos4/5 SoC
    ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree
    ARM: davinci: da850-evm: add SPI flash support
    ARM: davinci: da850: override SPI DT node device name
    ARM: davinci: da850: add SPI1 DT node
    spi/davinci: add DT binding documentation
    spi/davinci: no wildcards in DT compatible property
    ARM: dts: mvebu: Convert mvebu device tree files to 64 bits
    ARM: dts: mvebu: introduce internal-regs node
    ARM: dts: mvebu: Convert all the mvebu files to use the range property
    ARM: dts: mvebu: move all peripherals inside soc
    ARM: dts: mvebu: fix cpus section indentation
    ARM: davinci: da850: add EHRPWM & ECAP DT node
    ARM/dts: OMAP3: fix pinctrl-single configuration
    ARM: dts: Add OMAP3430 SDP NOR flash memory binding
    ARM: dts: Add NOR flash bindings for OMAP2420 H4
    ...

    Linus Torvalds
     

07 May, 2013

4 commits

  • A scheduling while atomic bug was introduced recently (by commit
    ce43a2168c59: "e1000e: cleanup USLEEP_RANGE checkpatch checks").

    Revert the particular instance of usleep_range() which causes the bug.

    Reported-by: Maarten Lankhorst
    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Acked-by: David S. Miller
    Signed-off-by: Linus Torvalds

    Bruce Allan
     
  • This is support for the ARM Chromebook, originally scheduled
    as a "late" pull request. Since it's already late now, we
    can combine this into the existing next/dt2 branch.

    * late/dt:
    ARM: exynos: dts: cros5250: add EC device
    ARM: dts: Add sbs-battery for exynos5250-snow
    ARM: dts: Add i2c-arbitrator bus for exynos5250-snow
    ARM: dts: Add chip-id controller node on Exynos4/5 SoC
    ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree

    Arnd Bergmann
     
  • Add new driver for supporting Realtek RTL8152 Based USB 2.0 Ethernet Adapters

    Signed-off-by: Hayes Wang
    Cc: Realtek linux nic maintainers
    Signed-off-by: David S. Miller

    hayeswang
     
  • When unloading the driver that drives an EISA board, a message similar to the
    following one is displayed:

    Trying to free nonexistent resource

    Then an user is unable to reload the driver because the resource it requested in
    the previous load hasn't been freed. This happens most probably due to a typo in
    vortex_eisa_remove() which calls release_region() with 'dev->base_addr' instead
    of 'edev->base_addr'...

    Reported-by: Matthew Whitehead
    Tested-by: Matthew Whitehead
    Signed-off-by: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     

06 May, 2013

2 commits

  • Some ancient pHyp versions used to create a 8 bytes local-mac-address
    property in the device-tree instead of a 6 bytes one for veth.

    The Linux driver code to deal with that is an insane hack which also
    happens to break with some choices of MAC addresses in qemu by testing
    for a bit in the address rather than just looking at the size of the
    property.

    Sanitize this by doing the latter instead.

    Signed-off-by: Benjamin Herrenschmidt
    CC:
    Signed-off-by: David S. Miller

    Benjamin Herrenschmidt
     
  • Pull single_open() leak fixes from Al Viro:
    "A bunch of fixes for a moderately common class of bugs: file with
    single_open() done by its ->open() and seq_release as its ->release().

    That leaks; fortunately, it's not _too_ common (either people manage
    to RTFM that says "When using single_open(), the programmer should use
    single_release() instead of seq_release() in the file_operations
    structure to avoid a memory leak", or they just copy a correct
    instance), but grepping through the tree has caught quite a pile.

    All of that is, AFAICS, -stable fodder, for as far as the patches
    apply. I tried to carve it up into reasonably-sized pieces (more or
    less "comes from the same tree")"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    rcutrace: single_open() leaks
    gadget: single_open() leaks
    staging: single_open() leaks
    megaraid: single_open() leak
    wireless: single_open() leaks
    input: single_open() leak
    rtc: single_open() leaks
    ds1620: single_open() leak
    sh: single_open() leaks
    parisc: single_open() leaks
    mips: single_open() leaks
    ia64: single_open() leaks
    h8300: single_open() leaks
    cris: single_open() leaks
    arm: single_open() leaks

    Linus Torvalds
     

05 May, 2013

2 commits

  • Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Pull networking fixes from David Miller:

    1) Several routines do not use netdev_features_t to hold such bitmasks,
    fixes from Patrick McHardy and Bjørn Mork.

    2) Update cpsw IRQ software state and the actual HW irq enabling in the
    correct order. From Mugunthan V N.

    3) When sending tipc packets to multiple bearers, we have to make
    copies of the SKB rather than just giving the original SKB directly.
    Fix from Gerlando Falauto.

    4) Fix race with bridging topology change timer, from Stephen
    Hemminger.

    5) Fix TCPv6 segmentation handling in GRE and VXLAN, from Pravin B
    Shelar.

    6) Endian bug in USB pegasus driver, from Dan Carpenter.

    7) Fix crashes on MTU reduction in USB asix driver, from Holger
    Eitzenberger.

    8) Don't allow the kernel to BUG() just because the user puts some crap
    in an AF_PACKET mmap() ring descriptor. Fix from Daniel Borkmann.

    9) Don't use variable sized arrays on the stack in xen-netback, from
    Wei Liu.

    10) Fix stats reporting and an unbalanced napi_disable() in be2net
    driver. From Somnath Kotur and Ajit Khaparde.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (25 commits)
    cxgb4: fix error recovery when t4_fw_hello returns a positive value
    sky2: Fix crash on receiving VLAN frames
    packet: tpacket_v3: do not trigger bug() on wrong header status
    asix: fix BUG in receive path when lowering MTU
    net: qmi_wwan: Add Telewell TW-LTE 4G
    usbnet: pegasus: endian bug in write_mii_word()
    vxlan: Fix TCPv6 segmentation.
    gre: Fix GREv4 TCPv6 segmentation.
    bridge: fix race with topology change timer
    tipc: pskb_copy() buffers when sending on more than one bearer
    tipc: tipc_bcbearer_send(): simplify bearer selection
    tipc: cosmetic: clean up comments and break a long line
    drivers: net: cpsw: irq not disabled in cpsw isr in particular sequence
    xen-netback: better names for thresholds
    xen-netback: avoid allocating variable size array on stack
    xen-netback: remove redundent parameter in netbk_count_requests
    be2net: Fix to fail probe if MSI-X enable fails for a VF
    be2net: avoid napi_disable() when it has not been enabled
    be2net: Fix firmware download for Lancer
    be2net: Fix to receive Multicast Packets when Promiscuous mode is enabled on certain devices
    ...

    Linus Torvalds
     

04 May, 2013

5 commits

  • Since commit 636f9d371f70f22961fd598fe18380057518ca31 ("cxgb4: Add
    support for T4 configuration file"), t4_fw_hello may return a positive
    value instead of 0 for success. The recovery code tests only for zero
    and fails recovery for any other value.

    This fix tests for negative error values and fails only on those cases.
    Error recovery after an error injection works after this change.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Signed-off-by: David S. Miller

    Thadeu Lima de Souza Cascardo
     
  • After recent 86a9bad3 (net: vlan: add protocol argument to packet
    tagging functions) my sky2 started to crash on receive of tagged
    frames, with backtrace similar to

    #CRASH!!!
    vlan_do_receive
    __netif_receive_skb_core
    __netif_receive_skb
    netif_receive_skb
    sky2_poll
    ...
    __net_rx_action
    __do_softirq

    The problem turned out to be:

    1) sky2 copies small packets from ring on RX, and in its
    receive_copy() skb header is copied manually field, by field, and
    only for some fields;

    2) 86a9bad3 added skb->vlan_proto, which vlan_untag() or
    __vlan_hwaccel_put_tag() set, and which is later used in
    vlan_do_receive().

    That patch updated copy_skb_header() for newly introduced
    skb->vlan_proto, but overlooked the need to also copy it in sky2's
    receive_copy().

    Because of 2, we have the following scenario:

    - frame is received and tagged in a ring, by sky2_rx_tag(). Both
    skb->vlan_proto and skb->vlan_tci are set;

    - later skb is decided to be copied, but skb->vlan_proto is
    forgotten and becomes 0.

    - in the beginning of vlan_do_receive() we call

    __be16 vlan_proto = skb->vlan_proto;
    vlan_dev = vlan_find_dev(skb->dev, vlan_proto, vlan_id);

    which eventually invokes

    vlan_proto_idx(vlan_proto)

    and that routine BUGs for everything except ETH_P_8021Q and
    ETH_P_8021AD.

    Oops.

    Fix it.

    P.S.

    Stephen, I wonder, why copy_skb_header() is not used in
    sky2.c::receive_copy() ? Problems, where receive_copy was updated field
    by field showed several times already, e.g.

    3f42941b (sky2: propogate rx hash when packet is copied)
    e072b3fa (sky2: fix receive length error in mixed non-VLAN/VLAN traffic)

    Cc: Patrick McHardy
    Cc: Stephen Hemminger
    Cc: Mirko Lindner
    Signed-off-by: Kirill Smelkov
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Kirill Smelkov
     
  • There is bug in the receive path of the asix driver at the time a
    packet is received larger than MTU size and DF bit set:

    BUG: unable to handle kernel paging request at 0000004000000001
    IP: [] skb_release_head_state+0x2d/0xd2
    ...
    Call Trace:

    [] ? skb_release_all+0x9/0x1e
    [] ? __kfree_skb+0x9/0x6f
    [] ? asix_rx_fixup_internal+0xff/0x1ae [asix]
    [] ? usbnet_bh+0x4f/0x226 [usbnet]
    ...

    It is easily reproducable by setting an MTU of 512 e. g. and sending
    something like

    ping -s 1472 -c 1 -M do $SELF

    from another box.

    And this is because the rx->ax_skb is freed on error, but rx->ax_skb
    is not reset, and the size is not reset to zero in this case.

    And since the skb is added again to the usbnet->done skb queue it is
    accessing already freed memory, resulting in the BUG when freeing a
    2nd time. I therefore think the value 0x0000004000000001 show in the
    trace is more or less random data.

    Signed-off-by: Holger Eitzenberger
    Signed-off-by: David S. Miller

    holger@eitzenberger.org
     
  • Information from driver description files:

    diag: VID_19D2&PID_0412&MI_00
    nmea: VID_19D2&PID_0412&MI_01
    at: VID_19D2&PID_0412&MI_02
    modem: VID_19D2&PID_0412&MI_03
    net: VID_19D2&PID_0412&MI_04

    Signed-off-by: Teppo Kotilainen
    Acked-by: Bjørn Mork
    Signed-off-by: David S. Miller

    Teppo Kotilainen
     
  • We're only passing the two high bytes of an integer. It works for
    little endian but not for big endian.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     

03 May, 2013

8 commits

  • Pull i2c changes from Wolfram Sang:

    - an arbitration driver. While the driver is quite simple, it caused
    discussion if we need additional arbitration on top of the one
    specified in the I2C standard. Conclusion is that I accept a few
    generic mechanisms, but not very specific ones.

    - the core lost the detach_adapter() call. It has no users anymore and
    was in the way for other cleanups. attach_adapter() is sadly still
    there since there are users waiting to be converted.

    - the core gained a bus recovery infrastructure. I2C defines a way to
    recover if the data line is stalled. This mechanism is now in the
    core and drivers can now pass some data to make use of it.

    - bigger driver cleanups for designware, s3c2410

    - removing superfluous refcounting from drivers

    - removing Ben Dooks as second maintainer due to inactivity. Thanks
    for all your work so far, Ben!

    - bugfixes, feature additions, devicetree fixups, simplifications...

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (38 commits)
    i2c: xiic: must always write 16-bit words to TX_FIFO
    i2c: octeon: use HZ in timeout value
    i2c: octeon: Fix i2c fail problem when a process is terminated by a signal
    i2c: designware-pci: drop superfluous {get|put}_device
    i2c: designware-plat: drop superfluous {get|put}_device
    i2c: davinci: drop superfluous {get|put}_device
    MAINTAINERS: Ben Dooks is inactive regarding I2C
    i2c: mux: Add i2c-arb-gpio-challenge 'mux' driver
    i2c: at91: convert to dma_request_slave_channel_compat()
    i2c: mxs: do error checking and handling in PIO mode
    i2c: mxs: remove races in PIO code
    i2c-designware: switch to use runtime PM autosuspend
    i2c-designware: use usleep_range() in the busy-loop
    i2c-designware: enable/disable the controller properly
    i2c-designware: use dynamic adapter numbering on Lynxpoint
    i2c-designware-pci: use managed functions pcim_* and devm_*
    i2c-designware-pci: use dev_err() instead of printk()
    i2c-designware: move to managed functions (devm_*)
    i2c: remove CONFIG_HOTPLUG ifdefs
    i2c: s3c2410: Add SMBus emulation for block read
    ...

    Linus Torvalds
     
  • Pull virtio & lguest updates from Rusty Russell:
    "Lots of virtio work which wasn't quite ready for last merge window.

    Plus I dived into lguest again, reworking the pagetable code so we can
    move the switcher page: our fixmaps sometimes take more than 2MB now..."

    Ugh. Annoying conflicts with the tcm_vhost -> vhost_scsi rename.
    Hopefully correctly resolved.

    * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (57 commits)
    caif_virtio: Remove bouncing email addresses
    lguest: improve code readability in lg_cpu_start.
    virtio-net: fill only rx queues which are being used
    lguest: map Switcher below fixmap.
    lguest: cache last cpu we ran on.
    lguest: map Switcher text whenever we allocate a new pagetable.
    lguest: don't share Switcher PTE pages between guests.
    lguest: expost switcher_pages array (as lg_switcher_pages).
    lguest: extract shadow PTE walking / allocating.
    lguest: make check_gpte et. al return bool.
    lguest: assume Switcher text is a single page.
    lguest: rename switcher_page to switcher_pages.
    lguest: remove RESERVE_MEM constant.
    lguest: check vaddr not pgd for Switcher protection.
    lguest: prepare to make SWITCHER_ADDR a variable.
    virtio: console: replace EMFILE with EBUSY for already-open port
    virtio-scsi: reset virtqueue affinity when doing cpu hotplug
    virtio-scsi: introduce multiqueue support
    virtio-scsi: push vq lock/unlock into virtscsi_vq_done
    virtio-scsi: pass struct virtio_scsi to virtqueue completion function
    ...

    Linus Torvalds
     
  • In CPSW NAPI, after processing all interrupts IRQ is enabled and then book
    keeping irq_enabled is updated. In random cases when a packet is transmitted
    or received between processing packets and IRQ enabled, then just after
    enabled IRQ and before irq_enabled is updated, ISR is called so IRQs are
    not disabled as irq_enabled is still false and CPU gets locked in CPSW ISR.

    By changing the sequence as update the irq_enabled and then enable IRQ
    fixes the issue. This issue is not captured always as it is a timing issue
    whether Tx or Rx IRQ is invoked between packet processing and enable IRQ.

    Cc: Sebastian Siewior
    Signed-off-by: Mugunthan V N
    Acked-by: Sebastian Andrzej Siewior
    Signed-off-by: David S. Miller

    Mugunthan V N
     
  • This patch only changes some names to avoid confusion.

    In this patch we have:

    MAX_SKB_SLOTS_DEFAULT -> FATAL_SKB_SLOTS_DEFAULT
    max_skb_slots -> fatal_skb_slots
    #define XEN_NETBK_LEGACY_SLOTS_MAX XEN_NETIF_NR_SLOTS_MIN

    The fatal_skb_slots is the threshold to determine whether a packet is
    malicious.

    XEN_NETBK_LEGACY_SLOTS_MAX is the maximum slots a valid packet can have at
    this point. It is defined to be XEN_NETIF_NR_SLOTS_MIN because that's
    guaranteed to be supported by all backends.

    Suggested-by: Ian Campbell
    Signed-off-by: Wei Liu
    Signed-off-by: David S. Miller

    Wei Liu
     
  • Tune xen_netbk_count_requests to not touch working array beyond limit, so that
    we can make working array size constant.

    Suggested-by: Jan Beulich
    Signed-off-by: Wei Liu
    Signed-off-by: David S. Miller

    Wei Liu
     
  • Tracking down from the caller, first_idx is always equal to vif->tx.req_cons.
    Remove it to avoid confusion.

    Suggested-by: Jan Beulich
    Signed-off-by: Wei Liu
    Acked-by: Ian Campbell
    Signed-off-by: David S. Miller

    Wei Liu
     
  • As per SPEC, INTx mode is not supported on VFs. So if enable_msix fails,
    then just fail probe. Also bail out of be_open if irq_register fails.

    Signed-off-by: Somnath Kotur
    Signed-off-by: David S. Miller

    Somnath Kotur
     
  • When RQ creation fails in be_open(), driver jumps to be_close() where
    napi_disable() is done without a prior napi_enable(); leading to a hang.
    This change is needed as there is no way to see if napi is enable/disabled.

    Signed-off-by: Kalesh AP
    Signed-off-by: Somnath Kotur
    Signed-off-by: David S. Miller

    Somnath Kotur