- 19 1月, 2019 1 次提交
-
-
由 Johannes Berg 提交于
Under certain circumstances, radios created via netlink could have n_limits be zero and no possible interface types, which makes no sense. Reject this early to prevent a WARN_ON() in cfg80211. Fixes: 99e3a44b ("mac80211_hwsim: allow setting iftype support") Reported-by: syzbot+73fd8b0aa60c67fa4b60@syzkaller.appspotmail.com Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 18 12月, 2018 1 次提交
-
-
由 James Prestwood 提交于
Moved setting if_combination.num_different_channels/radar_detect_widths into an else after use_chanctx. In the case of use_chanctx, these two settings were getting overwritten. Signed-off-by: NJames Prestwood <james.prestwood@linux.intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 05 12月, 2018 1 次提交
-
-
由 James Prestwood 提交于
Creating radios during startup follows a different code path than HWSIM_CMD_NEW_RADIO. The problem was that param.iftypes was not being set to the deafult before calling mac80211_hwsim_new_radio Signed-off-by: NJames Prestwood <james.prestwood@linux.intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 09 11月, 2018 5 次提交
-
-
由 James Prestwood 提交于
The mac80211_hwsim driver does not specify supported cipher types, which in turn enables all ciphers to be supported in software. (see net/mac80211/main.c:ieee80211_init_cipher_suites). Allowing ciphers to be configurable is valuable for simulating older drivers that may not support all ciphers. This patch adds a new attribute: - HWSIM_ATTR_CIPHER_SUPPORT A u32 array/list of supported cipher types This only allows enabling/disabling cipher types listed in the (new) "hwsim_ciphers" array in mac80211_hwsim.c. Any unknown cipher type will result in -EINVAL. Signed-off-by: NJames Prestwood <james.prestwood@linux.intel.com> [fix some indentation, change to hwsim_known_ciphers(), add error messages, validate length better] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 James Prestwood 提交于
The mac80211_hwsim driver hard codes its supported interface types. For testing purposes it would be valuable to allow changing these supported types in order to simulate actual drivers than support a limited set of iftypes. A new attribute was added to allow this: - HWSIM_ATTR_IFTYPE_SUPPORT A u32 bit field of supported NL80211_IFTYPE_* bits This will only enable/disable iftypes that mac80211_hwsim already supports. In order to accomplish this, the ieee80211_iface_limit structure needed to be built dynamically to only include limit rules for iftypes that the user requested to enable. Signed-off-by: NJames Prestwood <james.prestwood@linux.intel.com> [fix some indentation, add netlink error string] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Johannes Berg 提交于
Avoid the need to kfree() the name in many places by moving the name parsing last. Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Vasyl Vavrychuk 提交于
Otherwise if network manager starts configuring Wi-Fi interface immidiatelly after getting notification of its creation, we will get NULL pointer dereference: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<ffffffff95ae94c8>] hrtimer_active+0x28/0x50 ... Call Trace: [<ffffffff95ae9997>] ? hrtimer_try_to_cancel+0x27/0x110 [<ffffffff95ae9a95>] ? hrtimer_cancel+0x15/0x20 [<ffffffffc0803bf0>] ? mac80211_hwsim_config+0x140/0x1c0 [mac80211_hwsim] Cc: stable@vger.kernel.org Signed-off-by: NVasyl Vavrychuk <vasyl.vavrychuk@globallogic.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Alexey Khoroshilov 提交于
There is no unregister netlink notifier and family on error paths in init_mac80211_hwsim(). Also there is an error path where hwsim_class is not destroyed. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: NAlexey Khoroshilov <khoroshilov@ispras.ru> Fixes: 62759361 ("mac80211-hwsim: Provide multicast event for HWSIM_CMD_NEW_RADIO") Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 08 10月, 2018 1 次提交
-
-
由 Martin Willi 提交于
The work-queue was used for deferred destruction of hwsim radios; this does not work well with namespaces about to exit. The one remaining user has been migrated, so drop the now unused work-queue instance. Signed-off-by: NMartin Willi <martin@strongswan.org> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 26 9月, 2018 3 次提交
-
-
由 Martin Willi 提交于
The allocation of hwsim radio identifiers uses a post-increment from 0, so the first radio has idx 0. This idx is explicitly excluded from multicast announcements ever since, but it is unclear why. Drop that idx check and announce the first radio as well. This makes userspace happy if it relies on these events. Signed-off-by: NMartin Willi <martin@strongswan.org> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Martin Willi 提交于
The asynchronous destruction from a work-queue of radios tagged with destroy-on-close may race with the owning namespace about to exit, resulting in potential use-after-free of that namespace. Instead of using a work-queue, move radios about to destroy to a temporary list, which can be worked on synchronously after releasing the lock. This should be safe to do from the netlink socket notifier, as the namespace is guaranteed to not get released. Signed-off-by: NMartin Willi <martin@strongswan.org> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Martin Willi 提交于
The cleanup of radios during namespace exit has recently been reworked to directly delete a radio while temporarily releasing the spinlock, fixing a race condition between the work-queue execution and namespace exits. However, the temporary unlock allows unsafe modifications on the iterated list, resulting in a potential crash when continuing the iteration of additional radios. Move radios about to destroy to a temporary list, and clean that up after releasing the spinlock once iteration is complete. Fixes: 8cfd36a0 ("mac80211_hwsim: fix use-after-free bug in hwsim_exit_net") Signed-off-by: NMartin Willi <martin@strongswan.org> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 05 9月, 2018 1 次提交
-
-
由 Shaul Triebitz 提交于
Align to new 11ax draft D3.0. Change/add new MAC and PHY capabilities and update drivers' 11ax capabilities and mac80211's debugfs accordingly. Signed-off-by: NShaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: NLuca Coelho <luciano.coelho@intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 28 8月, 2018 2 次提交
-
-
由 Jinbum Park 提交于
User controls @idx which to be used as index of hwsim_world_regdom_custom. So, It can be exploited via Spectre-like attack. (speculative execution) This kind of attack leaks address of hwsim_world_regdom_custom, It leads an attacker to bypass security mechanism such as KASLR. So sanitize @idx before using it to prevent attack. I leveraged strategy [1] to find and exploit this gadget. [1] https://github.com/jinb-park/linux-exploit/tree/master/exploit-remaining-spectre-gadget/Signed-off-by: NJinbum Park <jinb.park7@gmail.com> [johannes: unwrap URL] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Danek Duvall 提交于
The mac80211_hwsim driver intends to say that it supports up to four STBC receive streams, but instead it ends up saying something undefined. The IEEE80211_VHT_CAP_RXSTBC_X macros aren't independent bits that can be ORed together, but values. In this case, _4 is the appropriate one to use. Signed-off-by: NDanek Duvall <duvall@comfychair.org> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 16 8月, 2018 1 次提交
-
-
由 Johannes Berg 提交于
Syzbot continues to try to create mac80211_hwsim radios, and manages to pass parameters that are later checked with WARN_ON in cfg80211 - catch another one in hwsim directly. Reported-by: syzbot+2a12f11c306afe871c1f@syzkaller.appspotmail.com Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 09 7月, 2018 1 次提交
-
-
由 Ilan Peer 提交于
Add support for HE in mac8011_hwsim, conforming with P802.11ax_D2.0. Signed-off-by: NLiad Kaufman <liad.kaufman@intel.com> Signed-off-by: NIlan Peer <ilan.peer@intel.com> Signed-off-by: NLuca Coelho <luciano.coelho@intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 15 6月, 2018 1 次提交
-
-
由 Johannes Berg 提交于
We didn't free the workqueue on any errors, nor did we correctly check for rhashtable allocation errors, nor did we free the hashtable on error. Reported-by: NColin King <colin.king@canonical.com> Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com> Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
-
- 29 5月, 2018 1 次提交
-
-
由 YueHaibing 提交于
the message be freed immediately, no need to trim it back to the previous size. Inspired by commit 7a9b3ec1 ("nl80211: remove unnecessary genlmsg_cancel() calls") Signed-off-by: NYueHaibing <yuehaibing@huawei.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 22 5月, 2018 1 次提交
-
-
由 Andrew Zaborowski 提交于
Since 6335698e the radio with idx of 0 will not get dumped in HWSIM_CMD_GET_RADIO because of the last_idx checks. Offset cb->args[0] by 1 similarly to what is done in nl80211.c. Fixes: 6335698e ("mac80211_hwsim: add generation count for netlink dump operation") Signed-off-by: NAndrew Zaborowski <andrew.zaborowski@intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 07 5月, 2018 1 次提交
-
-
由 YueHaibing 提交于
'hwname' should be freed before leaving from the error handling cases, otherwise it will cause mem leak Fixes: cb1a5bae ("mac80211_hwsim: add permanent mac address option for new radios") Signed-off-by: NYueHaibing <yuehaibing@huawei.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 19 4月, 2018 1 次提交
-
-
由 Bjoern Johansson 提交于
Without this, higher layers in the kernel will return an error code when trying to set the power state because the driver doesn't indicate power state support. This in turn causes VTS (Android Vendor Test Suite) failures because the WiFi HAL can't enable power saving mode. Signed-off-by: NBjoern Johansson <bjoernj@google.com> Signed-off-by: NLingfeng Yang <lfy@google.com> Signed-off-by: NRoman Kiryanov <rkir@google.com> [johannes: remove remaining code, it was useless even as a skeleton since it didn't even have the right function arguments] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 12 4月, 2018 1 次提交
-
-
由 Matthew Wilcox 提交于
This is preferred to opencoding an IDA_INIT. Link: http://lkml.kernel.org/r/20180313132639.17387-2-willy@infradead.orgSigned-off-by: NMatthew Wilcox <mawilcox@microsoft.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 28 3月, 2018 1 次提交
-
-
由 Kirill Tkhai 提交于
Synchronous pernet_operations are not allowed anymore. All are asynchronous. So, drop the structure member. Signed-off-by: NKirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 21 3月, 2018 3 次提交
-
-
由 Andrew Zaborowski 提交于
Set the wmediumd to the net's wmediumd when the radio gets created. Radios created after HWSIM_CMD_REGISTER don't currently get their data->wmediumd set and the userspace would need to reconnect to netlink to be able to call HWSIM_CMD_REGISTER again. Alternatively I think data->netgroup and data->wmedium could be replaced with a pointer to hwsim_net. Signed-off-by: NAndrew Zaborowski <andrew.zaborowski@intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Benjamin Beichler 提交于
When destroying a net namespace, all hwsim interfaces, which are not created in default namespace are deleted. But the async deletion of the interfaces could last longer than the actual destruction of the namespace, which results to an use after free bug. Therefore use synchronous deletion in this case. Fixes: 100cb9ff ("mac80211_hwsim: Allow managing radios from non-initial namespaces") Reported-by: syzbot+70ce058e01259de7bb1d@syzkaller.appspotmail.com Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Johannes Berg 提交于
OR'ing in 0x40 before a memcpy() to overwrite the value doesn't do much good - flip the order of operations are reported and tested by Jouni. Fixes: cb1a5bae ("mac80211_hwsim: add permanent mac address option for new radios") Reported-by: NJouni Malinen <j@w1.fi> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 02 3月, 2018 2 次提交
-
-
由 Kirill Tkhai 提交于
These pernet_operations allocate and destroy IDA identifier, and these actions are synchronized by IDA subsystem locks. Exit method removes mac80211_hwsim_data enteries from the lists, and this is synchronized by hwsim_radio_lock with the rest parallel pernet_operations. Also it queues destroy_radio() work, and these work already may be executed in parallel with any pernet_operations (as it's a work :). So, we may mark these pernet_operations as async. Signed-off-by: NKirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Kirill Tkhai 提交于
hwsim_netgroup counter is declarated as int, and it is incremented every time a new net is created. After sizeof(int) net are created, it will overflow, and different net namespaces will have the same identifier. This patch fixes the problem by introducing IDA instead of int counter. IDA guarantees, all the net namespaces have the uniq identifier. Note, that after we do ida_simple_remove() in hwsim_exit_net(), and we destroy the ID, later there may be executed destroy_radio() from the workqueue. But destroy_radio() does not use the ID, so it's OK. Out of bounds of this patch, just as a report to wireless subsystem maintainer, destroy_radio() increaments hwsim_radios_generation without hwsim_radio_lock, so this may need one more patch to fix. Signed-off-by: NKirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 19 2月, 2018 1 次提交
-
-
由 Johannes Berg 提交于
We're obviously not part of a memory reclaim path, so don't set the flag. This also causes a warning in check_flush_dependency() since we end up in a code path that flushes a non-reclaim workqueue, and we shouldn't do that if we were really part of reclaim. Reported-by: syzbot+41cdaf4232c50e658934@syzkaller.appspotmail.com Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 31 1月, 2018 3 次提交
-
-
由 Benjamin Beichler 提交于
Make the dump operation aware of changes on radio list and corresponding inconsistent dumps. Changed variable name for better understanding. Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> [compress ternary operator] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Benjamin Beichler 提交于
Add a NL_ERR_MSG in case of creating a radio by a netlink message to give clear output to the creating process instead of creating only a debug message in kernel log. The same function is used for the creation while module load, so keep the old message, although it should never be thrown while load, because the module controls all mac addresses. Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> [remove message, add missing braces] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Benjamin Beichler 提交于
If simulation needs predictable permanent mac addresses of hwsim wireless phy, this patch add the ability to create a new radio with a user defined permanent mac address. Allowed mac addresses needs to be locally administrated mac addresses (as also the former fixed 42:* and 02:* were). To do not break the operation with legacy software using hwsim, the new address is set twice. The problem here is, the netlink call backs use wiphy->addresses[1] as identification of a radio and not the proposed permanent address (wiphy->addresses[0]). This design decision is not documented in the kernel repo, therefore this patch simply reproduces this, but with the same address. Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> [make pointer const] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 22 1月, 2018 1 次提交
-
-
由 weiyongjun (A) 提交于
'hwname' is malloced in hwsim_new_radio_nl() and should be freed before leaving from the error handling cases, otherwise it will cause memory leak. Fixes: ff4dd73d ("mac80211_hwsim: check HWSIM_ATTR_RADIO_NAME length") Signed-off-by: NWei Yongjun <weiyongjun1@huawei.com> Reviewed-by: NBen Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 15 1月, 2018 4 次提交
-
-
由 Benjamin Beichler 提交于
For correct interpretation of a tx rate, the corresponding rate flags are needed (e.g. whether a HT-MCS rate or a legacy rate) and moreover for more correct simulation the other infos of the flags are important (like short-GI). Keeping compatibility, the flags are not integrated into the existing hwsim_tx_rate, but transmitted as an additional netlink attribute. Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Benjamin Beichler 提交于
This patch adds a rhastable for mac address lookup of hwsim radios. This especially improve the speed on reception of a netlink message with a new frame. Although redundant, we keep holding a normal list for all radios, since the rhashtable_walk interface adds a lot of overhead for iterating over all radios and the doc of rhashtable recommend a redundant structure for stable walks in such situations. Since rhashtable is rcu protected we do not need a lock for delivering frames and thus improving this scenario. Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> [remove hash function, it would cause alignment issues] Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Johannes Berg 提交于
When creating a new radio on the fly, hwsim allows this to be done with an arbitrary number of channels, but cfg80211 only supports a limited number of simultaneous channels, leading to a warning. Fix this by validating the number - this requires moving the define for the maximum out to a visible header file. Reported-by: syzbot+8dd9051ff19940290931@syzkaller.appspotmail.com Fixes: b59ec8dd ("mac80211_hwsim: fix number of channels in interface combinations") Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Benjamin Beichler 提交于
When closing multiple wmediumd instances with many radios and try to unload the mac80211_hwsim module, it may happen that the work items live longer than the module. To wait especially for this deletion work items, add a work queue, otherwise flush_scheduled_work would be necessary. Signed-off-by: NBenjamin Beichler <benjamin.beichler@uni-rostock.de> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
- 19 12月, 2017 2 次提交
-
-
由 Jia-Ju Bai 提交于
The driver may sleep under a spinlock. The function call path is: hwsim_get_radio_nl (acquire the spinlock) nlmsg_new(GFP_KERNEL) --> may sleep To fix it, GFP_KERNEL is replaced with GFP_ATOMIC. This bug is found by my static analysis tool(DSAC) and checked by my code review. Signed-off-by: NJia-Ju Bai <baijiaju1990@163.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-
由 Adiel Aloni 提交于
Same as in ieee80211_nullfunc_get, enable the TODS bit, otherwise the nullfunc packet will not be handled in ap rx path. (will be dropped in ieee80211_accept_frame()). Signed-off-by: NAdiel Aloni <adiel.aloni@intel.com> Signed-off-by: NLuca Coelho <luciano.coelho@intel.com> Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
-