30 Oct, 2020

1 commit

  • Some identifiers have different names between their prototypes
    and the kernel-doc markup.

    Others need to be fixed, as kernel-doc markups should use this format:
    identifier - description

    In the specific case of __sta_info_flush(), add a documentation
    for sta_info_flush(), as this one is the one used outside
    sta_info.c.

    Signed-off-by: Mauro Carvalho Chehab
    Reviewed-by: Johannes Berg
    Link: https://lore.kernel.org/r/978d35eef2dc76e21c81931804e4eaefbd6d635e.1603469755.git.mchehab+huawei@kernel.org
    Signed-off-by: Johannes Berg

    Mauro Carvalho Chehab
     

17 Oct, 2020

1 commit

  • Pull documentation updates from Mauro Carvalho Chehab:
    "A series of patches addressing warnings produced by make htmldocs.
    This includes:

    - kernel-doc markup fixes

    - ReST fixes

    - Updates at the build system in order to support newer versions of
    the docs build toolchain (Sphinx)

    After this series, the number of html build warnings should reduce
    significantly, and building with Sphinx 3.1 or later should now be
    supported (although it is still recommended to use Sphinx 2.4.4).

    As agreed with Jon, I should be sending you a late pull request by the
    end of the merge window addressing remaining issues with docs build,
    as there are a number of warning fixes that depends on pull requests
    that should be happening along the merge window.

    The end goal is to have a clean htmldocs build on Kernel 5.10.

    PS. It should be noticed that Sphinx 3.0 is not currently supported,
    as it lacks support for C domain namespaces. Such feature, needed in
    order to document uAPI system calls with Sphinx 3.x, was added only on
    Sphinx 3.1"

    * tag 'docs/v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (75 commits)
    PM / devfreq: remove a duplicated kernel-doc markup
    mm/doc: fix a literal block markup
    workqueue: fix a kernel-doc warning
    docs: virt: user_mode_linux_howto_v2.rst: fix a literal block markup
    Input: sparse-keymap: add a description for @sw
    rcu/tree: docs: document bkvcache new members at struct kfree_rcu_cpu
    nl80211: docs: add a description for s1g_cap parameter
    usb: docs: document altmode register/unregister functions
    kunit: test.h: fix a bad kernel-doc markup
    drivers: core: fix kernel-doc markup for dev_err_probe()
    docs: bio: fix a kerneldoc markup
    kunit: test.h: solve kernel-doc warnings
    block: bio: fix a warning at the kernel-doc markups
    docs: powerpc: syscall64-abi.rst: fix a malformed table
    drivers: net: hamradio: fix document location
    net: appletalk: Kconfig: Fix docs location
    dt-bindings: fix references to files converted to yaml
    memblock: get rid of a :c:type leftover
    math64.h: kernel-docs: Convert some markups into normal comments
    media: uAPI: buffer.rst: remove a left-over documentation
    ...

    Linus Torvalds
     

15 Oct, 2020

1 commit

  • Changeset df78a0c0b67d ("nl80211: S1G band and channel definitions")
    added a new parameter, but didn't add the corresponding kernel-doc
    markup, as repoted when doing "make htmldocs":

    ./include/net/cfg80211.h:471: warning: Function parameter or member 's1g_cap' not described in 'ieee80211_supported_band'

    Add a documentation for it.

    Fixes: df78a0c0b67d ("nl80211: S1G band and channel definitions")
    Signed-off-by: Thomas Pedersen
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

28 Sep, 2020

3 commits

  • Allow the user to configure below Spatial Reuse Parameter Set element.
    * Non-SRG OBSS PD Max Offset
    * SRG BSS Color Bitmap
    * SRG Partial BSSID Bitmap

    Signed-off-by: Rajkumar Manoharan
    Link: https://lore.kernel.org/r/1601278091-20313-2-git-send-email-rmanohar@codeaurora.org
    Signed-off-by: Johannes Berg

    Rajkumar Manoharan
     
  • NL80211_ATTR_S1G_CAPABILITY can be passed along with
    NL80211_ATTR_S1G_CAPABILITY_MASK to NL80211_CMD_ASSOCIATE
    to indicate S1G capabilities which should override the
    hardware capabilities in eg. the association request.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200922022818.15855-4-thomas@adapt-ip.com
    [johannes: always require both attributes together, commit message]
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • Support 6 GHz scanning, by
    * a new scan flag to scan for colocated BSSes advertised
    by (and found) APs on 2.4 & 5 GHz
    * doing the necessary reduced neighbor report parsing for
    this, to find them
    * adding the ability to split the scan request in case the
    device by itself cannot support this.

    Also add some necessary bits in mac80211 to not break with
    these changes.

    Signed-off-by: Tova Mussai
    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20200918113313.232917c93af9.Ida22f0212f9122f47094d81659e879a50434a6a2@changeid
    Signed-off-by: Johannes Berg

    Tova Mussai
     

18 Sep, 2020

6 commits

  • Add missing kernel-doc for the S1G band capabilities in the
    per band data.

    Link: https://lore.kernel.org/r/20200918131921.08c893cd73a1.Id71583c37baca8a9a3329426e02b66d9ab65ac03@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • This patch adds new attributes to support unsolicited broadcast
    probe response transmission used for in-band
    discovery in 6GHz band (IEEE P802.11ax/D6.0 26.17.2.3.2, AP behavior for
    fast passive scanning).
    The new attribute, NL80211_ATTR_UNSOL_BCAST_PROBE_RESP, is nested which
    supports following parameters:
    (1) NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT - Packet interval
    (2) NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL - Template data

    Signed-off-by: Aloka Dixit
    Link: https://lore.kernel.org/r/010101747a946698-aac263ae-2ed3-4dab-9590-0bc7131214e1-000000@us-west-2.amazonses.com
    Signed-off-by: Johannes Berg

    Aloka Dixit
     
  • FILS discovery attribute, NL80211_ATTR_FILS_DISCOVERY, is nested which
    supports following parameters as given in IEEE Std 802.11ai-2016,
    Annex C.3 MIB detail:
    (1) NL80211_FILS_DISCOVERY_ATTR_INT_MIN - Minimum packet interval
    (2) NL80211_FILS_DISCOVERY_ATTR_INT_MAX - Maximum packet interval
    (3) NL80211_FILS_DISCOVERY_ATTR_TMPL - Template data

    Signed-off-by: Aloka Dixit
    Link: https://lore.kernel.org/r/20200805011838.28166-2-alokad@codeaurora.org
    [fix attribute and other names, use NLA_RANGE(), use policy only once]
    Link: https://lore.kernel.org/r/010101747a7b38a8-306f06b2-9061-4baf-81c1-054a42a18e22-000000@us-west-2.amazonses.com
    Signed-off-by: Johannes Berg

    Aloka Dixit
     
  • S1G channels have a single width defined per frequency, so
    derive it from the channel flags with
    ieee80211_s1g_channel_width().

    Also support setting an S1G channel where control frequency may
    differ from operating, and add some basic validation to
    ensure the control channel is with the operating.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200908190323.15814-6-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • S1G supports 5 channel widths: 1, 2, 4, 8, and 16. One
    channel width is allowed per frequency in each operating
    class, so it makes more sense to advertise the specific
    channel width allowed.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200908190323.15814-3-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • The value of struct bss_parameters::ap_isolate will be -1, 0 or 1.
    The value -1 means not to change. To prevent developers from thinking
    ap_isolate is only 0 or 1, I add more comments on it.

    Signed-off-by: Wright Feng
    Reviewed-by: Kalle Valo
    Link: https://lore.kernel.org/r/20200908060157.98846-1-wright.feng@cypress.com
    Signed-off-by: Johannes Berg

    Wright Feng
     

27 Aug, 2020

1 commit

  • This patch adds the nl80211 structs, definitions, policies and parsing
    code required to pass fixed HE rate, GI and LTF settings.

    Signed-off-by: Miles Hu
    Signed-off-by: John Crispin
    Link: https://lore.kernel.org/r/20200804081630.2013619-1-john@phrozen.org
    [fix comment]
    Signed-off-by: Johannes Berg

    Miles Hu
     

31 Jul, 2020

7 commits

  • This is in fact 'disabled' in the spec, but there it's in a
    place where that actually makes sense. In our internal data
    structures, it doesn't really make sense, and in fact the
    previous commit just fixed a bug in that area.

    Make this safer by inverting the polarity from 'disabled' to
    'enabled'.

    Link: https://lore.kernel.org/r/20200730130051.5d8399545bd9.Ie62fdcd1a6cd9c969315bc124084a494ca6c8df3@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • This patch adds the necessary bits to later query the auth server
    flag for every peer from iw.

    Signed-off-by: Markus Theil
    Link: https://lore.kernel.org/r/20200611140238.427461-2-markus.theil@tu-ilmenau.de
    Signed-off-by: Johannes Berg

    Markus Theil
     
  • Besides information about num of peerings and gate connectivity,
    the mesh formation byte also contains a flag for authentication
    server connectivity, that currently cannot be set in the mesh conf.
    This patch adds this capability, which is necessary to implement
    802.1X authentication in mesh mode.

    Signed-off-by: Markus Theil
    Link: https://lore.kernel.org/r/20200611140238.427461-1-markus.theil@tu-ilmenau.de
    Signed-off-by: Johannes Berg

    Markus Theil
     
  • Currently, before being able to forward a packet between two 802.11s
    nodes, both a PLINK handshake is performed upon receiving a beacon and
    then later a PREQ/PREP exchange for path discovery is performed on
    demand upon receiving a data frame to forward.

    When running a mesh protocol on top of an 802.11s interface, like
    batman-adv, we do not need the multi-hop mesh routing capabilities of
    802.11s and usually set mesh_fwding=0. However, even with mesh_fwding=0
    the PREQ/PREP path discovery is still performed on demand. Even though
    in this scenario the next hop PREQ/PREP will determine is always the
    direct 11s neighbor node.

    The new mesh_nolearn parameter allows to skip the PREQ/PREP exchange in
    this scenario, leading to a reduced delay, reduced packet buffering and
    simplifies HWMP in general.

    mesh_nolearn is still rather conservative in that if the packet destination
    is not a direct 11s neighbor, it will fall back to PREQ/PREP path
    discovery.

    For normal, multi-hop 802.11s mesh routing it is usually not advisable
    to enable mesh_nolearn as a transmission to a direct but distant neighbor
    might be worse than reaching that same node via a more robust /
    higher throughput etc. multi-hop path.

    Cc: Sven Eckelmann
    Cc: Simon Wunderlich
    Signed-off-by: Linus Lüssing
    Link: https://lore.kernel.org/r/20200617073034.26149-1-linus.luessing@c0d3.blue
    [fix nl80211 policy to range 0/1 only]
    Signed-off-by: Johannes Berg

    Linus Lüssing
     
  • The low level driver adds its own opaque information
    in the BSS table in the cfg80211_bss structure.

    The low level driver may need to signal that this information
    is no longer relevant and needs to be recreated.
    Add an API to allow the low level driver to do that.

    iwlwifi needs this because it keeps there an information about
    the firmware's internal clock. This is kept in mac80211's
    struct ieee80211_bss::sync_device_ts.
    This information is populated while we scan, we add the
    internal firmware's clock to each beacon which allows us to
    program the firmware correctly after association so that
    it'll know when (in terms of its internal clock) the DTIM
    and TBTT will happen.

    When the firmware is reset this internal clock is reset as
    well and ieee80211_bss::sync_device_ts is no longer accurate.

    iwlwifi will call this new API any time the firmware is started.

    Signed-off-by: Emmanuel Grumbach
    Link: https://lore.kernel.org/r/20200625111524.3992-1-emmanuel.grumbach@intel.com
    Signed-off-by: Johannes Berg

    Emmanuel Grumbach
     
  • Drop doubled word "by" in a comment.
    Change "operate in in" to "operate with in" as is used below.

    Signed-off-by: Randy Dunlap
    Cc: netdev@vger.kernel.org
    Cc: Kalle Valo
    Cc: linux-wireless@vger.kernel.org
    Cc: Johannes Berg
    Link: https://lore.kernel.org/r/20200715164325.9109-3-rdunlap@infradead.org
    Signed-off-by: Johannes Berg

    Randy Dunlap
     
  • Gives drivers the definitions needed to advertise support
    for S1G bands.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200602062247.23212-1-thomas@adapt-ip.com
    Link: https://lore.kernel.org/r/20200731055636.795173-1-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     

05 Jun, 2020

1 commit

  • Lockdep reports that we may deadlock because we take the RTNL on
    the work struct, but flush it under RTNL. Clearly, it's correct.
    In practice, this can happen when doing rfkill on an active device.

    Fix this by moving the work struct to the wiphy (registered dev)
    layer, and iterate over all the wdevs inside there. This then
    means we need to track which one of them has work to do, so we
    don't update to the driver for all wdevs all the time.

    Also fix a locking bug I noticed while working on this - the
    registrations list is iterated as if it was an RCU list, but it
    isn't handle that way - and we need to lock now for the update
    flag anyway, so remove the RCU.

    Fixes: 6cd536fe62ef ("cfg80211: change internal management frame registration API")
    Reported-by: Markus Theil
    Reported-and-tested-by: Kenneth R. Crudup
    Signed-off-by: Johannes Berg
    Link: https://lore.kernel.org/r/20200604120420.b1dc540a7e26.I55dcca56bb5bdc5d7ad66a36a0b42afd7034d8be@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     

31 May, 2020

5 commits

  • With some newer AKMs, the KCK and KEK are bigger, so allow that
    if the driver advertises support for it. In addition, add a new
    attribute for the AKM so we can use it for offloaded rekeying.

    Signed-off-by: Nathan Errera
    [reword commit message]
    Link: https://lore.kernel.org/r/20200528212237.5eb58b00a5d1.I61b09d77c4f382e8d58a05dcca78096e99a6bc15@changeid
    Signed-off-by: Johannes Berg

    Nathan Errera
     
  • On 6 GHz, the 6 GHz capabilities element should be added, do that.

    Signed-off-by: Ilan Peer
    [add commit message]
    Link: https://lore.kernel.org/r/20200528213443.8ee764f0cde0.I2b0c66b60e11818c97c9803e04a6a197c6376243@changeid
    Signed-off-by: Johannes Berg

    Ilan Peer
     
  • These capabilities cover what would otherwise be transported
    in HT/VHT capabilities, but only a subset thereof that is
    actually needed on 6 GHz with HE already present. Expose the
    capabilities to userspace, drivers are expected to set them
    as using the 6 GHz band (currently) requires HE capability.

    Link: https://lore.kernel.org/r/20200528213443.244cd5cb9db8.Icd8c773277a88c837e7e3af1d4d1013cc3b66543@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Handle 6 GHz HE capability while adding new station. It will be used
    later in mac80211 station processing.

    Signed-off-by: Rajkumar Manoharan
    Link: https://lore.kernel.org/r/1589399105-25472-2-git-send-email-rmanohar@codeaurora.org
    [handle nl80211_set_station, require WME,
    remove NL80211_HE_6GHZ_CAPABILITY_LEN]
    Link: https://lore.kernel.org/r/20200528213443.b6b711fd4312.Ic9b97d57b6c4f2b28d4b2d23d2849d8bc20bd8cc@changeid
    Signed-off-by: Johannes Berg

    Rajkumar Manoharan
     
  • This allows identifying whether or not a channel is a PSC
    (preferred scanning channel).

    Link: https://lore.kernel.org/r/20200528213443.414363ecf62c.Ic15e681a0e249eab7350a06ceb582cca8bb9a080@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     

27 May, 2020

7 commits

  • This patch adds support to configure per TID Tx Rate configuration
    through NL80211_TID_CONFIG_ATTR_TX_RATE* attributes. And it uses
    nl80211_parse_tx_bitrate_mask api to validate the Tx rate mask.

    Signed-off-by: Tamizh Chelvam
    Link: https://lore.kernel.org/r/1589357504-10175-1-git-send-email-tamizhr@codeaurora.org
    Signed-off-by: Johannes Berg

    Tamizh Chelvam
     
  • This adds the necessary capabilities in nl80211 to allow drivers to
    assign a cookie to control port TX frames (returned via extack in
    the netlink ACK message of the command) and then later report the
    frame's status.

    Signed-off-by: Markus Theil
    Link: https://lore.kernel.org/r/20200508144202.7678-2-markus.theil@tu-ilmenau.de
    [use extack cookie instead of explicit message, recombine patches]
    Signed-off-by: Johannes Berg

    Markus Theil
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    sizeof(flexible-array-member) triggers a warning because flexible array
    members have incomplete type[1]. There are some instances of code in
    which the sizeof operator is being incorrectly/erroneously applied to
    zero-length arrays and the result is zero. Such instances may be hiding
    some bugs. So, this work (flexible-array member conversions) will also
    help to get completely rid of those sorts of issues.

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200507183909.GA12993@embeddedor
    Signed-off-by: Johannes Berg

    Gustavo A. R. Silva
     
  • Drivers may wish to report the RX frequency in units of
    KHz. Provide cfg80211_rx_mgmt_khz() and wrap it with
    cfg80211_rx_mgmt() so exisiting drivers which can't report
    KHz anyway don't need to change. Add a similar wrapper for
    cfg80211_report_obss_beacon() so the frequency units stay
    somewhat consistent.

    This doesn't actually change the nl80211 API yet.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200430172554.18383-2-thomas@adapt-ip.com
    [fix mac80211 calling the non-khz version of obss beacon report,
    drop trace point name changes]
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • This patch adds support to control per TID MSDU aggregation
    using the NL80211_TID_CONFIG_ATTR_AMSDU_CTRL attribute.

    Signed-off-by: Sergey Matyukevich
    Link: https://lore.kernel.org/r/20200424112905.26770-4-sergey.matyukevich.os@quantenna.com
    Signed-off-by: Johannes Berg

    Sergey Matyukevich
     
  • TIDs mask type is u64 in wiphy settings and nl80211 processing, see:
    - wiphy TIDs mask sizes in tid_config_support structure
    - prepare driver command in parse_tid_conf

    Use the same type for TIDs mask in cfg80211_tid_cfg.

    Signed-off-by: Sergey Matyukevich
    Link: https://lore.kernel.org/r/20200424112905.26770-2-sergey.matyukevich.os@quantenna.com
    Signed-off-by: Johannes Berg

    Sergey Matyukevich
     
  • …m/linux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    One batch of changes, containing:
    * hwsim improvements from Jouni and myself, to be able to
    test more scenarios easily
    * some more HE (802.11ax) support
    * some initial S1G (sub 1 GHz) work for fractional MHz channels
    * some (action) frame registration updates to help DPP support
    * along with other various improvements/fixes
    ====================

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

    David S. Miller
     

01 May, 2020

1 commit


24 Apr, 2020

5 commits

  • Some bands (S1G) define channels centered on a non-integer
    MHz. Give ieee80211_channel and cfg80211_chan_def a
    freq_offset component where the final frequency can be
    expressed as:

    MHZ_TO_KHZ(chan->center_freq) + chan->freq_offset;

    Also provide some helper functions to do the frequency
    conversion and test for equality.

    Retain the existing interface to frequency and channel
    conversion helpers, and expose new ones which handle
    frequencies in units of KHz.

    Some internal functions (net/wireless/chan.c) pass around
    a frequency value. Convert these to units of KHz.

    mesh, ibss, wext, etc. are currently ignored.

    Signed-off-by: Thomas Pedersen
    Link: https://lore.kernel.org/r/20200402011810.22947-3-thomas@adapt-ip.com
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • This extends the support for drivers that rebuilds IEs in the
    FW (same as with HT/VHT).

    Signed-off-by: Ilan Peer
    Signed-off-by: Luca Coelho
    Link: https://lore.kernel.org/r/iwlwifi.20200326150855.20feaabfb484.I886252639604c8e3e84b8ef97962f1b0e4beec81@changeid
    Signed-off-by: Johannes Berg

    Ilan Peer
     
  • For DPP, there's a need to receive multicast action frames,
    but many drivers need a special filter configuration for this.

    Support announcing from userspace in the management registration
    that multicast RX is required, with an extended feature flag if
    the driver handles this.

    Signed-off-by: Johannes Berg
    Reviewed-by: Sergey Matyukevich
    Link: https://lore.kernel.org/r/20200417124013.c46238801048.Ib041d437ce0bff28a0c6d5dc915f68f1d8591002@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Almost all drivers below cfg80211 get the API wrong (except for
    cfg80211) and are unable to cope with multiple registrations for
    the same frame type, which is valid due to the match filter.
    This seems to indicate the API is wrong, and we should maintain
    the full information in cfg80211 instead of the drivers.

    Change the API to no longer inform the driver about individual
    registrations and unregistrations, but rather every time about
    the entire state of the entire wiphy and single wdev, whenever
    it may have changed. This also simplifies the code in cfg80211
    as it no longer has to track exactly what was unregistered and
    can free things immediately.

    Signed-off-by: Johannes Berg
    Acked-by: Arend van Spriel
    Reviewed-by: Sergey Matyukevich
    Link: https://lore.kernel.org/r/20200417124300.f47f3828afc8.I7f81ef59c2c5a340d7075fb3c6d0e08e8aeffe07@changeid
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Extend cfg80211_rx_unprot_mlme_mgmt() to cover indication of unprotected
    Beacon frames in addition to the previously used Deauthentication and
    Disassociation frames. The Beacon frame case is quite similar, but has
    couple of exceptions: this is used both with fully unprotected and also
    incorrectly protected frames and there is a rate limit on the events to
    avoid unnecessary flooding netlink events in case something goes wrong.

    Signed-off-by: Jouni Malinen
    Link: https://lore.kernel.org/r/20200401142548.6990-1-jouni@codeaurora.org
    [add missing kernel-doc]
    Signed-off-by: Johannes Berg

    Jouni Malinen
     

14 Apr, 2020

1 commit

  • Update missing kernel-doc annotations and fix of related warnings
    at 'make htmldocs'.

    Signed-off-by: Lothar Rubusch
    Link: https://lore.kernel.org/r/20200408231013.28370-1-l.rubusch@gmail.com
    [fix indentation, attribute references]
    Signed-off-by: Johannes Berg

    Lothar Rubusch