21 Sep, 2020

1 commit


24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

06 Aug, 2020

1 commit

  • Pull networking updates from David Miller:

    1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan.

    2) Support UDP segmentation in code TSO code, from Eric Dumazet.

    3) Allow flashing different flash images in cxgb4 driver, from Vishal
    Kulkarni.

    4) Add drop frames counter and flow status to tc flower offloading,
    from Po Liu.

    5) Support n-tuple filters in cxgb4, from Vishal Kulkarni.

    6) Various new indirect call avoidance, from Eric Dumazet and Brian
    Vazquez.

    7) Fix BPF verifier failures on 32-bit pointer arithmetic, from
    Yonghong Song.

    8) Support querying and setting hardware address of a port function via
    devlink, use this in mlx5, from Parav Pandit.

    9) Support hw ipsec offload on bonding slaves, from Jarod Wilson.

    10) Switch qca8k driver over to phylink, from Jonathan McDowell.

    11) In bpftool, show list of processes holding BPF FD references to
    maps, programs, links, and btf objects. From Andrii Nakryiko.

    12) Several conversions over to generic power management, from Vaibhav
    Gupta.

    13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry
    Yakunin.

    14) Various https url conversions, from Alexander A. Klimov.

    15) Timestamping and PHC support for mscc PHY driver, from Antoine
    Tenart.

    16) Support bpf iterating over tcp and udp sockets, from Yonghong Song.

    17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov.

    18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan.

    19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several
    drivers. From Luc Van Oostenryck.

    20) XDP support for xen-netfront, from Denis Kirjanov.

    21) Support receive buffer autotuning in MPTCP, from Florian Westphal.

    22) Support EF100 chip in sfc driver, from Edward Cree.

    23) Add XDP support to mvpp2 driver, from Matteo Croce.

    24) Support MPTCP in sock_diag, from Paolo Abeni.

    25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic
    infrastructure, from Jakub Kicinski.

    26) Several pci_ --> dma_ API conversions, from Christophe JAILLET.

    27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel.

    28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki.

    29) Refactor a lot of networking socket option handling code in order to
    avoid set_fs() calls, from Christoph Hellwig.

    30) Add rfc4884 support to icmp code, from Willem de Bruijn.

    31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei.

    32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin.

    33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin.

    34) Support TCP syncookies in MPTCP, from Flowian Westphal.

    35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano
    Brivio.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits)
    net: thunderx: initialize VF's mailbox mutex before first usage
    usb: hso: remove bogus check for EINPROGRESS
    usb: hso: no complaint about kmalloc failure
    hso: fix bailout in error case of probe
    ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM
    selftests/net: relax cpu affinity requirement in msg_zerocopy test
    mptcp: be careful on subflow creation
    selftests: rtnetlink: make kci_test_encap() return sub-test result
    selftests: rtnetlink: correct the final return value for the test
    net: dsa: sja1105: use detected device id instead of DT one on mismatch
    tipc: set ub->ifindex for local ipv6 address
    ipv6: add ipv6_dev_find()
    net: openvswitch: silence suspicious RCU usage warning
    Revert "vxlan: fix tos value before xmit"
    ptp: only allow phase values lower than 1 period
    farsync: switch from 'pci_' to 'dma_' API
    wan: wanxl: switch from 'pci_' to 'dma_' API
    hv_netvsc: do not use VF device if link is down
    dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
    net: macb: Properly handle phylink on at91sam9x
    ...

    Linus Torvalds
     

17 Jul, 2020

1 commit

  • Using uninitialized_var() is dangerous as it papers over real bugs[1]
    (or can in the future), and suppresses unrelated compiler warnings
    (e.g. "unused variable"). If the compiler thinks it is uninitialized,
    either simply initialize the variable or make compiler changes.

    In preparation for removing[2] the[3] macro[4], remove all remaining
    needless uses with the following script:

    git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
    xargs perl -pi -e \
    's/\buninitialized_var\(([^\)]+)\)/\1/g;
    s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'

    drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
    pathological white-space.

    No outstanding warnings were found building allmodconfig with GCC 9.3.0
    for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
    alpha, and m68k.

    [1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
    [2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
    [3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
    [4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/

    Reviewed-by: Leon Romanovsky # drivers/infiniband and mlx4/mlx5
    Acked-by: Jason Gunthorpe # IB
    Acked-by: Kalle Valo # wireless drivers
    Reviewed-by: Chao Yu # erofs
    Signed-off-by: Kees Cook

    Kees Cook
     

16 Jul, 2020

1 commit

  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Deterministic algorithm:
    For each file:
    If not .svg:
    For each line:
    If doesn't contain `\bxmlns\b`:
    For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
    If neither `\bgnu\.org/license`, nor `\bmozilla\.org/MPL\b`:
    If both the HTTP and HTTPS versions
    return 200 OK and serve the same content:
    Replace HTTP with HTTPS.

    Signed-off-by: Alexander A. Klimov
    Signed-off-by: Kalle Valo
    Link: https://lore.kernel.org/r/20200710062151.28871-1-grandmaster@al2klimov.de

    Alexander A. Klimov
     

28 Apr, 2020

2 commits


12 Mar, 2020

1 commit


06 Jan, 2020

1 commit


13 Sep, 2019

1 commit

  • Don't populate the array pwr_info_offset on the stack but instead make it
    static const. Makes the object code smaller by 207 bytes.

    Before:
    text data bss dec hex filename
    26066 3000 64 29130 71ca drivers/ssb/pci.o

    After:
    text data bss dec hex filename
    25763 3096 64 28923 70fb drivers/ssb/pci.o

    (gcc version 9.2.1, amd64)

    Signed-off-by: Colin Ian King
    Acked-by: Michael Büsch
    Signed-off-by: Kalle Valo

    Colin Ian King
     

25 Jun, 2019

1 commit


21 May, 2019

1 commit


08 May, 2019

1 commit

  • Pull networking updates from David Miller:
    "Highlights:

    1) Support AES128-CCM ciphers in kTLS, from Vakul Garg.

    2) Add fib_sync_mem to control the amount of dirty memory we allow to
    queue up between synchronize RCU calls, from David Ahern.

    3) Make flow classifier more lockless, from Vlad Buslov.

    4) Add PHY downshift support to aquantia driver, from Heiner
    Kallweit.

    5) Add SKB cache for TCP rx and tx, from Eric Dumazet. This reduces
    contention on SLAB spinlocks in heavy RPC workloads.

    6) Partial GSO offload support in XFRM, from Boris Pismenny.

    7) Add fast link down support to ethtool, from Heiner Kallweit.

    8) Use siphash for IP ID generator, from Eric Dumazet.

    9) Pull nexthops even further out from ipv4/ipv6 routes and FIB
    entries, from David Ahern.

    10) Move skb->xmit_more into a per-cpu variable, from Florian
    Westphal.

    11) Improve eBPF verifier speed and increase maximum program size,
    from Alexei Starovoitov.

    12) Eliminate per-bucket spinlocks in rhashtable, and instead use bit
    spinlocks. From Neil Brown.

    13) Allow tunneling with GUE encap in ipvs, from Jacky Hu.

    14) Improve link partner cap detection in generic PHY code, from
    Heiner Kallweit.

    15) Add layer 2 encap support to bpf_skb_adjust_room(), from Alan
    Maguire.

    16) Remove SKB list implementation assumptions in SCTP, your's truly.

    17) Various cleanups, optimizations, and simplifications in r8169
    driver. From Heiner Kallweit.

    18) Add memory accounting on TX and RX path of SCTP, from Xin Long.

    19) Switch PHY drivers over to use dynamic featue detection, from
    Heiner Kallweit.

    20) Support flow steering without masking in dpaa2-eth, from Ioana
    Ciocoi.

    21) Implement ndo_get_devlink_port in netdevsim driver, from Jiri
    Pirko.

    22) Increase the strict parsing of current and future netlink
    attributes, also export such policies to userspace. From Johannes
    Berg.

    23) Allow DSA tag drivers to be modular, from Andrew Lunn.

    24) Remove legacy DSA probing support, also from Andrew Lunn.

    25) Allow ll_temac driver to be used on non-x86 platforms, from Esben
    Haabendal.

    26) Add a generic tracepoint for TX queue timeouts to ease debugging,
    from Cong Wang.

    27) More indirect call optimizations, from Paolo Abeni"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1763 commits)
    cxgb4: Fix error path in cxgb4_init_module
    net: phy: improve pause mode reporting in phy_print_status
    dt-bindings: net: Fix a typo in the phy-mode list for ethernet bindings
    net: macb: Change interrupt and napi enable order in open
    net: ll_temac: Improve error message on error IRQ
    net/sched: remove block pointer from common offload structure
    net: ethernet: support of_get_mac_address new ERR_PTR error
    net: usb: smsc: fix warning reported by kbuild test robot
    staging: octeon-ethernet: Fix of_get_mac_address ERR_PTR check
    net: dsa: support of_get_mac_address new ERR_PTR error
    net: dsa: sja1105: Fix status initialization in sja1105_get_ethtool_stats
    vrf: sit mtu should not be updated when vrf netdev is the link
    net: dsa: Fix error cleanup path in dsa_init_module
    l2tp: Fix possible NULL pointer dereference
    taprio: add null check on sched_nest to avoid potential null pointer dereference
    net: mvpp2: cls: fix less than zero check on a u32 variable
    net_sched: sch_fq: handle non connected flows
    net_sched: sch_fq: do not assume EDT packets are ordered
    net: hns3: use devm_kcalloc when allocating desc_cb
    net: hns3: some cleanup for struct hns3_enet_ring
    ...

    Linus Torvalds
     

26 Apr, 2019

1 commit

  • Syzkaller report this:

    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN PTI
    CPU: 0 PID: 4492 Comm: syz-executor.0 Not tainted 5.0.0-rc7+ #45
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    RIP: 0010:sysfs_remove_file_ns+0x27/0x70 fs/sysfs/file.c:468
    Code: 00 00 00 41 54 55 48 89 fd 53 49 89 d4 48 89 f3 e8 ee 76 9c ff 48 8d 7d 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 3c 02 00 75 2d 48 89 da 48 b8 00 00 00 00 00 fc ff df 48 8b 6d
    RSP: 0018:ffff8881e9d9fc00 EFLAGS: 00010206
    RAX: dffffc0000000000 RBX: ffffffff900367e0 RCX: ffffffff81a95952
    RDX: 0000000000000006 RSI: ffffc90001405000 RDI: 0000000000000030
    RBP: 0000000000000000 R08: fffffbfff1fa22ed R09: fffffbfff1fa22ed
    R10: 0000000000000001 R11: fffffbfff1fa22ec R12: 0000000000000000
    R13: ffffffffc1abdac0 R14: 1ffff1103d3b3f8b R15: 0000000000000000
    FS: 00007fe409dc1700(0000) GS:ffff8881f1200000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001b2d721000 CR3: 00000001e98b6005 CR4: 00000000007606f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
    sysfs_remove_file include/linux/sysfs.h:519 [inline]
    driver_remove_file+0x40/0x50 drivers/base/driver.c:122
    pcmcia_remove_newid_file drivers/pcmcia/ds.c:163 [inline]
    pcmcia_unregister_driver+0x7d/0x2b0 drivers/pcmcia/ds.c:209
    ssb_modexit+0xa/0x1b [ssb]
    __do_sys_delete_module kernel/module.c:1018 [inline]
    __se_sys_delete_module kernel/module.c:961 [inline]
    __x64_sys_delete_module+0x3dc/0x5e0 kernel/module.c:961
    do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
    entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x462e99
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007fe409dc0c58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0
    RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000200000c0
    RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe409dc16bc
    R13: 00000000004bccaa R14: 00000000006f6bc8 R15: 00000000ffffffff
    Modules linked in: ssb(-) 3c59x nvme_core macvlan tap pata_hpt3x3 rt2x00pci null_blk tsc40 pm_notifier_error_inject notifier_error_inject mdio cdc_wdm nf_reject_ipv4 ath9k_common ath9k_hw ath pppox ppp_generic slhc ehci_platform wl12xx wlcore tps6507x_ts ioc4 nf_synproxy_core ide_gd_mod ax25 can_dev iwlwifi can_raw atm tm2_touchkey can_gw can sundance adp5588_keys rt2800mmio rt2800lib rt2x00mmio rt2x00lib eeprom_93cx6 pn533 lru_cache elants_i2c ip_set nfnetlink gameport tipc hampshire nhc_ipv6 nhc_hop nhc_udp nhc_fragment nhc_routing nhc_mobility nhc_dest 6lowpan silead brcmutil nfc mt76_usb mt76 mac80211 iptable_security iptable_raw iptable_mangle iptable_nat nf_nat_ipv4 nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_gre sit hsr veth vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon vcan bridge stp llc ip6_gre ip6_tunnel tunnel6 tun joydev mousedev serio_raw ide_pci_generic piix floppy ide_core sch_fq_codel ip_tables x_tables ipv6
    [last unloaded: 3c59x]
    Dumping ftrace buffer:
    (ftrace buffer empty)
    ---[ end trace 3913cbf8011e1c05 ]---

    In ssb_modinit, it does not fail SSB init when ssb_host_pcmcia_init failed,
    however in ssb_modexit, ssb_host_pcmcia_exit calls pcmcia_unregister_driver
    unconditionally, which may tigger a NULL pointer dereference issue as above.

    Reported-by: Hulk Robot
    Fixes: 399500da18f7 ("ssb: pick PCMCIA host code support from b43 driver")
    Signed-off-by: YueHaibing
    Signed-off-by: Kalle Valo

    YueHaibing
     

08 Apr, 2019

1 commit

  • mmiowb() is now implied by spin_unlock() on architectures that require
    it, so there is no reason to call it from driver code. This patch was
    generated using coccinelle:

    @mmiowb@
    @@
    - mmiowb();

    and invoked as:

    $ for d in drivers include/linux/qed sound; do \
    spatch --include-headers --sp-file mmiowb.cocci --dir $d --in-place; done

    NOTE: mmiowb() has only ever guaranteed ordering in conjunction with
    spin_unlock(). However, pairing each mmiowb() removal in this patch with
    the corresponding call to spin_unlock() is not at all trivial, so there
    is a small chance that this change may regress any drivers incorrectly
    relying on mmiowb() to order MMIO writes between CPUs using lock-free
    synchronisation. If you've ended up bisecting to this commit, you can
    reintroduce the mmiowb() calls using wmb() instead, which should restore
    the old behaviour on all architectures other than some esoteric ia64
    systems.

    Acked-by: Linus Torvalds
    Signed-off-by: Will Deacon

    Will Deacon
     

05 Oct, 2018

1 commit


09 Aug, 2018

3 commits


12 May, 2018

2 commits

  • SSB_PCICORE_HOSTMODE protects MIPS specific code that calls not exported
    symbols pcibios_enable_device and register_pci_controller. This code is
    supposed to be compiled only with ssb builtin.

    This fixes:
    ERROR: "pcibios_enable_device" [drivers/ssb/ssb.ko] undefined!
    ERROR: "register_pci_controller" [drivers/ssb/ssb.ko] undefined!
    make[1]: *** [scripts/Makefile.modpost:92: __modpost] Error 1

    Reported-by: Matt Redfearn
    Signed-off-by: Rafał Miłecki
    Reviewed-by: Larry Finger
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     
  • This reverts commit 882164a4a928bcaa53280940436ca476e6b1db8e.

    Above commit added "SSB = y" dependency to the wrong symbol
    SSB_DRIVER_PCICORE_POSSIBLE and prevented SSB_DRIVER_PCICORE from being
    selected when needed. PCI core driver for core running in clienthost
    mode is important for bus initialization. It's perfectly valid scenario
    to have ssb built as module and use it with buses on PCI cards.

    This fixes regression that affected all *module* users with PCI cards.

    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1572349
    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     

14 Mar, 2018

1 commit


28 Feb, 2018

2 commits


01 Feb, 2018

1 commit


26 Jan, 2018

1 commit

  • After upgrading an old laptop to 4.15-rc9, I found that the eth0 and
    wlan0 interfaces had disappeared. It turns out that the b43 and b44
    drivers require SSB_PCIHOST_POSSIBLE which depends on
    PCI_DRIVERS_LEGACY, a config option that only exists on Mips.

    Fixes: 58eae1416b80 ("ssb: Disable PCI host for PCI_DRIVERS_GENERIC")
    Cc: stable@vger.org
    Signed-off-by: Sven Joachim
    Reviewed-by: James Hogan
    Signed-off-by: Kalle Valo

    Sven Joachim
     

20 Jan, 2018

1 commit


17 Jan, 2018

1 commit

  • Since commit d41e6858ba58 ("MIPS: Kconfig: Set default MIPS system type
    as generic") changed the default MIPS platform to the "generic"
    platform, which uses PCI_DRIVERS_GENERIC instead of PCI_DRIVERS_LEGACY,
    various files in drivers/ssb/ have failed to build.

    This is particularly due to the existence of struct pci_controller being
    dependent on PCI_DRIVERS_LEGACY since commit c5611df96804 ("MIPS: PCI:
    Introduce CONFIG_PCI_DRIVERS_LEGACY"), so add that dependency to Kconfig
    to prevent these files being built for the "generic" platform including
    all{yes,mod}config builds.

    Fixes: c5611df96804 ("MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY")
    Signed-off-by: James Hogan
    Cc: Michael Buesch
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: Matt Redfearn
    Cc: Guenter Roeck
    Cc: linux-wireless@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Tested-by: Guenter Roeck
    Signed-off-by: Kalle Valo

    James Hogan
     

07 Dec, 2017

1 commit

  • No need to get into the submenu to disable all SSB-related
    config entries.

    This makes it easier to disable all SSB config options
    without entering the submenu. It will also enable one
    to see that en/dis-abled state from the outside menu.

    This is only intended to change menuconfig UI, not change
    the config dependencies.

    Signed-off-by: Vincent Legoll
    Signed-off-by: Kalle Valo

    Vincent Legoll
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

24 May, 2017

1 commit


17 Nov, 2016

1 commit


06 Jul, 2016

1 commit


26 Apr, 2016

1 commit


26 Feb, 2016

1 commit

  • Drivers that use the SSB sprom functionality typically 'select SSB_SPROM'
    from Kconfig, but CONFIG_SSB_HOST_SOC misses this, which results in
    a build failure unless at least one of the other drivers that selects
    it is enabled:

    drivers/built-in.o: In function `ssb_host_soc_get_invariants':
    (.text+0x459494): undefined reference to `ssb_fill_sprom_with_fallback'

    This adds the same select statement that is used elsewhere.

    Signed-off-by: Arnd Bergmann
    Fixes: 541c9a84cd85 ("ssb: pick SoC invariants code from MIPS BCM47xx arch")
    Signed-off-by: Kalle Valo

    Arnd Bergmann
     

20 Jan, 2016

1 commit

  • The SoC variant of the ssb code is now optional like the other
    ones, which means we can build the framwork without any
    front-end, but that results in a warning:

    drivers/ssb/main.c:616:12: warning: 'ssb_bus_register' defined but not used [-Wunused-function]

    This annotates the ssb_bus_register function as __maybe_unused to
    shut up the warning. A configuration like this will not work on
    any hardware of course, but we still want this to silently build
    without warnings if the configuration is allowed in the first
    place.

    Signed-off-by: Arnd Bergmann
    Fixes: 845da6e58e19 ("ssb: add Kconfig entry for compiling SoC related code")
    Acked-by: Michael Buesch
    Signed-off-by: Kalle Valo

    Arnd Bergmann
     

16 Dec, 2015

1 commit

  • There is code in ssb fetching "invariants" that is basically a set of
    board specific data. Every host requires its own implementation of
    reading function. In ssb we have support for PCI, PCMCIA & SDIO.
    For some (historical?) reason code reading "invariants" for SoC was
    placed in arch code and provided by a callback. This is not needed
    nowadays, so lets move that into ssb. This way we keep all "invariants"
    functions in a single module making code cleaner.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     

29 Oct, 2015

3 commits

  • This allows saving a little of space when not using ssb on Broadcom SoC.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     
  • This cleans main.c a bit and will allow us to compile SoC related code
    conditionally in the future.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki
     
  • ssb bus can be found on various "host" devices like PCI/PCMCIA/SDIO.
    Every ssb bus contains cores AKA devices.
    The main idea is to have ssb driver scan/initialize bus and register
    ready-to-use cores. This way ssb drivers can operate on a single core
    mostly ignoring underlaying details.

    For some reason PCMCIA support was split between ssb and b43. We got
    PCMCIA host device probing in b43, then bus scanning in ssb and then
    wireless core probing back in b43. The truth is it's very unlikely we
    will ever see PCMCIA ssb device with no 802.11 core but I still don't
    see any advantage of the current architecture.

    With proposed change we get the same functionality with a simpler
    architecture, less Kconfig symbols, one killed EXPORT and hopefully
    cleaner b43. Since b43 supports both: ssb & bcma I prefer to keep ssb
    specific code in ssb driver.

    This mostly moves code from b43's pcmcia.c to bridge_pcmcia_80211.c. We
    already use similar solution with b43_pci_bridge.c. I didn't use "b43"
    in name of this new file as in theory any driver can operate on wireless
    core.

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Kalle Valo

    Rafał Miłecki