21 Sep, 2016

3 commits

  • kbuild-build-bot reported that if NETFILTER is not selected, the
    build fails pointing to netfilter symbols.

    Fixes: 4fbae7d83c98 ("ipvlan: Introduce l3s mode")

    Signed-off-by: Mahesh Bandewar
    Signed-off-by: David S. Miller

    Mahesh Bandewar
     
  • …etooth/bluetooth-next

    Johan Hedberg says:

    ====================
    pull request: bluetooth-next 2016-09-19

    Here's the main bluetooth-next pull request for the 4.9 kernel.

    - Added new messages for monitor sockets for better mgmt tracing
    - Added local name and appearance support in scan response
    - Added new Qualcomm WCNSS SMD based HCI driver
    - Minor fixes & cleanup to 802.15.4 code
    - New USB ID to btusb driver
    - Added Marvell support to HCI UART driver
    - Add combined LED trigger for controller power
    - Other minor fixes here and there

    Please let me know if there are any issues pulling. Thanks.
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • Dmitry Vyukov wrote:
    > different runs). Looking at code, the following looks suspicious -- we
    > limit copy by 512 bytes, but use the original count which can be
    > larger than 512:
    >
    > static void sixpack_receive_buf(struct tty_struct *tty,
    > const unsigned char *cp, char *fp, int count)
    > {
    > unsigned char buf[512];
    > ....
    > memcpy(buf, cp, count < sizeof(buf) ? count : sizeof(buf));
    > ....
    > sixpack_decode(sp, buf, count1);

    With the sane tty locking we now have I believe the following is safe as
    we consume the bytes and move them into the decoded buffer before
    returning.

    Signed-off-by: Alan Cox
    Signed-off-by: David S. Miller

    Alan Cox
     

20 Sep, 2016

37 commits

  • Correct drop handling for XDP_TX on TX failure, were recently added in
    commit 95357907ae73 ("mlx4: fix XDP_TX is acting like XDP_PASS on TX
    ring full").

    The change missed an opportunity for recycling the RX page, instead of
    going through the page allocator, like the regular XDP_DROP action does.
    This patch cease the opportunity, by going through the XDP_DROP case.

    Fixes: 95357907ae73 ("mlx4: fix XDP_TX is acting like XDP_PASS on TX ring full")
    Signed-off-by: Jesper Dangaard Brouer
    Reviewed-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     
  • The set_addr() callback is now optional. Remove the empty stub that qca8k
    has.

    Signed-off-by: John Crispin
    Signed-off-by: David S. Miller

    John Crispin
     
  • The set_addr() callback is now optional. Remove the empty stub that b53
    has.

    Signed-off-by: John Crispin
    Signed-off-by: David S. Miller

    John Crispin
     
  • Small packet loss is reported on complex multi host network configurations
    including tunnels, NAT, ... My investigation led me to the following check
    in netback which drops packets:

    if (unlikely(txreq.size < ETH_HLEN)) {
    netdev_err(queue->vif->dev,
    "Bad packet size: %d\n", txreq.size);
    xenvif_tx_err(queue, &txreq, extra_count, idx);
    break;
    }

    But this check itself is legitimate. SKBs consist of a linear part (which
    has to have the ethernet header) and (optionally) a number of frags.
    Netfront transmits the head of the linear part up to the page boundary
    as the first request and all the rest becomes frags so when we're
    reconstructing the SKB in netback we can't distinguish between original
    frags and the 'tail' of the linear part. The first SKB needs to be at
    least ETH_HLEN size. So in case we have an SKB with its linear part
    starting too close to the page boundary the packet is lost.

    I see two ways to fix the issue:
    - Change the 'wire' protocol between netfront and netback to start keeping
    the original SKB structure. We'll have to add a flag indicating the fact
    that the particular request is a part of the original linear part and not
    a frag. We'll need to know the length of the linear part to pre-allocate
    memory.
    - Avoid transmitting SKBs with linear parts starting too close to the page
    boundary. That seems preferable short-term and shouldn't bring
    significant performance degradation as such packets are rare. That's what
    this patch is trying to achieve with skb_copy().

    Signed-off-by: Vitaly Kuznetsov
    Acked-by: David Vrabel
    Signed-off-by: David S. Miller

    Vitaly Kuznetsov
     
  • All the review comments updated and resending for review.

    This is MAC interface feature.
    Microsemi PHY can support RGMII, RMII or GMII/MII interface between MAC and PHY.
    MAC-IF function program the right value based on Device tree configuration.

    Tested on Beaglebone Black with VSC 8531 PHY.

    Signed-off-by: Raju Lakkaraju
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Raju Lakkaraju
     
  • drivers/net/ethernet/mellanox/mlxsw//spectrum.c:251:28: warning: symbol
    'mlxsw_sp_span_entry_find' was not declared. Should it be static?
    drivers/net/ethernet/mellanox/mlxsw//spectrum.c:265:28: warning: symbol
    'mlxsw_sp_span_entry_get' was not declared. Should it be static?
    drivers/net/ethernet/mellanox/mlxsw//spectrum.c:367:56: warning: mixing
    different enum types
    drivers/net/ethernet/mellanox/mlxsw//spectrum.c:367:56: int enum
    mlxsw_sp_span_type versus
    drivers/net/ethernet/mellanox/mlxsw//spectrum.c:367:56: int enum
    mlxsw_reg_mpar_i_e
    ...
    drivers/net/ethernet/mellanox/mlxsw//spectrum_buffers.c:598:32: warning:
    mixing different enum types
    drivers/net/ethernet/mellanox/mlxsw//spectrum_buffers.c:598:32: int
    enum mlxsw_reg_sbxx_dir versus
    drivers/net/ethernet/mellanox/mlxsw//spectrum_buffers.c:598:32: int
    enum devlink_sb_pool_type
    drivers/net/ethernet/mellanox/mlxsw//spectrum_buffers.c:600:39: warning:
    mixing different enum types
    drivers/net/ethernet/mellanox/mlxsw//spectrum_buffers.c:600:39: int
    enum mlxsw_reg_sbpr_mode versus
    drivers/net/ethernet/mellanox/mlxsw//spectrum_buffers.c:600:39: int
    enum devlink_sb_threshold_type
    ...
    drivers/net/ethernet/mellanox/mlxsw//spectrum_router.c:255:54: warning:
    mixing different enum types
    drivers/net/ethernet/mellanox/mlxsw//spectrum_router.c:255:54: int
    enum mlxsw_sp_l3proto versus
    drivers/net/ethernet/mellanox/mlxsw//spectrum_router.c:255:54: int
    enum mlxsw_reg_ralxx_protocol
    ...
    drivers/net/ethernet/mellanox/mlxsw//spectrum_router.c:1749:6: warning:
    symbol 'mlxsw_sp_fib_entry_put' was not declared. Should it be static?

    Signed-off-by: Ido Schimmel
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Ido Schimmel
     
  • Change the RX hash function from XOR to CRC in order to have better
    distribution of the traffic.

    Signed-off-by: Elad Raz
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Elad Raz
     
  • bnxt_hwrm_fw_set_time() now returns -EOPNOTSUPP when built for kernel
    without RTC_LIB. Setting the firmware time is not critical to the
    successful completion of the firmware update process.

    Signed-off-by: Rob Swindell
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Rob Swindell
     
  • We get 2 warnings when building kernel with W=1:
    drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c:463:5: warning: no previous prototype for 'esw_offloads_init' [-Wmissing-prototypes]
    drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c:521:6: warning: no previous prototype for 'esw_offloads_cleanup' [-Wmissing-prototypes]

    In fact, both functions are declared in
    drivers/net/ethernet/mellanox/mlx5/core/eswitch.c,but should be
    declared in a header file, thus can be recognized in other file.

    So this patch moves the declarations into
    drivers/net/ethernet/mellanox/mlx5/core/eswitch.h

    Signed-off-by: Baoyou Xie
    Acked-by: Leon Romanovsky
    Signed-off-by: David S. Miller

    Baoyou Xie
     
  • We get 4 warnings when building kernel with W=1:
    drivers/net/ethernet/emulex/benet/be_main.c:4368:6: warning: no previous prototype for 'be_calculate_pf_pool_rss_tables' [-Wmissing-prototypes]
    drivers/net/ethernet/emulex/benet/be_cmds.c:4385:5: warning: no previous prototype for 'be_get_nic_pf_num_list' [-Wmissing-prototypes]
    drivers/net/ethernet/emulex/benet/be_cmds.c:4537:6: warning: no previous prototype for 'be_reset_nic_desc' [-Wmissing-prototypes]
    drivers/net/ethernet/emulex/benet/be_cmds.c:4910:5: warning: no previous prototype for '__be_cmd_set_logical_link_config' [-Wmissing-prototypes]

    In fact, these functions are only used in the file in which they are
    declared and don't need a declaration, but can be made static.
    so this patch marks these functions with 'static'.

    Signed-off-by: Baoyou Xie
    Signed-off-by: David S. Miller

    Baoyou Xie
     
  • We get 1 warning when building kernel with W=1:
    drivers/net/phy/microchip.c:58:5: warning: no previous prototype for 'lan88xx_suspend' [-Wmissing-prototypes]

    In fact, this function is only used in the file in which it is
    declared and don't need a declaration, but can be made static.
    so this patch marks this function with 'static'.

    Signed-off-by: Baoyou Xie
    Signed-off-by: David S. Miller

    Baoyou Xie
     
  • The ethtool api {get|set}_settings is deprecated.
    We move this driver to new api {get|set}_link_ksettings.

    Signed-off-by: Philippe Reynes
    Signed-off-by: David S. Miller

    Philippe Reynes
     
  • The ethtool api {get|set}_settings is deprecated.
    We move this driver to new api {get|set}_link_ksettings.

    Signed-off-by: Philippe Reynes
    Signed-off-by: David S. Miller

    Philippe Reynes
     
  • The private structure contain a pointer to phydev, but the structure
    net_device already contain such pointer. So we can remove the pointer
    phydev in the private structure, and update the driver to use the
    one contained in struct net_device.

    Signed-off-by: Philippe Reynes
    Signed-off-by: David S. Miller

    Philippe Reynes
     
  • The ethtool api {get|set}_settings is deprecated.
    We move this driver to new api {get|set}_link_ksettings.

    Signed-off-by: Philippe Reynes
    Signed-off-by: David S. Miller

    Philippe Reynes
     
  • The private structure contain a pointer to phydev, but the structure
    net_device already contain such pointer. So we can remove the pointer
    phydev in the private structure, and update the driver to use the
    one contained in struct net_device.

    Signed-off-by: Philippe Reynes
    Signed-off-by: David S. Miller

    Philippe Reynes
     
  • The VF link state can be changed via the 'ip link set' cmd.
    Currently, the new link state does not take effect immediately.

    The fix is for the PF to send a link change async event to the
    designated VF after a VF link state change. This async event will
    trigger the VF to update the link status.

    Signed-off-by: Eddie Wai
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Eddie Wai
     
  • Restart autoneg if autoneg is enabled.

    Signed-off-by: Deepak Khungar
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Deepak Khungar
     
  • The hardware has a limitation that it won't pass host to BMC loopback
    packets below 52-bytes.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • After generating the random MAC address for VF, call the firmware to
    approve it. This step serves 2 purposes. Some hypervisor (e.g. ESX)
    wants to approve the MAC address. 2nd, the call will setup the
    proper forwarding database in the internal switch.

    We need to unlock the hwrm_cmd_lock mutex before calling bnxt_approve_mac().
    We can do that because we are at the end of the function and all the
    previous firmware response data has been copied.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Re-arrange the code so that the generation of the random MAC address for
    the VF is at the end of the function. The next patch will add one more step
    to call bnxt_approve_mac() to get the firmware to approve the random MAC
    address.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • The existing code is inconsistent in reporting and accepting the combined
    channel count. bnxt_get_channels() reports maximum combined as the
    maximum rx count. bnxt_set_channels() accepts combined count that
    cannot be bigger than max rx or max tx.

    For example, if max rx = 2 and max tx = 1, we report max supported
    combined to be 2. But if the user tries to set combined to 2, it will
    fail because 2 is bigger than max tx which is 1.

    Fix the code to be consistent. Max allowed combined = max(max_rx, max_tx).
    We will accept a combined channel count
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Using Ethtool flashdev command, entire NVM package (*.pkg) files
    may now be staged into the "update" area of the NVM and subsequently
    verified and installed by the firmware using the newly introduced
    command: NVM_INSTALL_UPDATE.

    We also introduce use of the new firmware command FW_SET_TIME so that the
    NVM-resident package installation log contains valid time-stamps.

    Signed-off-by: Rob Swindell
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Rob Swindell
     
  • Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Remove "Single-port/Dual-port" from the device names. Dual-port devices
    will appear as 2 separate devices, so no need to call each a dual-port
    device. Use a more generic name for VF devices belonging to the same
    chip fanmily. Add some remaining NPAR device IDs.

    Signed-off-by: David Christensen
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • And remove redundant definitions of the same flags.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • This patch introduces support for Marvell Bluetooth controller over
    UART (8897 for now). In order to send the final firmware at full speed,
    a helper firmware is firstly sent. Firmware download is driven by the
    controller which sends request firmware packets (including expected
    size).

    This driver is a global rework of the one proposed by
    Amitkumar Karwar .

    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • Will be used by hci_nokia extra protocol.

    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • Use full name instead of abbreviation.

    Signed-off-by: Loic Poulain
    Signed-off-by: Marcel Holtmann

    Loic Poulain
     
  • The RTL8822BE is a new Realtek wifi and BT device. Support for the BT
    part is hereby added.

    As this device is similar to most of the other Realtek BT devices, the
    changes are minimal. The main difference is that the 8822BE needs a
    configuration file for enabling and disabling features. Thus code is
    added to select and load this configuration file. Although not needed
    at the moment, hooks are added for the other devices that might need
    such configuration files.

    One additional change is to the routine that tests that the project
    ID contained in the firmware matches the hardware. As the project IDs
    are not sequential, continuing to use the position in the array as the
    expected value of the ID would require adding extra unused entries in
    the table, and any subsequant rearrangment of the array would break the
    code. To fix these problems, the array elements now contain both the
    hardware ID and the expected value for the project ID.

    Signed-off-by: 陆朱伟
    Signed-off-by: Larry Finger
    Signed-off-by: Marcel Holtmann

    Larry Finger
     
  • edl->data is an array of __u8 so the null check is unneccessary,
    so remove it.

    Signed-off-by: Colin Ian King
    Signed-off-by: Marcel Holtmann

    Colin Ian King
     
  • This patch changes the spinlock to mutex for the available fakelb phy
    list. When holding the spinlock the ieee802154_unregister_hw is called
    which holding the rtnl_mutex, in that case we get a "BUG: sleeping function
    called from invalid context" error. We simple change the spinlock to
    mutex which allows to hold the rtnl lock there.

    Signed-off-by: Alexander Aring
    Signed-off-by: Marcel Holtmann

    Alexander Aring
     
  • Conwise CW6622 seems to have a problem with the stored link key
    commands so just mark it as broken.

    < HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
    > HCI Event: Command Complete (0x0e) plen 12
    Read Local Supported Features (0x04|0x0003) ncmd 1
    status 0x00
    Features: 0xff 0x3e 0x85 0x38 0x18 0x18 0x00 0x00
    < HCI Command: Read Local Version Information (0x04|0x0001) plen 0
    > HCI Event: Command Complete (0x0e) plen 12
    Read Local Version Information (0x04|0x0001) ncmd 1
    status 0x00
    HCI Version: 2.0 (0x3) HCI Revision: 0x1f4
    LMP Version: 2.0 (0x3) LMP Subversion: 0x1f4
    Manufacturer: CONWISE Technology Corporation Ltd (66)
    ...
    < HCI Command: Read Local Supported Commands (0x04|0x0002) plen 0
    > HCI Event: Command Complete (0x0e) plen 68
    Read Local Supported Commands (0x04|0x0002) ncmd 1
    status 0x00
    Commands: 7fffef03cedfffffffffff1ff20ff8ff3f
    ...
    < HCI Command: Read Stored Link Key (0x03|0x000d) plen 7
    bdaddr 00:00:00:00:00:00 all 1
    > HCI Event: Command Complete (0x0e) plen 8
    Read Stored Link Key (0x03|0x000d) ncmd 1
    status 0x11 max 0 num 0
    Error: Unsupported Feature or Parameter Value

    Signed-off-by: Szymon Janc
    Signed-off-by: Marcel Holtmann

    Szymon Janc
     
  • The workqueue "workqueue" queues multiple work items viz &qca->ws_awake_rx
    &qca->ws_rx_vote_off, &qca->ws_awake_device, &qca->ws_tx_vote_off which
    require strict execution ordering. Hence, an ordered dedicated workqueue
    has been used to replace the deprecated create_singlethread_workqueue
    instance.

    WQ_MEM_RECLAIM has not been set since the driver is not being used on a
    memory reclaim path.

    Signed-off-by: Bhaktipriya Shridhar
    Signed-off-by: Marcel Holtmann

    Bhaktipriya Shridhar
     
  • The newly added bluetooth driver is based on the soc-specific support,
    but lacks the obvious compile-time dependency on that:

    drivers/bluetooth/btqcomsmd.o: In function `btqcomsmd_probe':
    btqcomsmd.c:(.text.btqcomsmd_probe+0x40): undefined reference to `qcom_wcnss_open_channel'
    btqcomsmd.c:(.text.btqcomsmd_probe+0x5c): undefined reference to `qcom_wcnss_open_channel'
    Makefile:969: recipe for target 'vmlinux' failed

    Fixes: 90c107dc8b2c ("Bluetooth: Introduce Qualcomm WCNSS SMD based HCI driver")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Marcel Holtmann

    Arnd Bergmann
     
  • kmalloc will print enough information in case of failure.

    Signed-off-by: Wolfram Sang
    Signed-off-by: Marcel Holtmann

    Wolfram Sang
     
  • Device 0cf3:e009 is one of the QCA ROME family.

    T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 4 Spd=12 MxCh= 0
    D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=0cf3 ProdID=e009 Rev=00.01
    C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

    Signed-off-by: Kai-Heng Feng
    Signed-off-by: Marcel Holtmann

    Kai-Heng Feng