21 Oct, 2015

8 commits

  • The lock states from Intel SfP controllers can only be read once before
    loading the firmware. So for debugging purposes, print them out.

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • There are LE devices on the market that start off by announcing their
    public address and then once paired switch to using private address.
    To be interoperable with such devices we should simply trust the fact
    that we're receiving an IRK from them to indicate that they may use
    private addresses in the future. Instead, simply tie the persistency
    to the bonding/no-bonding information the same way as for LTKs and
    CSRKs.

    Signed-off-by: Johan Hedberg
    Signed-off-by: Marcel Holtmann

    Johan Hedberg
     
  • Sending diagnostic messages directly to the monitor socket might cause
    issues for devices processing their messages in interrupt context. So
    instead of trying to directly forward them, queue them up with the other
    HCI packets and lets them be processed by the sockets at the same time.

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • When using the HCI_CHANNEL_RAW, restrict the packet types to valid ones
    from the Bluetooth specification.

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • The HCI_VENDOR_PKT quirk was needed for BPA-100/105 devices that send
    these messages. Now that there is support for proper diagnostic channel
    this quirk is no longer needed.

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • For Intel controllers with firmware that allows tracing of baseband
    functionality this allows enabling it via set_diag driver callback.

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • The Broadcom Bluetooth USB devices have a third interface that is
    dedicated for LM_DIAG messages. The If#= 2 describes this interface
    and it consists of one bulk in and one bulk endpoint.

    T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 38 Spd=12 MxCh= 0
    D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=19ff ProdID=0239 Rev= 1.12
    S: Manufacturer=Broadcom Corp
    S: Product=BCM20702A0
    C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr= 0mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
    E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
    I: If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
    I: If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
    I: If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
    I: If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
    I: If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
    E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
    E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=btusb
    E: Ad=84(I) Atr=02(Bulk) MxPS= 32 Ivl=0ms
    E: Ad=04(O) Atr=02(Bulk) MxPS= 32 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

    For all Broadcom based devices with this interface, the driver now
    claims it and schedules URBs for it. This allows to capture the
    LM_DIAG messages and allows forwarding them via hci_recv_diag into
    the diagnostic channel of the Bluetooth subsystem.

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     
  • Selecting just BT_HCIUART_H4 is not enough and it also needs to select
    BT_HCIUART to avoid this warning:

    warning: (BT_HCIBPA10X) selects BT_HCIUART_H4 which has unmet direct
    dependencies (NET && BT && BT_HCIUART)

    Signed-off-by: Marcel Holtmann
    Signed-off-by: Johan Hedberg

    Marcel Holtmann
     

20 Oct, 2015

2 commits

  • Conflicts:
    drivers/net/usb/asix_common.c
    net/ipv4/inet_connection_sock.c
    net/switchdev/switchdev.c

    In the inet_connection_sock.c case the request socket hashing scheme
    is completely different in net-next.

    The other two conflicts were overlapping changes.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull networking fixes from David Miller:

    1) Account for extra headroom in ath9k driver, from Felix Fietkau.

    2) Fix OOPS in pppoe driver due to incorrect socket state transition,
    from Guillaume Nault.

    3) Kill memory leak in amd-xgbe debugfx, from Geliang Tang.

    4) Power management fixes for iwlwifi, from Johannes Berg.

    5) Fix races in reqsk_queue_unlink(), from Eric Dumazet.

    6) Fix dst_entry usage in ARP replies, from Jiri Benc.

    7) Cure OOPSes with SO_GET_FILTER, from Daniel Borkmann.

    8) Missing allocation failure check in amd-xgbe, from Tom Lendacky.

    9) Various resource allocation/freeing cures in DSA< from Neil
    Armstrong.

    10) A series of bug fixes in the openvswitch conntrack support, from
    Joe Stringer.

    11) Fix two cases (BPF and act_mirred) where we have to clean the sender
    cpu stored in the SKB before transmitting. From WANG Cong and
    Alexei Starovoitov.

    12) Disable VLAN filtering in promiscuous mode in mlx5 driver, from
    Achiad Shochat.

    13) Older bnx2x chips cannot do 4-tuple UDP hashing, so prevent this
    configuration via ethtool. From Yuval Mintz.

    14) Don't call rt6_uncached_list_flush_dev() from rt6_ifdown() when
    'dev' is NULL, from Eric Biederman.

    15) Prevent stalled link synchronization in tipc, from Jon Paul Maloy.

    16) kcalloc() gstrings ethtool buffer before having driver fill it in,
    in order to prevent kernel memory leaking. From Joe Perches.

    17) Fix mixxing rt6_info initialization for blackhole routes, from
    Martin KaFai Lau.

    18) Kill VLAN regression in via-rhine, from Andrej Ota.

    19) Missing pfmemalloc check in sk_add_backlog(), from Eric Dumazet.

    20) Fix spurious MSG_TRUNC signalling in netlink dumps, from Ronen Arad.

    21) Scrube SKBs when pushing them between namespaces in openvswitch,
    from Joe Stringer.

    22) bcmgenet enables link interrupts too early, fix from Florian
    Fainelli.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (92 commits)
    net: bcmgenet: Fix early link interrupt enabling
    tunnels: Don't require remote endpoint or ID during creation.
    openvswitch: Scrub skb between namespaces
    xen-netback: correctly check failed allocation
    net: asix: add support for the Billionton GUSB2AM-1G-B USB adapter
    netlink: Trim skb to alloc size to avoid MSG_TRUNC
    net: add pfmemalloc check in sk_add_backlog()
    via-rhine: fix VLAN receive handling regression.
    ipv6: Initialize rt6_info properly in ip6_blackhole_route()
    ipv6: Move common init code for rt6_info to a new function rt6_info_init()
    Bluetooth: Fix initializing conn_params in scan phase
    Bluetooth: Fix conn_params list update in hci_connect_le_scan_cleanup
    Bluetooth: Fix remove_device behavior for explicit connects
    Bluetooth: Fix LE reconnection logic
    Bluetooth: Fix reference counting for LE-scan based connections
    Bluetooth: Fix double scan updates
    mlxsw: core: Fix race condition in __mlxsw_emad_transmit
    tipc: move fragment importance field to new header position
    ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings
    tipc: eliminate risk of stalled link synchronization
    ...

    Linus Torvalds
     

19 Oct, 2015

25 commits

  • Link interrupts are enabled in init_umac(), which is too early for us to
    process them since we do not yet have a valid PHY device pointer. On
    BCM7425 chips for instance, we will crash calling phy_mac_interrupt()
    because phydev is NULL.

    Fix this by moving the link interrupts enabling in
    bcmgenet_netif_start(), under a specific function:
    bcmgenet_link_intr_enable() and while at it, update the comments
    surrounding the code.

    Fixes: 6cc8e6d4dcb36 ("net: bcmgenet: Delay PHY initialization to bcmgenet_open()")
    Signed-off-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • …m/linux/kernel/git/kvalo/wireless-drivers

    Kalle Valo says:

    ====================
    iwlwifi:

    * mvm: flush fw_dump_wk when mvm fails to start
    * mvm: init card correctly on ctkill exit check
    * pci: add a few more PCI subvendor IDs for the 7265 series
    * fix firmware filename for 3160
    * mvm: clear csa countdown when AP is stopped
    * mvm: fix D3 firmware PN programming
    * dvm: fix D3 firmware PN programming
    * mvm: fix D3 CCMP TX PN assignment

    rtlwifi:

    * rtl8821ae: Fix system lockups on boot
    ====================

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

    David S. Miller
     
  • Pablo Neira Ayuso says:

    ====================
    Netfilter/IPVS updates for net-next

    The following patchset contains Netfilter/IPVS updates for your net-next
    tree. Most relevantly, updates for the nfnetlink_log to integrate with
    conntrack, fixes for cttimeout and improvements for nf_queue core, they are:

    1) Remove useless ifdef around static inline function in IPVS, from
    Eric W. Biederman.

    2) Simplify the conntrack support for nfnetlink_queue: Merge
    nfnetlink_queue_ct.c file into nfnetlink_queue_core.c, then rename it back
    to nfnetlink_queue.c

    3) Use y2038 safe timestamp from nfnetlink_queue.

    4) Get rid of dead function definition in nf_conntrack, from Flavio
    Leitner.

    5) Attach conntrack support for nfnetlink_log.c, from Ken-ichirou MATSUZAWA.
    This adds a new NETFILTER_NETLINK_GLUE_CT Kconfig switch that
    controls enabling both nfqueue and nflog integration with conntrack.
    The userspace application can request this via NFULNL_CFG_F_CONNTRACK
    configuration flag.

    6) Remove unused netns variables in IPVS, from Eric W. Biederman and
    Simon Horman.

    7) Don't put back the refcount on the cttimeout object from xt_CT on success.

    8) Fix crash on cttimeout policy object removal. We have to flush out
    the cttimeout extension area of the conntrack not to refer to an unexisting
    object that was just removed.

    9) Make sure rcu_callback completion before removing nfnetlink_cttimeout
    module removal.

    10) Fix compilation warning in br_netfilter when no nf_defrag_ipv4 and
    nf_defrag_ipv6 are enabled. Patch from Arnd Bergmann.

    11) Autoload ctnetlink dependencies when NFULNL_CFG_F_CONNTRACK is
    requested. Again from Ken-ichirou MATSUZAWA.

    12) Don't use pointer to previous hook when reinjecting traffic via
    nf_queue with NF_REPEAT verdict since it may be already gone. This
    also avoids a deadloop if the userspace application keeps returning
    NF_REPEAT.

    13) A bunch of cleanups for netfilter IPv4 and IPv6 code from Ian Morris.

    14) Consolidate logger instance existence check in nfulnl_recv_config().

    15) Fix broken atomicity when applying configuration updates to logger
    instances in nfnetlink_log.

    16) Get rid of the .owner attribute in our hook object. We don't need
    this anymore since we're dropping pending packets that have escaped
    from the kernel when unremoving the hook. Patch from Florian Westphal.

    17) Remove unnecessary rcu_read_lock() from nf_reinject code, we always
    assume RCU read side lock from .call_rcu in nfnetlink. Also from Florian.

    18) Use static inline function instead of macros to define NF_HOOK() and
    NF_HOOK_COND() when no netfilter support in on, from Arnd Bergmann.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Sowmini found hang with rds-ping while testing RDS over TCP. Its
    a corner case and doesn't happen always. The issue is not reproducible
    with IB transport. Its clear from below dump why we see it with RDS TCP.

    [] do_tcp_setsockopt+0xb5/0x740
    [] tcp_setsockopt+0x24/0x30
    [] sock_common_setsockopt+0x14/0x20
    [] rds_tcp_xmit_prepare+0x5d/0x70 [rds_tcp]
    [] rds_send_xmit+0xd7/0x740 [rds]
    [] rds_send_pong+0x142/0x180 [rds]
    [] rds_recv_incoming+0x274/0x330 [rds]
    [] ? ttwu_queue+0x11e/0x130
    [] ? skb_copy_bits+0x6d/0x2c0
    [] rds_tcp_data_recv+0x2f0/0x3d0 [rds_tcp]
    [] tcp_read_sock+0x96/0x1c0
    [] ? rds_tcp_recv_init+0x40/0x40 [rds_tcp]
    [] ? sock_def_write_space+0xa0/0xa0
    [] rds_tcp_data_ready+0xa1/0xf0 [rds_tcp]
    [] tcp_data_queue+0x379/0x5b0
    [] ? rds_tcp_write_space+0xbb/0x110 [rds_tcp]
    [] tcp_rcv_established+0x2e2/0x6e0
    [] tcp_v4_do_rcv+0x122/0x220
    [] tcp_v4_rcv+0x867/0x880
    [] ip_local_deliver_finish+0xa3/0x220

    This happens because rds_send_xmit() chain wants to take
    sock_lock which is already taken by tcp_v4_rcv() on its
    way to rds_tcp_data_ready(). Commit db6526dcb51b ("RDS: use
    rds_send_xmit() state instead of RDS_LL_SEND_FULL") which
    was trying to opportunistically finish the send request
    in same thread context.

    But because of above recursive lock hang with RDS TCP,
    the send work from rds_send_pong() needs to deferred to
    worker to avoid lock up. Given RDS ping is more of connectivity
    test than performance critical path, its should be ok even
    for transport like IB.

    Reported-by: Sowmini Varadhan
    Acked-by: Sowmini Varadhan
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Santosh Shilimkar
    Acked-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    santosh.shilimkar@oracle.com
     
  • Before lightweight tunnels existed, it really didn't make sense to
    create a tunnel that was not fully specified, such as without a
    destination IP address - the resulting packets would go nowhere.
    However, with lightweight tunnels, the opposite is true - it doesn't
    make sense to require this information when it will be provided later
    on by the route. This loosens the requirements for this information.

    An alternative would be to allow the relaxed version only when
    COLLECT_METADATA is enabled. However, since there are several
    variations on this theme (such as NBMA tunnels in GRE), just dropping
    the restrictions seems the most consistent across tunnels and with
    the existing configuration.

    CC: John Linville
    Signed-off-by: Jesse Gross
    Signed-off-by: Thomas Graf
    Signed-off-by: David S. Miller

    Jesse Gross
     
  • Add missing rule to export mpls iptunnel header needed by iproute2

    Signed-off-by: Stephen Hemminger
    Acked-by: Roopa Prabhu
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • At the time of commit fff326990789 ("tcp: reflect SYN queue_mapping into
    SYNACK packets") we had little ways to cope with SYN floods.

    We no longer need to reflect incoming skb queue mappings, and instead
    can pick a TX queue based on cpu cooking the SYNACK, with normal XPS
    affinities.

    Note that all SYNACK retransmits were picking TX queue 0, this no longer
    is a win given that SYNACK rtx are now distributed on all cpus.

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

    Eric Dumazet
     
  • If OVS receives a packet from another namespace, then the packet should
    be scrubbed. However, people have already begun to rely on the behaviour
    that skb->mark is preserved across namespaces, so retain this one field.

    This is mainly to address information leakage between namespaces when
    using OVS internal ports, but by placing it in ovs_vport_receive() it is
    more generally applicable, meaning it should not be overlooked if other
    port types are allowed to be moved into namespaces in future.

    Signed-off-by: Joe Stringer
    Acked-by: Pravin B Shelar
    Acked-by: Thomas Graf
    Signed-off-by: David S. Miller

    Joe Stringer
     
  • Johan Hedberg says:

    ====================
    pull request: bluetooth 2015-10-16

    First of all, sorry for the late set of patches for the 4.3 cycle. We
    just finished an intensive week of testing at the Bluetooth UnPlugFest
    and discovered (and fixed) issues there. Unfortunately a few issues
    affect 4.3-rc5 in a way that they break existing Bluetooth LE mouse and
    keyboard support.

    The regressions result from supporting LE privacy in conjunction with
    scanning for Resolvable Private Addresses before connecting. A feature
    that has been tested heavily (including automated unit tests), but sadly
    some regressions slipped in. The UnPlugFest with its multitude of test
    platforms is a good battle testing ground for uncovering every corner
    case.

    The patches in this pull request focus only on fixing the regressions in
    4.3-rc5. The patches look a bit larger since we also added comments in
    the critical sections of the fixes to improve clarity.

    I would appreciate if we can get these regression fixes to Linus
    quickly. Please let me know if there are any issues pulling. Thanks.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • BITS_RX_EN is an 'unsigned long' constant, so the ones complement of that
    has bits set that do not fit into a 32-bit variable on 64-bit architectures,
    which causes a harmless gcc warning:

    drivers/net/ethernet/hisilicon/hix5hd2_gmac.c: In function 'hix5hd2_port_disable':
    drivers/net/ethernet/hisilicon/hix5hd2_gmac.c:374:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
    writel_relaxed(~(BITS_RX_EN | BITS_TX_EN), priv->base + PORT_EN);

    This adds a cast to (u32) to tell gcc that the code is indeed fine.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • The HNS MDIO driver fails to build on older ARM machines that are not
    yet converted to CONFIG_OF:

    drivers/net/ethernet/hisilicon/hns_mdio.c: In function 'hns_mdio_bus_name':
    drivers/net/ethernet/hisilicon/hns_mdio.c:405:14: error: 'OF_BAD_ADDR' undeclared (first use in this function)
    u64 taddr = OF_BAD_ADDR;
    ^
    drivers/net/ethernet/hisilicon/hns_mdio.c:405:14: note: each undeclared identifier is reported only once for each function it appears in
    drivers/net/ethernet/hisilicon/hns_mdio.c:409:11: error: implicit declaration of function 'of_translate_address' [-Werror=implicit-function-declaration]
    taddr = of_translate_address(np, addr);
    ^

    This clarifies the dependency to ensure we don't attempt to build these
    drivers without CONFIG_OF, but also adds a COMPILE_TEST alternative to
    give us better build coverage testing.

    Build-tested on x86 as well to ensure this actually works.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • Some configurations fail to build the hns dsaf code because of
    a missing header file:

    ethernet/hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_init':
    ethernet/hisilicon/hns/hns_dsaf_main.c:1096:2: error: implicit declaration of function 'vzalloc' [-Werror=implicit-function-declaration]
    priv->soft_mac_tbl = vzalloc(sizeof(*priv->soft_mac_tbl)

    This adds the correct #include.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • yankejian says:

    ====================
    net: hns: fixes two bugs in hns driver

    This patchset fixes two bugs in hns driver.
    - fixes timeout when received pause frame from the connective ports
    - should be set by using ethtool -s when the devices are link down
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • this patch fixes the bug triggered timeout sequence. when the connective
    ports cannot accept the packets with higher speed, they will send out the
    pause frame to the Soc's mac. At that time, the driver resets the relevant
    of the Soc, then it causes the packets cannot be sent out immediately.
    this patch fixes the issue.

    Signed-off-by: yankejian
    Signed-off-by: Yisen Zhuang
    Signed-off-by: lisheng
    Signed-off-by: lipeng
    Signed-off-by: David S. Miller

    lisheng
     
  • before this patch, hns driver only permits user to set the net device
    by using ethtool -s when the device is link up. it is obviously not so
    good. it needs to be set no matter it is link up or down. so this patch
    fixes this issue.

    Signed-off-by: yankejian
    Signed-off-by: Yisen Zhuang
    Signed-off-by: lisheng
    Signed-off-by: lipeng
    Signed-off-by: Chenny Xu
    Signed-off-by: David S. Miller

    Chenny Xu
     
  • huangdaode says:

    ====================
    net: hisilicon fix some bugs in HNS drivers

    This patchset fixes the two bugs in HNS driver, one is remove the hnae sysfs interface
    according to the review comments from Arnd Bergmann , another
    is fixing the wrong mac_id judgement bug which is found during internal tests.

    change log:
    v3:
    remove the hnae sysfs interface.

    v2:
    1) remove first bug fix, which is fixed in another patch submitted by
    Arnd Bergmann
    2) change the code sytyle according to Joe.

    v1:
    initial version.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This patch fixes the wrong judgement of mac_id when get port num.

    Signed-off-by: huangdaode
    Signed-off-by: yankejian
    Signed-off-by: David S. Miller

    huangdaode
     
  • This patch removes the hns driver hnae sysfs interface according to
    Arnd's review comments.

    Signed-off-by: huangdaode
    Reviewed-by: Arnd Bergmann
    Signed-off-by: David S. Miller

    huangdaode
     
  • Since vzalloc can be failed in memory pressure,
    writes -ENOMEM to xenstore to indicate error.

    Signed-off-by: Insu Yun
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Insu Yun
     
  • Just another AX88178-based 10/100/1000 USB-to-Ethernet dongle. This one
    shows up in lsusb as: "ID 08dd:0114 Billionton Systems, Inc".

    Signed-off-by: Chia-Sheng Chang
    Cc: "David S. Miller"
    Cc: Luca Ceresoli
    Cc: Christoph Jaeger
    Cc: "Woojung.Huh@microchip.com"
    Cc: Matthew Garrett
    Cc: Markus Elfring
    Cc: Charles Keepax
    Cc: netdev@vger.kernel.org
    Cc: linux-usb@vger.kernel.org
    Signed-off-by: David S. Miller

    Chia-Sheng Chang
     
  • The 'bcm-phy-lib.c', added as a part of the commit
    "net: phy: Add Broadcom phy library for common interfaces"
    was missing the module license. This was causing an issue
    when the library is built as a module; "module license
    'unspecified' taints kernel".

    This patch fixes the issue by adding the module license,
    author and description to the bcm-phy-lib.c file.

    Fixes: a1cba5613edf5 ("net: phy: Add Broadcom phy library for
    common interfaces")
    Signed-off-by: Arun Parameswaran
    Acked-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Arun Parameswaran
     
  • netlink_dump() allocates skb based on the calculated min_dump_alloc or
    a per socket max_recvmsg_len.
    min_alloc_size is maximum space required for any single netdev
    attributes as calculated by rtnl_calcit().
    max_recvmsg_len tracks the user provided buffer to netlink_recvmsg.
    It is capped at 16KiB.
    The intention is to avoid small allocations and to minimize the number
    of calls required to obtain dump information for all net devices.

    netlink_dump packs as many small messages as could fit within an skb
    that was sized for the largest single netdev information. The actual
    space available within an skb is larger than what is requested. It could
    be much larger and up to near 2x with align to next power of 2 approach.

    Allowing netlink_dump to use all the space available within the
    allocated skb increases the buffer size a user has to provide to avoid
    truncaion (i.e. MSG_TRUNG flag set).

    It was observed that with many VLANs configured on at least one netdev,
    a larger buffer of near 64KiB was necessary to avoid "Message truncated"
    error in "ip link" or "bridge [-c[ompressvlans]] vlan show" when
    min_alloc_size was only little over 32KiB.

    This patch trims skb to allocated size in order to allow the user to
    avoid truncation with more reasonable buffer size.

    Signed-off-by: Ronen Arad
    Signed-off-by: David S. Miller

    Arad, Ronen
     
  • A dhcp server may provide parameters to a client from a pool of IP
    addresses and using a shared rootfs, or provide a specific set of
    parameters for a specific client, usually using the MAC address to
    identify each client individually. The dhcp protocol also specifies
    a client-id field which can be used to determine the correct
    parameters to supply when no MAC address is available. There is
    currently no way to tell the kernel to supply a specific client-id,
    only the userspace dhcp clients support this feature, but this can
    not be used when the network is needed before userspace is available
    such as when the root filesystem is on NFS.

    This patch is to be able to do something like "ip=dhcp,client_id_type,
    client_id_value", as a kernel parameter to enable the kernel to
    identify itself to the server.

    Signed-off-by: Li RongQing
    Signed-off-by: David S. Miller

    Li RongQing
     
  • Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "Here are some bugfixes for the I2C subsystem.

    Kieran found a flaw in the recently renewed wake irq handling. Mika
    handled a user bug report where the ACPI info turned out to be
    unusable. I updated MAINTAINERS so that such bug reports will sooner
    get to the right people. Geert pointed me to a problem of some i2c
    drivers regarding PM which I fixed"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: designware: Do not use parameters from ACPI on Dell Inspiron 7348
    MAINTAINERS: add maintainers for Synopsis Designware I2C drivers
    i2c: designware-platdrv: enable RuntimePM before registering to the core
    i2c: s3c2410: enable RuntimePM before registering to the core
    i2c: rcar: enable RuntimePM before registering to the core
    i2c: return probe deferred status on dev_pm_domain_attach

    Linus Torvalds
     

18 Oct, 2015

1 commit

  • ACPI SSCN/FMCN methods were originally added because then the platform can
    provide the most accurate HCNT/LCNT values to the driver. However, this
    seems not to be true for Dell Inspiron 7348 where using these causes the
    touchpad to fail in boot:

    i2c_hid i2c-DLL0675:00: failed to retrieve report from device.
    i2c_designware INT3433:00: i2c_dw_handle_tx_abort: lost arbitration
    i2c_hid i2c-DLL0675:00: failed to retrieve report from device.
    i2c_designware INT3433:00: controller timed out

    The values received from ACPI are (in fast mode):

    HCNT: 72
    LCNT: 160

    this translates to following timings (input clock is 100MHz on Broadwell):

    tHIGH: 720 ns (spec min 600 ns)
    tLOW: 1600 ns (spec min 1300 ns)
    Bus period: 2920 ns (assuming 300 ns tf and tr)
    Bus speed: 342.5 kHz

    Both tHIGH and tLOW are within the I2C specification.

    The calculated values when ACPI parameters are not used are (in fast mode):

    HCNT: 87
    LCNT: 159

    which translates to:

    tHIGH: 870 ns (spec min 600 ns)
    tLOW: 1590 ns (spec min 1300 ns)
    Bus period 3060 ns (assuming 300 ns tf and tr)
    Bus speed 326.8 kHz

    These values are also within the I2C specification.

    Since both ACPI and calculated values meet the I2C specification timing
    requirements it is hard to say why the touchpad does not function properly
    with the ACPI values except that the bus speed is higher in this case (but
    still well below the max 400kHz).

    Solve this by adding DMI quirk to the driver that disables using ACPI
    parameters on this particulare machine.

    Reported-by: Pavel Roskin
    Signed-off-by: Mika Westerberg
    Tested-by: Pavel Roskin
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Mika Westerberg
     

17 Oct, 2015

4 commits

  • ….kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull irq/timer fixes from Thomas Gleixner:
    "irq: a fix for the new hierarchical MSI interrupt handling which
    unbreaks PCI=n configurations.

    timers: a fix for the new hrtimer clock offset update mechanism to
    ensure that the boot time offset is respected"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    genirq/msi: Do not use pci_msi_[un]mask_irq as default methods

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    timekeeping: Increment clock_was_set_seq in timekeeping_init()

    Linus Torvalds
     
  • This merge resolves conflicts with 75aec9df3a78 ("bridge: Remove
    br_nf_push_frag_xmit_sk") as part of Eric Biederman's effort to improve
    netns support in the network stack that reached upstream via David's
    net-next tree.

    Signed-off-by: Pablo Neira Ayuso

    Conflicts:
    net/bridge/br_netfilter_hooks.c

    Pablo Neira Ayuso
     
  • Greg reported crashes hitting the following check in __sk_backlog_rcv()

    BUG_ON(!sock_flag(sk, SOCK_MEMALLOC));

    The pfmemalloc bit is currently checked in sk_filter().

    This works correctly for TCP, because sk_filter() is ran in
    tcp_v[46]_rcv() before hitting the prequeue or backlog checks.

    For UDP or other protocols, this does not work, because the sk_filter()
    is ran from sock_queue_rcv_skb(), which might be called _after_ backlog
    queuing if socket is owned by user by the time packet is processed by
    softirq handler.

    Fixes: b4b9e35585089 ("netvm: set PF_MEMALLOC as appropriate during SKB processing")
    Signed-off-by: Eric Dumazet
    Reported-by: Greg Thelen
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Pull input fixes from Dmitry Torokhov:
    "Just two small fixups to ads7846 touchscreen controller driver and
    Cypress touchpad driver"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: cyapa - fix the copy paste error on electrodes_rx value
    Input: ads7846 - correct the value got from SPI

    Linus Torvalds