19 Jan, 2016

1 commit

  • Conflicts:
    arch/arm/boot/dts/Makefile
    arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
    arch/arm/boot/dts/imx6qdl-sabresd.dtsi
    arch/arm/boot/dts/imx6qp-sabresd.dts
    arch/arm/boot/dts/imx6sl-evk.dts
    arch/arm/boot/dts/imx6sl.dtsi
    arch/arm/boot/dts/imx6sx-14x14-arm2.dts
    arch/arm/boot/dts/imx6sx-19x19-arm2.dts
    arch/arm/boot/dts/imx6sx-sabreauto.dts
    arch/arm/boot/dts/imx6sx-sdb-btwifi.dts
    arch/arm/boot/dts/imx6sx-sdb.dtsi
    arch/arm/boot/dts/imx6sx.dtsi
    arch/arm/boot/dts/imx6ul-14x14-evk.dts
    arch/arm/boot/dts/imx6ul-9x9-evk.dts
    arch/arm/boot/dts/imx6ul-evk-btwifi.dtsi
    arch/arm/boot/dts/imx6ul-pinfunc.h
    arch/arm/boot/dts/imx6ul.dtsi
    arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
    arch/arm/boot/dts/imx7d-pinfunc.h
    arch/arm/boot/dts/imx7d-sdb-epdc.dtsi
    arch/arm/boot/dts/imx7d-sdb-m4.dtsi
    arch/arm/boot/dts/imx7d-sdb-reva-touch.dts
    arch/arm/boot/dts/imx7d-sdb-reva.dts
    arch/arm/boot/dts/imx7d-sdb.dts
    arch/arm/boot/dts/imx7d.dtsi
    arch/arm/configs/imx_v7_defconfig
    arch/arm/configs/imx_v7_mfg_defconfig
    arch/arm/mach-imx/clk-imx6q.c
    arch/arm/mach-imx/clk.h
    arch/arm/mach-imx/cpuidle-imx7d.c
    arch/arm/mach-imx/ddr3_freq_imx7d.S
    arch/arm/mach-imx/gpcv2.c
    arch/arm/mach-imx/imx7d_low_power_idle.S
    arch/arm/mach-imx/lpddr3_freq_imx.S
    arch/arm/mach-imx/mach-imx7d.c
    arch/arm/mach-imx/pm-imx7.c
    arch/arm/mach-imx/suspend-imx7.S
    drivers/ata/ahci_imx.c
    drivers/cpufreq/imx6q-cpufreq.c
    drivers/dma/imx-sdma.c
    drivers/dma/pxp/pxp_dma_v2.c
    drivers/input/touchscreen/ads7846.c
    drivers/media/platform/mxc/capture/ov5640_mipi.c
    drivers/media/platform/mxc/output/mxc_pxp_v4l2.c
    drivers/mmc/core/core.c
    drivers/mmc/core/sd.c
    drivers/mtd/spi-nor/fsl-quadspi.c
    drivers/mxc/gpu-viv/Kbuild
    drivers/mxc/gpu-viv/config
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.h
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.h
    drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_recorder.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.h
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.c
    drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_precomp.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_security.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.c
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.h
    drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_dump.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform_type.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine_vg.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_kernel_buffer.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_mem.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_raster.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_rename.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_security_interface.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_statistics.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_types.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
    drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_vg.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_array.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dmabuf.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_array.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_iommu.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_mutex.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_probe.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_security_channel.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_sync.h
    drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c
    drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.config
    drivers/mxc/hdmi-cec/mxc_hdmi-cec.c
    drivers/mxc/ipu3/ipu_common.c
    drivers/mxc/mlb/mxc_mlb.c
    drivers/net/ethernet/freescale/fec_main.c
    drivers/net/wireless/bcmdhd/dhd_linux.c
    drivers/net/wireless/bcmdhd/dhd_sdio.c
    drivers/scsi/scsi_error.c
    drivers/spi/spi-imx.c
    drivers/thermal/imx_thermal.c
    drivers/tty/serial/imx.c
    drivers/usb/chipidea/udc.c
    drivers/usb/gadget/configfs.c
    drivers/video/fbdev/mxc/mipi_dsi.c
    drivers/video/fbdev/mxc/mipi_dsi.h
    drivers/video/fbdev/mxc/mipi_dsi_samsung.c
    drivers/video/fbdev/mxc/mxc_edid.c
    drivers/video/fbdev/mxc/mxc_epdc_fb.c
    drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
    drivers/video/fbdev/mxc/mxc_ipuv3_fb.c
    drivers/video/fbdev/mxc/mxcfb_hx8369_wvga.c
    drivers/video/fbdev/mxsfb.c
    firmware/imx/sdma/sdma-imx6q.bin.ihex
    include/trace/events/cpufreq_interactive.h

    guoyin.chen
     

15 Jan, 2016

1 commit

  • With a basic Linux userspace, the messages "Calling CRDA to update
    world regulatory domain" appears 10 times after boot every second or
    so, followed by a final "Exceeded CRDA call max attempts. Not calling
    CRDA". For those of us not having the corresponding userspace parts,
    having those messages repeatedly displayed at boot time is a bit
    annoying, so this commit reduces their log level to pr_debug().

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Johannes Berg
    (cherry picked from commit 042ab5fc7a80b934032fcc673a125feb36645b33)

    Thomas Petazzoni
     

16 Dec, 2015

1 commit


10 Dec, 2015

1 commit

  • commit 4baf6bea37247e59f1971e8009d13aeda95edba2 upstream.

    If parse_acl_data succeeds but the subsequent parsing of smps
    attributes fails, there will be a memory leak due to early returns.
    Fix that by moving the ACL parsing later.

    Fixes: 18998c381b19b ("cfg80211: allow requesting SMPS mode on ap start")
    Signed-off-by: Ola Olsson
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Ola Olsson
     

20 Nov, 2015

1 commit


03 Nov, 2015

1 commit

  • With a basic Linux userspace, the messages "Calling CRDA to update
    world regulatory domain" appears 10 times after boot every second or
    so, followed by a final "Exceeded CRDA call max attempts. Not calling
    CRDA". For those of us not having the corresponding userspace parts,
    having those messages repeatedly displayed at boot time is a bit
    annoying, so this commit reduces their log level to pr_debug().

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Johannes Berg
    (cherry picked from commit 042ab5fc7a80b934032fcc673a125feb36645b33)

    Thomas Petazzoni
     

04 Aug, 2015

1 commit

  • commit 6cbfb1bb66e4e85da5db78e8ff429a85bd84ce64 upstream.

    It was possible for mac80211 to be coerced into an
    unexpected flow causing sdata union to become
    corrupted. Station pointer was put into
    sdata->u.vlan.sta memory location while it was
    really master AP's sdata->u.ap.next_beacon. This
    led to station entry being later freed as
    next_beacon before __sta_info_flush() in
    ieee80211_stop_ap() and a subsequent invalid
    pointer dereference crash.

    The problem was that ieee80211_ptr->use_4addr
    wasn't cleared on interface type changes.

    This could be reproduced with the following steps:

    # host A and host B have just booted; no
    # wpa_s/hostapd running; all vifs are down
    host A> iw wlan0 set type station
    host A> iw wlan0 set 4addr on
    host A> printf 'interface=wlan0\nssid=4addrcrash\nchannel=1\nwds_sta=1' > /tmp/hconf
    host A> hostapd -B /tmp/conf
    host B> iw wlan0 set 4addr on
    host B> ifconfig wlan0 up
    host B> iw wlan0 connect -w hostAssid
    host A> pkill hostapd
    # host A crashed:

    [ 127.928192] BUG: unable to handle kernel NULL pointer dereference at 00000000000006c8
    [ 127.929014] IP: [] __sta_info_flush+0xac/0x158
    ...
    [ 127.934578] [] ieee80211_stop_ap+0x139/0x26c
    [ 127.934578] [] ? dump_trace+0x279/0x28a
    [ 127.934578] [] __cfg80211_stop_ap+0x84/0x191
    [ 127.934578] [] cfg80211_stop_ap+0x3f/0x58
    [ 127.934578] [] nl80211_stop_ap+0x1b/0x1d
    [ 127.934578] [] genl_family_rcv_msg+0x259/0x2b5

    Note: This isn't a revert of f8cdddb8d61d
    ("cfg80211: check iface combinations only when
    iface is running") as far as functionality is
    considered because b6a550156bc ("cfg80211/mac80211:
    move more combination checks to mac80211") moved
    the logic somewhere else already.

    Fixes: f8cdddb8d61d ("cfg80211: check iface combinations only when iface is running")
    Signed-off-by: Michal Kazior
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Michal Kazior
     

10 Jun, 2015

1 commit

  • Until recently, mac80211 overwrote all the statistics it could
    provide when getting called, but it now relies on the struct
    having been zeroed by the caller. This was always the case in
    nl80211, but wext used a static struct which could even cause
    values from one device leak to another.

    Using a static struct is OK (as even documented in a comment)
    since the whole usage of this function and its return value is
    always locked under RTNL. Not clearing the struct for calling
    the driver has always been wrong though, since drivers were
    free to only fill values they could report, so calling this
    for one device and then for another would always have leaked
    values from one to the other.

    Fix this by initializing the structure in question before the
    driver method call.

    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=99691

    Cc: stable@vger.kernel.org
    Reported-by: Gerrit Renker
    Reported-by: Alexander Kaltsas
    Signed-off-by: Johannes Berg
    Signed-off-by: David S. Miller

    Johannes Berg
     

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
     

07 Apr, 2015

2 commits


01 Apr, 2015

4 commits

  • Patch eeca9fce1d71a4955855ceb0c3b13c1eb9db27c1 (cfg80211: Schedule
    timeout for all CRDA call) introduced a regression, where in case
    that crda is not installed (or not configured properly etc.), the
    regulatory core will needlessly continue to call it, polluting the
    log with the following log:

    "cfg80211: Calling CRDA to update world regulatory domain"

    Fix this by limiting the number of continuous CRDA request failures.

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

    Ilan peer
     
  • …inux/kernel/git/jberg/mac80211-next

    Johannes Berg says:

    ====================
    Lots of updates for net-next; along with the usual flurry
    of small fixes, cleanups and internal features we have:
    * VHT support for TDLS and IBSS (conditional on drivers though)
    * first TX performance improvements (the biggest will come later)
    * many suspend/resume (race) fixes
    * name_assign_type support from Tom Gundersen
    ====================

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

    David S. Miller
     
  • Those are counterparts to nla_put_in_addr and nla_put_in6_addr.

    Signed-off-by: Jiri Benc
    Signed-off-by: David S. Miller

    Jiri Benc
     
  • IP addresses are often stored in netlink attributes. Add generic functions
    to do that.

    For nla_put_in_addr, it would be nicer to pass struct in_addr but this is
    not used universally throughout the kernel, in way too many places __be32 is
    used to store IPv4 address.

    Signed-off-by: Jiri Benc
    Signed-off-by: David S. Miller

    Jiri Benc
     

30 Mar, 2015

3 commits

  • This will expose in /sys whether the ifname of a device is set by
    userspace or generated by the kernel. The latter kind (wlanX, etc)
    is not deterministic, so userspace needs to rename these devices
    to names that are guaranteed to stay the same between reboots. The
    former, however should never be renamed, so userspace needs to be
    able to reliably tell the difference.

    Similar functionality was introduced for the rtnetlink core in
    commit 5517750f058e ("net: rtnetlink - make create_link take name_assign_type")

    Signed-off-by: Tom Gundersen
    Cc: Kalle Valo
    Cc: Brett Rudley
    Cc: Arend van Spriel
    Cc: Franky (Zhenhui) Lin
    Cc: Hante Meuleman
    Cc: Johannes Berg
    [reformat changelog to fit 72 cols]
    Signed-off-by: Johannes Berg

    Tom Gundersen
     
  • Seems Broadcom TDLS peers (Nexus 5, Xperia Z3) refuse to allow TDLS
    connection when channel-switching is supported but the regulatory
    classes IE is missing from the setup request.
    Add a chandef to reg-class translation function to cfg80211 and use it
    to add the required IE during setup. For now add only the current
    regulatory class as supported - it is enough to resolve the
    compatibility issue.

    Signed-off-by: Arik Nemtsov
    Signed-off-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Arik Nemtsov
     
  • Pass the initial net-detect delay (NL80211_ATTR_SCHED_SCAN_DELAY)
    attribute in the WoWLAN info response.

    Additionally, remove a bogus TODO comment.

    Signed-off-by: Luciano Coelho
    Reviewed-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Luciano Coelho
     

21 Mar, 2015

2 commits

  • Conflicts:
    drivers/net/ethernet/emulex/benet/be_main.c
    net/core/sysctl_net_core.c
    net/ipv4/inet_diag.c

    The be_main.c conflict resolution was really tricky. The conflict
    hunks generated by GIT were very unhelpful, to say the least. It
    split functions in half and moved them around, when the real actual
    conflict only existed solely inside of one function, that being
    be_map_pci_bars().

    So instead, to resolve this, I checked out be_main.c from the top
    of net-next, then I applied the be_main.c changes from 'net' since
    the last time I merged. And this worked beautifully.

    The inet_diag.c and sysctl_net_core.c conflicts were simple
    overlapping changes, and were easily to resolve.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This helps debug issues with VLAN modifications that are otherwise
    not really visible in any tracing/debugging.

    Signed-off-by: Johannes Berg

    Johannes Berg
     

17 Mar, 2015

1 commit

  • It is possible that there are several regulatory requests
    pending, but the processing of the last one does not call
    CRDA, and thus the other requests are not handled.

    Fix this by rescheduling the work until all requests have
    been processed.

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

    Ben
     

16 Mar, 2015

1 commit

  • As HT/VHT depend heavily on QoS/WMM, it's not a good idea to
    let userspace add clients that have HT/VHT but not QoS/WMM.
    Since it does so in certain cases we've observed (client is
    using HT IEs but not QoS/WMM) just ignore the HT/VHT info at
    this point and don't pass it down to the drivers which might
    unconditionally use it.

    Cc: stable@vger.kernel.org
    Signed-off-by: Johannes Berg

    Johannes Berg
     

06 Mar, 2015

3 commits

  • Timeout was scheduled only in case CRDA was called due to user hints,
    but was not scheduled for other cases. This can result in regulatory
    hint processing getting stuck in case that there is no CRDA configured.

    Change this by scheduling a timeout every time CRDA is called. In
    addition, in restore_regulatory_settings() all pending requests are
    restored (and not only the user ones).

    Signed-off-by: Ilan Peer
    Acked-by: Luis R. Rodriguez
    Signed-off-by: Johannes Berg

    Ilan peer
     
  • Previously, the indoor setting configuration assumed that as
    long as a station interface is connected, the indoor environment
    setting does not change. However, this assumption is problematic
    as:

    - It is possible that a station interface is connected to a mobile
    AP, e.g., softAP or a P2P GO, where it is possible that both the
    station and the mobile AP move out of the indoor environment making
    the indoor setting invalid. In such a case, user space has no way to
    invalidate the setting.
    - A station interface disconnection does not necessarily imply that
    the device is no longer operating in an indoor environment, e.g.,
    it is possible that the station interface is roaming but is still
    stays indoor.

    To handle the above, extend the indoor configuration API to allow
    user space to indicate a change of indoor settings, and allow it to
    indicate weather it controls the indoor setting, such that:

    1. If the user space process explicitly indicates that it is going
    to control the indoor setting, do not clear the indoor setting
    internally, unless the socket is released. The user space process
    should use the NL80211_ATTR_SOCKET_OWNER attribute in the command
    to state that it is going to control the indoor setting.
    2. Reset the indoor setting when restoring the regulatory settings in
    case it is not owned by a user space process.

    Based on the above, a user space tool that continuously monitors the
    indoor settings, i.e., tracking power setting, location etc., can
    indicate environment changes to the regulatory core.

    It should be noted that currently user space is the only provided mechanism
    used to hint to the regulatory core over the indoor/outdoor environment --
    while the country IEs do have an environment setting this has been completely
    ignored by the regulatory core by design for a while now since country IEs
    typically can contain bogus data.

    Acked-by: Luis R. Rodriguez
    Signed-off-by: ArikX Nemtsov
    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan peer
     
  • Directly update the indoor setting without wrapping it as
    a regulatory request, to simplify the processing.

    Acked-by: Luis R. Rodriguez
    Signed-off-by: Ilan Peer
    Signed-off-by: Johannes Berg

    Ilan peer
     

04 Mar, 2015

3 commits

  • If the device supports waking up on 'any' signal - i.e. it continues
    operating as usual and wakes up the host on pretty much anything that
    happens, then it makes no sense to also configure the more restricted
    WoWLAN mode where the device operates more autonomously but also in a
    more restricted fashion.

    Currently only cw2100 supports both 'any' and other triggers, but it
    seems to be broken as it doesn't configure anything to the device, so
    we can't currently get into a situation where both even can correctly
    be configured. This is about to change (Intel devices are going to
    support both and have different behaviour depending on configuration)
    so make sure the conflicting modes cannot be configured.

    (It seems that cw2100 advertises 'any' and 'disconnect' as a means of
    saying that's what it will always do, but that isn't really the way
    this API was meant to be used nor does it actually mean anything as
    'any' always implies 'disconnect' already, and the driver doesn't
    change device configuration in any way depending on the settings.)

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Conflicts:
    drivers/net/ethernet/rocker/rocker.c

    The rocker commit was two overlapping changes, one to rename
    the ->vport member to ->pport, and another making the bitmask
    expression use '1ULL' instead of plain '1'.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Use the built-in function instead of memset.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     

03 Mar, 2015

4 commits

  • Operating classes 128-130 are defined in the 11ac
    spec for the 5GHz band.

    Update ieee80211_operating_class_to_band() to support them.

    Signed-off-by: Eliad Peller
    Signed-off-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Eliad Peller
     
  • This modifies cfg80211_vendor_event_alloc() with an additional argument
    struct wireless_dev *wdev. __cfg80211_alloc_event_skb() is modified to
    take in *wdev argument, if wdev != NULL, both the NL80211_ATTR_IFINDEX
    and wdev identifier are added to the vendor event.

    These changes make it easier for drivers to add ifindex indication in
    vendor events cleanly.

    This also updates all existing users of cfg80211_vendor_event_alloc()
    and __cfg80211_alloc_event_skb() in the kernel tree.

    Signed-off-by: Ahmad Kholaif
    Signed-off-by: Jouni Malinen
    Signed-off-by: Johannes Berg

    Ahmad Kholaif
     
  • Add NL80211_EXT_FEATURE_VHT_IBSS flag and VHT
    support for IBSS.

    Signed-off-by: Janusz Dziedzic
    Signed-off-by: Johannes Berg

    Janusz.Dziedzic@tieto.com
     
  • 802.11ad adds new a network type (PBSS) and changes the capability
    field interpretation for the DMG (60G) band.
    The same 2 bits that were interpreted as "ESS" and "IBSS" before are
    re-used as a 2-bit field with 3 valid values (and 1 reserved). Valid
    values are: "IBSS", "PBSS" (new) and "AP".

    In order to get the BSS struct for the new PBSS networks, change the
    cfg80211_get_bss() function to take a new enum ieee80211_bss_type
    argument with the valid network types, as "capa_mask" and "capa_val"
    no longer work correctly (the search must be band-aware now.)

    The remaining bits in "capa_mask" and "capa_val" are used only for
    privacy matching so replace those two with a privacy enum as well.

    Signed-off-by: Dedy Lansky
    [rewrite commit log, tiny fixes]
    Signed-off-by: Johannes Berg

    Dedy Lansky
     

01 Mar, 2015

3 commits

  • When using the wext compatibility code in cfg80211, part of the IEs
    can be truncated if the passed user buffer is large enough for part
    of the BSS but not large enough for all of the IEs. This can cause
    an EAP network to show up as a PSK network.

    Always return -E2BIG in this case to avoid truncating data.

    Since this changes the control flow, use an on-stack variable for
    a small buffer instead of allocating it.

    Signed-off-by: James Minor
    [rework patch to error out immediately, use _check wrappers]
    Signed-off-by: Johannes Berg

    James Minor
     
  • Both wpa_supplicant and mac80211 have and inactivity timer. By default
    wpa_supplicant will be timed out in 5 minutes and mac80211's it is 30
    minutes. If wpa_supplicant uses a longer timer than mac80211, it will
    get unexpected disconnection by mac80211.

    Using 0xffffffff instead as the configured value could solve this w/o
    changing the code, but due to integer overflow in the expression used
    this doesn't work. The expression is:

    (current jiffies) > (frame Rx jiffies + NL80211_MESHCONF_PLINK_TIMEOUT * 250)

    On 32bit system, the right side would overflow and be a very small
    value if NL80211_MESHCONF_PLINK_TIMEOUT is sufficiently large,
    causing unexpectedly early disconnections.

    Instead allow disabling the inactivity timer to avoid this situation,
    by passing the (previously invalid and useless) value 0.

    Signed-off-by: Masashi Honma
    [reword/rewrap commit log]
    Signed-off-by: Johannes Berg

    Masashi Honma
     
  • 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
     

24 Feb, 2015

4 commits

  • nl80211_exit should be called in cfg80211_init if nl80211_init succeeds
    but regulatory_init or create_singlethread_workqueue fails.

    Signed-off-by: Junjie Mao
    Signed-off-by: Johannes Berg

    Junjie Mao
     
  • There are currently 8 rules in the world_regdom, but only the first 6
    are applied due to an incorrect value for n_reg_rules. This causes
    channels 149-165 and 60GHz to be disabled.

    Signed-off-by: Jason Abele
    Signed-off-by: Johannes Berg

    Jason Abele
     
  • If monitor flags parsing results in active monitor but that
    isn't supported, the already allocated message is leaked.
    Fix this by moving the allocation after this check.

    Reported-by: Christian Engelmayer
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • We currently add nested members of the NL80211_ATTR_SCAN_FREQUENCIES
    as NLA_U32 attributes of type NL80211_ATTR_WIPHY_FREQ in
    cfg80211_net_detect_results. However, since there can be an arbitrary number of
    frequency results, we should use the loop index of the loop used to add the
    frequency results to NL80211_ATTR_SCAN_FREQUENCIES as the type (i.e. nla_type)
    for each result attribute, rather than a fixed type.

    This change is in line with how nested members are added to
    NL80211_ATTR_SCAN_FREQUENCIES in the functions nl80211_send_wowlan_nd and
    nl80211_add_scan_req.

    Signed-off-by: Samuel Tan
    Signed-off-by: Luciano Coelho
    Signed-off-by: Johannes Berg

    Samuel Tan
     

05 Feb, 2015

1 commit

  • …inux/kernel/git/jberg/mac80211-next

    Last round of updates for net-next:
    * revert a patch that caused a regression with mesh userspace (Bob)
    * fix a number of suspend/resume related races
    (from Emmanuel, Luca and myself - we'll look at backporting later)
    * add software implementations for new ciphers (Jouni)
    * add a new ACPI ID for Broadcom's rfkill (Mika)
    * allow using netns FD for wireless (Vadim)
    * some other cleanups (various)

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

    David S. Miller