20 Jan, 2021

1 commit

  • [ Upstream commit 152a8a6c017bfdeda7f6d052fbc6e151891bd9b6 ]

    Without crc32 support, this fails to link:

    arm-linux-gnueabi-ld: net/wireless/scan.o: in function `cfg80211_scan_6ghz':
    scan.c:(.text+0x928): undefined reference to `crc32_le'

    Fixes: c8cb5b854b40 ("nl80211/cfg80211: support 6 GHz scanning")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin

    Arnd Bergmann
     

18 Sep, 2020

1 commit

  • When LIB80211_CRYPT_CCMP is enabled and CRYPTO is disabled, it results in unmet
    direct dependencies config warning. The reason is that LIB80211_CRYPT_CCMP
    selects CRYPTO_AES and CRYPTO_CCM, which are subordinate to CRYPTO. This is
    reproducible with CRYPTO disabled and R8188EU enabled, where R8188EU selects
    LIB80211_CRYPT_CCMP but does not select or depend on CRYPTO.

    Honor the kconfig menu hierarchy to remove kconfig dependency warnings.

    Fixes: a11e2f85481c ("lib80211: use crypto API ccm(aes) transform for CCMP processing")
    Signed-off-by: Necip Fazil Yildiran
    Link: https://lore.kernel.org/r/20200909095452.3080-1-fazilyildiran@gmail.com
    Signed-off-by: Johannes Berg

    Necip Fazil Yildiran
     

14 Jun, 2020

2 commits

  • Pull networking fixes from David Miller:

    1) Fix cfg80211 deadlock, from Johannes Berg.

    2) RXRPC fails to send norigications, from David Howells.

    3) MPTCP RM_ADDR parsing has an off by one pointer error, fix from
    Geliang Tang.

    4) Fix crash when using MSG_PEEK with sockmap, from Anny Hu.

    5) The ucc_geth driver needs __netdev_watchdog_up exported, from
    Valentin Longchamp.

    6) Fix hashtable memory leak in dccp, from Wang Hai.

    7) Fix how nexthops are marked as FDB nexthops, from David Ahern.

    8) Fix mptcp races between shutdown and recvmsg, from Paolo Abeni.

    9) Fix crashes in tipc_disc_rcv(), from Tuong Lien.

    10) Fix link speed reporting in iavf driver, from Brett Creeley.

    11) When a channel is used for XSK and then reused again later for XSK,
    we forget to clear out the relevant data structures in mlx5 which
    causes all kinds of problems. Fix from Maxim Mikityanskiy.

    12) Fix memory leak in genetlink, from Cong Wang.

    13) Disallow sockmap attachments to UDP sockets, it simply won't work.
    From Lorenz Bauer.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (83 commits)
    net: ethernet: ti: ale: fix allmulti for nu type ale
    net: ethernet: ti: am65-cpsw-nuss: fix ale parameters init
    net: atm: Remove the error message according to the atomic context
    bpf: Undo internal BPF_PROBE_MEM in BPF insns dump
    libbpf: Support pre-initializing .bss global variables
    tools/bpftool: Fix skeleton codegen
    bpf: Fix memlock accounting for sock_hash
    bpf: sockmap: Don't attach programs to UDP sockets
    bpf: tcp: Recv() should return 0 when the peer socket is closed
    ibmvnic: Flush existing work items before device removal
    genetlink: clean up family attributes allocations
    net: ipa: header pad field only valid for AP->modem endpoint
    net: ipa: program upper nibbles of sequencer type
    net: ipa: fix modem LAN RX endpoint id
    net: ipa: program metadata mask differently
    ionic: add pcie_print_link_status
    rxrpc: Fix race between incoming ACK parser and retransmitter
    net/mlx5: E-Switch, Fix some error pointer dereferences
    net/mlx5: Don't fail driver on failure to create debugfs
    net/mlx5e: CT: Fix ipv6 nat header rewrite actions
    ...

    Linus Torvalds
     
  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

08 Jun, 2020

1 commit


27 May, 2020

1 commit

  • Back with commit c8c240e284b3 (cfg80211: reg: remove support for
    built-in regdb, 2015-10-15), support for using CFG80211_INTERNAL_REGDB
    was removed in favor of loading the regulatory database as firmware
    file. The documentation of CFG80211_CRDA_SUPPORT was not adjusted,
    though, which is why it still mentions mentions the old way of loading
    via the internal regulatory database.

    Remove it so that the kernel option only mentions using the firmware
    file.

    Signed-off-by: Patrick Steinhardt
    Link: https://lore.kernel.org/r/c56e60207fbd0512029de8c6276ee00f73491924.1589732954.git.ps@pks.im
    Signed-off-by: Johannes Berg

    Patrick Steinhardt
     

26 Jul, 2019

1 commit

  • Instead of open coding the CCM aead mode in the driver, and invoking
    the AES block cipher block by block, use a ccm(aes) aead transform
    which already encapsulates this functionality. This is a cleaner use
    of the crypto API, and permits optimized implementations to be used,
    which are typically much faster and deal more efficiently with the
    SIMD register file, which usually needs to be preserved/restored in
    order to use special AES instructions.

    Signed-off-by: Ard Biesheuvel
    Link: https://lore.kernel.org/r/20190617091901.7063-1-ard.biesheuvel@linaro.org
    Signed-off-by: Johannes Berg

    Ard Biesheuvel
     

16 Jul, 2019

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Enumeration changes:

    - Evaluate PCI Boot Configuration _DSM to learn if firmware wants us
    to preserve its resource assignments (Benjamin Herrenschmidt)

    - Simplify resource distribution (Nicholas Johnson)

    - Decode 32 GT/s link speed (Gustavo Pimentel)

    Virtualization:

    - Fix incorrect caching of VF config space size (Alex Williamson)

    - Fix VF driver probing sysfs knobs (Alex Williamson)

    Peer-to-peer DMA:

    - Fix dma_virt_ops check (Logan Gunthorpe)

    Altera host bridge driver:

    - Allow building as module (Ley Foon Tan)

    Armada 8K host bridge driver:

    - add PHYs support (Miquel Raynal)

    DesignWare host bridge driver:

    - Export APIs to support removable loadable module (Vidya Sagar)

    - Enable Relaxed Ordering erratum workaround only on Tegra20 &
    Tegra30 (Vidya Sagar)

    Hyper-V host bridge driver:

    - Fix use-after-free in eject (Dexuan Cui)

    Mobiveil host bridge driver:

    - Clean up and fix many issues, including non-identify mapped
    windows, 64-bit windows, multi-MSI, class code, INTx clearing (Hou
    Zhiqiang)

    Qualcomm host bridge driver:

    - Use clk bulk API for 2.4.0 controllers (Bjorn Andersson)

    - Add QCS404 support (Bjorn Andersson)

    - Assert PERST for at least 100ms (Niklas Cassel)

    R-Car host bridge driver:

    - Add r8a774a1 DT support (Biju Das)

    Tegra host bridge driver:

    - Add support for Gen2, opportunistic UpdateFC and ACK (PCIe protocol
    details) AER, GPIO-based PERST# (Manikanta Maddireddy)

    - Fix many issues, including power-on failure cases, interrupt
    masking in suspend, UPHY settings, AFI dynamic clock gating,
    pending DLL transactions (Manikanta Maddireddy)

    Xilinx host bridge driver:

    - Fix NWL Multi-MSI programming (Bharat Kumar Gogada)

    Endpoint support:

    - Fix 64bit BAR support (Alan Mikhak)

    - Fix pcitest build issues (Alan Mikhak, Andy Shevchenko)

    Bug fixes:

    - Fix NVIDIA GPU multi-function power dependencies (Abhishek Sahu)

    - Fix NVIDIA GPU HDA enablement issue (Lukas Wunner)

    - Ignore lockdep for sysfs "remove" (Marek Vasut)

    Misc:

    - Convert docs to reST (Changbin Du, Mauro Carvalho Chehab)"

    * tag 'pci-v5.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (107 commits)
    PCI: Enable NVIDIA HDA controllers
    tools: PCI: Fix installation when `make tools/pci_install`
    PCI: dwc: pci-dra7xx: Fix compilation when !CONFIG_GPIOLIB
    PCI: Fix typos and whitespace errors
    PCI: mobiveil: Fix INTx interrupt clearing in mobiveil_pcie_isr()
    PCI: mobiveil: Fix infinite-loop in the INTx handling function
    PCI: mobiveil: Move PCIe PIO enablement out of inbound window routine
    PCI: mobiveil: Add upper 32-bit PCI base address setup in inbound window
    PCI: mobiveil: Add upper 32-bit CPU base address setup in outbound window
    PCI: mobiveil: Mask out hardcoded bits in inbound/outbound windows setup
    PCI: mobiveil: Clear the control fields before updating it
    PCI: mobiveil: Add configured inbound windows counter
    PCI: mobiveil: Fix the valid check for inbound and outbound windows
    PCI: mobiveil: Clean-up program_{ib/ob}_windows()
    PCI: mobiveil: Remove an unnecessary return value check
    PCI: mobiveil: Fix error return values
    PCI: mobiveil: Refactor the MEM/IO outbound window initialization
    PCI: mobiveil: Make some register updates more readable
    PCI: mobiveil: Reformat the code for readability
    dt-bindings: PCI: mobiveil: Change gpio_slave and apb_csr to optional
    ...

    Linus Torvalds
     

09 Jul, 2019

1 commit

  • Pull crypto updates from Herbert Xu:
    "Here is the crypto update for 5.3:

    API:
    - Test shash interface directly in testmgr
    - cra_driver_name is now mandatory

    Algorithms:
    - Replace arc4 crypto_cipher with library helper
    - Implement 5 way interleave for ECB, CBC and CTR on arm64
    - Add xxhash
    - Add continuous self-test on noise source to drbg
    - Update jitter RNG

    Drivers:
    - Add support for SHA204A random number generator
    - Add support for 7211 in iproc-rng200
    - Fix fuzz test failures in inside-secure
    - Fix fuzz test failures in talitos
    - Fix fuzz test failures in qat"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (143 commits)
    crypto: stm32/hash - remove interruptible condition for dma
    crypto: stm32/hash - Fix hmac issue more than 256 bytes
    crypto: stm32/crc32 - rename driver file
    crypto: amcc - remove memset after dma_alloc_coherent
    crypto: ccp - Switch to SPDX license identifiers
    crypto: ccp - Validate the the error value used to index error messages
    crypto: doc - Fix formatting of new crypto engine content
    crypto: doc - Add parameter documentation
    crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
    crypto: arm64/aes-ce - add 5 way interleave routines
    crypto: talitos - drop icv_ool
    crypto: talitos - fix hash on SEC1.
    crypto: talitos - move struct talitos_edesc into talitos.h
    lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
    crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
    crypto: asymmetric_keys - select CRYPTO_HASH where needed
    crypto: serpent - mark __serpent_setkey_sbox noinline
    crypto: testmgr - dynamically allocate crypto_shash
    crypto: testmgr - dynamically allocate testvec_config
    crypto: talitos - eliminate unneeded 'done' functions at build time
    ...

    Linus Torvalds
     

20 Jun, 2019

2 commits


15 Jun, 2019

1 commit

  • Convert the PM documents to ReST, in order to allow them to
    build with Sphinx.

    The conversion is actually:
    - add blank lines and indentation in order to identify paragraphs;
    - fix tables markups;
    - add some lists markups;
    - mark literal blocks;
    - adjust title markups.

    At its new index.rst, let's add a :orphan: while this is not linked to
    the main index.rst file, in order to avoid build warnings.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Bjorn Helgaas
    Acked-by: Mark Brown
    Acked-by: Srivatsa S. Bhat (VMware)

    Mauro Carvalho Chehab
     

21 May, 2019

1 commit


27 Feb, 2018

1 commit

  • New options introduced by the patch this fixes are still
    enabled even if CFG80211 is disabled.

    .config:
    # CONFIG_CFG80211 is not set
    CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
    CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
    # CONFIG_LIB80211 is not set

    When CFG80211_REQUIRE_SIGNED_REGDB is enabled, it selects
    SYSTEM_DATA_VERIFICATION which selects SYSTEM_TRUSTED_KEYRING
    that need extract-cert tool. extract-cert needs some openssl
    headers to be installed on the build machine.

    Instead of adding missing "depends on CFG80211", it's
    easier to use a 'if' block around all options related
    to CFG80211, so do that.

    Fixes: 90a53e4432b1 ("cfg80211: implement regdb signature checking")
    Signed-off-by: Romain Naour
    [touch up commit message a bit]
    Signed-off-by: Johannes Berg

    Romain Naour
     

25 Nov, 2017

1 commit

  • When regulatory database certificates are built-in, they're
    currently using the SHA256 digest algorithm, so add that to
    the build in that case.

    Also add a note that for custom certificates, one may need
    to add the right algorithms.

    Reported-by: Florian Fainelli
    Tested-by: Florian Fainelli
    Signed-off-by: Johannes Berg

    Johannes Berg
     

11 Oct, 2017

3 commits

  • Currently CRDA implements the signature checking, and the previous
    commits added the ability to load the whole regulatory database
    into the kernel.

    However, we really can't lose the signature checking, so implement
    it in the kernel by loading a detached signature (regulatory.db.p7s)
    and check it against built-in keys.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Parsing and building C structures from a regdb is no longer needed
    since the "firmware" file (regulatory.db) can be linked into the
    kernel image to achieve the same effect.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • As the current regulatory database is only about 4k big, and already
    difficult to extend, we decided that overall it would be better to
    get rid of the complications with CRDA and load the database into the
    kernel directly, but in a new format that is extensible.

    The new file format can be extended since it carries a length field
    on all the structs that need to be extensible.

    In order to be able to request firmware when the module initializes,
    move cfg80211 from subsys_initcall() to the later fs_initcall(); the
    firmware loader is at the same level but linked earlier, so it can
    be called from there. Otherwise, when both the firmware loader and
    cfg80211 are built-in, the request will crash the kernel. We also
    need to be before device_initcall() so that cfg80211 is available
    for devices when they initialize.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

24 Feb, 2016

1 commit


14 Jan, 2016

1 commit


16 Oct, 2015

1 commit


08 Apr, 2015

1 commit

  • The change to only export WEXT symbols when required could break
    the build if CONFIG_CFG80211_WEXT was explicitly disabled while
    a driver like orinoco selected it.

    Fix this by hiding the symbol when it's required so it can't be
    disabled in that case.

    Fixes: 2afe38d15cee ("cfg80211-wext: export symbols only when needed")
    Reported-by: Randy Dunlap
    Reported-by: Jim Davis
    Signed-off-by: Johannes Berg

    Johannes Berg
     

01 Mar, 2015

1 commit

  • When a fully converted cfg80211 driver needs cfg80211-wext for
    userspace API purposes, the symbols need not be exported. When
    other drivers (orinoco/hermes or ipw2200) are enabled, they do
    need the symbols exported as they use them directly.

    Make those drivers select a new CFG80211_WEXT_EXPORT Kconfig
    symbol (instead of just CFG80211_WEXT) and export the functions
    only if requested - this saves about 1/2k due to the size of
    EXPORT_SYMBOL() itself.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

31 Dec, 2014

1 commit

  • This reverts commit 24a0aa212ee2dbe44360288684478d76a8e20a0a.

    It's causing severe userspace breakage. Namely, all the utilities from
    wireless-utils which are relying on CONFIG_WEXT (which means tools like
    'iwconfig', 'iwlist', etc) are not working anymore. There is a 'iw'
    utility in newer wireless-tools, which is supposed to be a replacement
    for all the "deprecated" binaries, but it's far away from being
    massively adopted.

    Please see [1] for example of the userspace breakage this is causing.

    In addition to that, Larry Finger reports [2] that this patch is also
    causing ipw2200 driver being impossible to build.

    To me this clearly shows that CONFIG_WEXT is far, far away from being
    "deprecated enough" to be removed.

    [1] http://thread.gmane.org/gmane.linux.kernel/1857010
    [2] http://thread.gmane.org/gmane.linux.network/343688

    Signed-off-by: Jiri Kosina
    Signed-off-by: Linus Torvalds

    Jiri Kosina
     

28 Nov, 2014

1 commit

  • This option has been marked for deprecation and removal for
    a little more than two years, but it's not been very clearly
    signalled since it was always possible to just select it.

    Make it unselectable now to signal anyone who's still using
    it after all this time more clearly. They can still get it
    back, but only by patching the kernel.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

21 Jul, 2014

1 commit

  • Since "wireless-regdb: remove antenna gain" was merged in the
    wireless-regdb tree, the awk script parser has been incompatible
    with the 'official' regulatory database. This fixes that up.
    Without this change the max EIRP is set to 0 making 802.11 devices
    useless.

    The fragile nature of the awk parser must be replaced, but ideas
    over how to do that in the most scalable way are being reviewed.
    In the meantime update the documentation for CFG80211_INTERNAL_REGDB
    so folks are aware of expectations for now.

    Reported-by: John Walker
    Reported-by: Krishna Chaitanya
    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: Johannes Berg

    Luis R. Rodriguez
     

09 Apr, 2014

2 commits

  • Allow GO operation on a channel marked with IEEE80211_CHAN_GO_CONCURRENT
    iff there is an active station interface that is associated to
    an AP operating on the same channel in the 2 GHz band or the same UNII band
    (in the 5 GHz band). This relaxation is not allowed if the channel is
    marked with IEEE80211_CHAN_RADAR.

    Note that this is a permissive approach to the FCC definitions,
    that require a clear assessment that the device operating the AP is
    an authorized master, i.e., with radar detection and DFS capabilities.

    It is assumed that such restrictions are enforced by user space.
    Furthermore, it is assumed, that if the conditions that allowed for
    the operation of the GO on such a channel change, i.e., the station
    interface disconnected from the AP, it is the responsibility of user
    space to evacuate the GO from the channel.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan Peer
     
  • Move the regulatory cellular base station hints support under
    a specific configuration option and make the option depend
    on CFG80211_CERTIFICATION_ONUS.

    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan Peer
     

17 Nov, 2012

1 commit


17 Jul, 2012

1 commit

  • This adds CONFIG_CFG80211_CERTIFICATION_ONUS which is to
    be used for features / code which require a bit of work on
    the system integrator's part to ensure that the system will
    still pass 802.11 regulatory certification. This option is
    also usable for researchers and experimenters looking to add
    code in the kernel without impacting compliant code.

    We'd use CONFIG_EXPERT alone but it seems that most standard
    Linux distributions are enabling CONFIG_EXPERT already. This
    allows us to define 802.11 specific kernel features under a
    flag that is intended by design to be disabled by standard
    Linux distributions, and only enabled by system integrators
    or distributions that have done work to ensure regulatory
    certification on the system with the enabled features.

    Signed-off-by: Luis R. Rodriguez
    Signed-off-by: Johannes Berg

    Luis R. Rodriguez
     

06 Jun, 2012

2 commits

  • Almost all wireless tools have transitioned to
    or at least added compatibility with nl80211 so
    there's no real need for CONFIG_CFG80211_WEXT
    any more. Mark it for removal, and also change
    the default to not be enabled.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • The only user of this was hal prior to its 0.5.12
    release which happened over two years ago, so I'm
    sure this can be removed without issues.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

08 Dec, 2011

1 commit

  • This code has been on the list to remove for a long
    time, so disable it by default, add a warning to its
    Kconfig, and schedule it for removal in 3.5.

    The only known dependency, hal, has not required it
    since its 0.5.12 release, which was in early 2009
    and hal has since been deprecated completely.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

29 Dec, 2009

1 commit


22 Dec, 2009

1 commit

  • This patch provides infrastructure for machine translation of the
    regulatory rules database used by CRDA into a C data structure.
    It includes code for searching that database as an alternative
    to dynamic regulatory rules updates via CRDA. Most people should
    use CRDA instead of this infrastructure, but it provides a better
    alternative than the WIRELESS_OLD_REGULATORY infrastructure (which
    can now be removed).

    Signed-off-by: John W. Linville

    John W. Linville
     

20 Nov, 2009

1 commit


08 Oct, 2009

1 commit

  • Refactor wext to
    * split out iwpriv handling
    * split out iwspy handling
    * split out procfs support
    * allow cfg80211 to have wireless extensions compat code
    w/o CONFIG_WIRELESS_EXT

    After this, drivers need to
    - select WIRELESS_EXT - for wext support
    - select WEXT_PRIV - for iwpriv support
    - select WEXT_SPY - for iwspy support

    except cfg80211 -- which gets new hooks in wext-core.c
    and can then get wext handlers without CONFIG_WIRELESS_EXT.

    Wireless extensions procfs support is auto-selected
    based on PROC_FS and anything that requires the wext core
    (i.e. WIRELESS_EXT or CFG80211_WEXT).

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

09 Sep, 2009

1 commit


03 Sep, 2009

1 commit