Hi Dave,
this is the last pull request to net-next for 4.7. Nothing really out of
ordinary, the signed tag below contains more info. Please let me know if
there are any issues.
Kalle
The following changes since commit ede00a5ceb4d903a8c137a52bb77d574baaef8bd:
Merge tag 'wireless-drivers-next-for-davem-2016-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next (2016-05-03 00:35:16 -0400)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git tags/wireless-drivers-next-for-davem-2016-05-13
for you to fetch changes up to 52776a700b53969345a3cc5daed1c797d016a188:
Merge ath-next from ath.git (2016-05-11 23:23:51 +0300)
----------------------------------------------------------------
wireless-drivers patches for 4.7
Major changes:
iwlwifi
* remove IWLWIFI_DEBUG_EXPERIMENTAL_UCODE kconfig option
* work for RX multiqueue continues
* dynamic queue allocation work continues
* add Luca as maintainer
* a bunch of fixes and improvements all over
brcmfmac
* add 4356 sdio support
ath6kl
* add ability to set debug uart baud rate with a module parameter
wil6210
* add debugfs file to configure firmware led functionality
----------------------------------------------------------------
Alan Liu (1):
ath10k: add max_tx_power for QCA6174 WLAN.RM.2.0 firmware
Anilkumar Kolli (1):
ath10k: fix kernel panic, move arvifs list head init before htt init
Bjorn Andersson (1):
wcn36xx: Set SMD timeout to 10 seconds
Christian Daudt (1):
brcmfmac: Add 4356 sdio support
Dan Carpenter (3):
rtlwifi: rtl818x: silence uninitialized variable warning
airo: prevent potential underflow in airo_set_freq()
atmel: potential underflow in atmel_set_freq()
Denys Vlasenko (1):
rtlwifi: rtl818x: Deinline indexed IO functions, save 21568 bytes
Emmanuel Grumbach (5):
iwlwifi: mvm: don't override the rate with the AMSDU len
iwlwifi: mvm: allow a debug knob for Tx A-MSDU even if rate control forbids it
iwlwifi: remove IWLWIFI_DEBUG_EXPERIMENTAL_UCODE
iwlwifi: don't access a nonexistent register upon assert
iwlwifi: add default value to disable_11ac mod param description
Golan Ben-Ami (1):
iwlwifi: mvm: add more registers to dump upon error
Gregory Greenman (2):
iwlwifi: consider VHT 160MHz while parsing NVM
iwlwifi: turn on SGI support for VHT 160MHz
Guy Mishol (1):
wlcore/wl12xx: Fix fw logger over sdio
Haim Dreyfuss (4):
iwlwifi: Rename 9560 to 9260 and add new PCI IDs for it
iwlwifi: allow combining different phy images with mac images
iwlwifi: Fix firmware name maximum length definition
iwlwifi: pcie: don't wake up the NIC when writing CSRs in MSIX mode
Helmut Schaa (4):
ath9k: reuse ar9003_hw_tx_power_regwrite for tx99 setup
ath9k: Move TX99 config option under ath9k debugging
ath9k: Simplify ar9003_hw_tx99_set_txpower
ath9k: Fix symbol overlap window for half/quarter channels
Jes Sorensen (11):
rtl8xxxu: Rename rtl8xxxu.c to rtl8xxxu_core.c
rtl8xxxu: move rtl8192e related code into rtl8xxxu_8192e.c
rtl8xxxu: move rtl8723b related code into rtl8xxxu_8723b.c
rtl8xxxu: move rtl8723a related code into rtl8xxxu_8723a.c
rtl8xxxu: move rtl8188[cr] and rtl8192c related code into rtl8xxxu_8192c.c
rtl8xxxu: Rename rtl8723a_stop_tx_beacon() to rtl8xxxu_stop_tx_beacon()
rtl8xxxu: rename rtl8723a_channel_group() to rtl8xxxu_gen1_channel_to_group()
rtl8xxxu: Rename rtl8723a_disabled_to_emu() to rtl8xxxu_disabled_to_emu()
rtl8xxxu: Split rtl8723a_h2c_cmd() into a gen1 and a gen2 version
rtl8xxxu: rtl8xxxu_prepare_calibrate() is never used on gen1
rtl8xxxu: Remove the now obsolete mbox_ext_reg info from rtl8xxxu_fileops
Johannes Berg (7):
ath10k: remove VHT capabilities from 2.4GHz
iwlwifi: mvm: add firmware API name comment
iwlwifi: mvm: advertise RSS queue usage
iwlwifi: mvm: pass station to mac80211 RX where known
iwlwifi: make configuration structs smaller
iwlwifi: pcie: extend device reset delay
iwlwifi: pcie: avoid msleep() with short timeout
Julia Lawall (1):
rtlwifi: rtl818x: constify rtl_intf_ops structures
Kalle Valo (2):
Merge tag 'iwlwifi-next-for-kalle-2016-05-10' of git://git.kernel.org/.../iwlwifi/iwlwifi-next
Merge ath-next from ath.git
Liad Kaufman (4):
iwlwifi: mvm: allocate queue for probe response in dqa mode
iwlwifi: mvm: support p2p device frames tx on dqa queue #2
iwlwifi: mvm: support queue removal in ADD_STA hcmd
iwlwifi: mvm: support dqa-mode agg on non-shared queue
Lior David (1):
wil6210: support regular scan on P2P_DEVICE interface
Luca Coelho (6):
Merge tag 'mac80211-next-for-davem-2016-04-13' of git://git.kernel.org/.../jberg/mac80211-next into master
Merge tag 'iwlwifi-for-kalle-2016-05-04' of git://git.kernel.org/.../iwlwifi/iwlwifi-fixes
iwlwifi: trans: don't call the trans-specific ref/unref directly
iwlwifi: wake from runtime suspend before sending sync commands
iwlwifi: mvm: add a new mvm reference type for RX data
MAINTAINERS: add myself as co-maintainer of the iwlwifi driver
Lukas Wunner (1):
mwifiex: Drop unnecessary include pcieport_if.h
Maya Erez (6):
wil6210: add function name to wil log macros
wil6210: change RX_HTRSH interrupt print level to debug
wil6210: print debug message when transmitting while disconnected
wil6210: unmask RX_HTRSH interrupt only when connected
wil6210: prevent deep sleep of 60G device in critical paths
wil6210: add support for device led configuration
Mohammed Shafi Shajakhan (2):
ath10k: fix a typo in ath10k_start()
ath10k: move spectral related structures under ath10k debugfs
Mordechai Goodstein (1):
iwlwifi: Edit the 8265 SDIO ID
Rajkumar Manoharan (5):
ath10k: add pdev bss channel info wmi definitions
ath10k: implement wmi_pdev_bss_chan_info_request
ath10k: handle pdev_chan_info wmi event
ath10k: update bss channel survey information
ath10k: release pre_cal_file while unloading driver
Sara Sharon (15):
iwlwifi: mvm: implement driver RX queues sync command
iwlwifi: mvm: change RX sync notification to be an attribute and not a type
iwlwifi: mvm: add infrastructure for tracking BA session in driver
iwlwifi: mvm: add reorder buffer per queue
iwlwifi: mvm: add reorder timeout per frame
iwlwifi: mvm: utilize the frame release infrastructure
iwlwifi: mvm: add a flag to disable checksum
iwlwifi: mvm: don't allow negative reference count
iwlwifi: mvm: loosen nssn comparison to reorder buffer head
iwlwifi: mvm: set correct vht capability
iwlwifi: mvm: make phy_db size dynamic
iwlwifi: mvm: remove redundant alloc_ctx parameter
iwlwifi: mvm: use helpers to get iwl_mvm_sta
iwlwifi: pcie: use shadow registers for updating write pointer
iwlwifi: pcie: grab NIC access only once on RX init
Shengzhen Li (1):
mwifiex: change sleep cookie poll count
Steve deRosier (2):
ath6kl: fix missing uart debug pin for 6004 HW 3.0
ath6kl: add ability to set debug uart baud rate
Vasanthakumar Thiagarajan (2):
ath10k: suppress warnings when getting wmi peer_rate_code_list event
ath10k: Fix survey reporting with QCA4019
Wei-Ning Huang (1):
mwifiex: fixup error messages
wang yanqing (3):
rtlwifi: Fix logic error in enter/exit power-save mode
rtlwifi: Remove double check for cnt_after_linked
rtlwifi: pci: use dev_kfree_skb_irq instead of kfree_skb in rtl_pci_reset_trx_ring
MAINTAINERS | 1 +
drivers/net/wireless/ath/ath10k/core.c | 18 +-
drivers/net/wireless/ath/ath10k/core.h | 4 +-
drivers/net/wireless/ath/ath10k/mac.c | 40 +-
drivers/net/wireless/ath/ath10k/wmi-ops.h | 21 +
drivers/net/wireless/ath/ath10k/wmi.c | 88 +-
drivers/net/wireless/ath/ath10k/wmi.h | 26 +
drivers/net/wireless/ath/ath6kl/core.c | 3 +
drivers/net/wireless/ath/ath6kl/core.h | 1 +
drivers/net/wireless/ath/ath6kl/init.c | 9 +
drivers/net/wireless/ath/ath9k/Kconfig | 40 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 2 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h | 1 +
drivers/net/wireless/ath/ath9k/ar9003_phy.c | 72 +-
drivers/net/wireless/ath/wcn36xx/smd.h | 2 +-
drivers/net/wireless/ath/wil6210/cfg80211.c | 5 +-
drivers/net/wireless/ath/wil6210/debug.c | 22 +-
drivers/net/wireless/ath/wil6210/debugfs.c | 137 +-
drivers/net/wireless/ath/wil6210/interrupt.c | 93 +-
drivers/net/wireless/ath/wil6210/main.c | 95 +-
drivers/net/wireless/ath/wil6210/p2p.c | 6 +
drivers/net/wireless/ath/wil6210/txrx.c | 2 +-
drivers/net/wireless/ath/wil6210/wil6210.h | 67 +-
drivers/net/wireless/ath/wil6210/wmi.c | 97 +-
drivers/net/wireless/ath/wil6210/wmi.h | 61 +
drivers/net/wireless/atmel/atmel.c | 2 +-
.../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 +
.../wireless/broadcom/brcm80211/brcmfmac/chip.c | 1 +
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 +-
drivers/net/wireless/cisco/airo.c | 2 +-
drivers/net/wireless/intel/iwlwifi/Kconfig | 6 -
drivers/net/wireless/intel/iwlwifi/iwl-1000.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-2000.c | 2 -
drivers/net/wireless/intel/iwlwifi/iwl-5000.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-6000.c | 3 -
drivers/net/wireless/intel/iwlwifi/iwl-7000.c | 1 -
drivers/net/wireless/intel/iwlwifi/iwl-8000.c | 17 +-
drivers/net/wireless/intel/iwlwifi/iwl-9000.c | 34 +-
drivers/net/wireless/intel/iwlwifi/iwl-config.h | 122 +-
drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 15 +
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 52 +-
.../net/wireless/intel/iwlwifi/iwl-eeprom-parse.h | 1 +
drivers/net/wireless/intel/iwlwifi/iwl-fh.h | 3 +
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 16 +-
drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c | 68 +-
drivers/net/wireless/intel/iwlwifi/iwl-phy-db.h | 4 +-
drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 2 +
drivers/net/wireless/intel/iwlwifi/mvm/constants.h | 1 +
drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 8 +-
.../net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 9 +-
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 2 +
drivers/net/wireless/intel/iwlwifi/mvm/fw-api-d3.h | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h | 9 +-
.../net/wireless/intel/iwlwifi/mvm/fw-api-sta.h | 10 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h | 5 +
drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c | 66 +-
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 4 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 22 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 74 +-
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 106 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 21 +-
drivers/net/wireless/intel/iwlwifi/mvm/rx.c | 26 +-
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 356 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 410 +-
drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 13 +-
drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 8 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 134 +-
drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 45 +-
drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 41 +-
drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 3 -
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 111 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 29 +-
drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 21 +-
drivers/net/wireless/marvell/mwifiex/pcie.h | 3 +-
drivers/net/wireless/marvell/mwifiex/sdio.c | 5 +-
.../net/wireless/realtek/rtl818x/rtl8187/rtl8187.h | 99 +-
.../net/wireless/realtek/rtl818x/rtl8187/rtl8225.c | 93 +
drivers/net/wireless/realtek/rtl8xxxu/Makefile | 3 +
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 81 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c | 586 +++
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 1525 ++++++
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 397 ++
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c | 1682 ++++++
.../rtl8xxxu/{rtl8xxxu.c => rtl8xxxu_core.c} | 5334 +++-----------------
drivers/net/wireless/realtek/rtlwifi/base.c | 4 +-
drivers/net/wireless/realtek/rtlwifi/pci.c | 4 +-
drivers/net/wireless/realtek/rtlwifi/pci.h | 2 +-
drivers/net/wireless/realtek/rtlwifi/ps.c | 12 +-
.../net/wireless/realtek/rtlwifi/rtl8192se/rf.c | 3 +-
drivers/net/wireless/realtek/rtlwifi/usb.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/wifi.h | 2 +-
drivers/net/wireless/ti/wl12xx/main.c | 4 +-
drivers/net/wireless/ti/wlcore/io.c | 17 +-
drivers/net/wireless/ti/wlcore/io.h | 3 +-
include/linux/mmc/sdio_ids.h | 1 +
95 files changed, 7335 insertions(+), 5336 deletions(-)
create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c
create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c
create mode 100644 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
rename drivers/net/wireless/realtek/rtl8xxxu/{rtl8xxxu.c => rtl8xxxu_core.c} (56%)
Kalle Valo <[email protected]> writes:
> Kalle Valo <[email protected]> writes:
>
>> The following changes since commit ede00a5ceb4d903a8c137a52bb77d574baaef8bd:
>>
>> Merge tag 'wireless-drivers-next-for-davem-2016-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next (2016-05-03 00:35:16 -0400)
>>
>> are available in the git repository at:
>>
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git tags/wireless-drivers-next-for-davem-2016-05-13
>
> Please don't pull this yet, there might be something wrong now with
> merges and need to check that first.
Ok, like discussed in thread "linux-next: manual merge of the
wireless-drivers-next tree with the net-next tree" there seems to be a
problem on net-next in function iwl_mvm_set_tx_cmd(). Here is how I
propose to fix this.
When pulling the tag above you should get a conflict like this:
diff --cc drivers/net/wireless/intel/iwlwifi/mvm/tx.c
index 880210917a6f,779bafcbc9a1..000000000000
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
@@@ -294,7 -295,7 +294,11 @@@ void iwl_mvm_set_tx_cmd(struct iwl_mvm
tx_cmd->tx_flags = cpu_to_le32(tx_flags);
/* Total # bytes to be transmitted */
tx_cmd->len = cpu_to_le16((u16)skb->len +
++<<<<<<< HEAD
+ (uintptr_t)info->driver_data[0]);
++=======
+ (uintptr_t)skb_info->driver_data[0]);
++>>>>>>> master
tx_cmd->life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
tx_cmd->sta_id = sta_id;
Pick the latter with skb_info and then add skb_info to the beginning of
the same function. So the function should be:
void iwl_mvm_set_tx_cmd(struct iwl_mvm *mvm, struct sk_buff *skb,
struct iwl_tx_cmd *tx_cmd,
struct ieee80211_tx_info *info, u8 sta_id)
{
struct ieee80211_tx_info *skb_info = IEEE80211_SKB_CB(skb);
struct ieee80211_hdr *hdr = (void *)skb->data;
__le16 fc = hdr->frame_control;
u32 tx_flags = le32_to_cpu(tx_cmd->tx_flags);
u32 len = skb->len + FCS_LEN;
u8 ac;
[...]
tx_cmd->tx_flags = cpu_to_le32(tx_flags);
/* Total # bytes to be transmitted */
tx_cmd->len = cpu_to_le16((u16)skb->len +
(uintptr_t)skb_info->driver_data[0]);
tx_cmd->life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
tx_cmd->sta_id = sta_id;
Sorry about the hassle and please let me know if you have any problems.
Adding Luca and Emmanuel just in case I missed something.
--
Kalle Valo
From: Kalle Valo <[email protected]>
Date: Tue, 17 May 2016 09:43:34 +0300
> I noticed that you had marked this as Superseded in pathwork[1]. I was
> actually hoping that you would pull this with the instructions how to
> fix the conflict. But do you actually want me to resubmit the pull
> request? Or something else?
>
> [1] https://patchwork.ozlabs.org/patch/621953/
My impression is that you need to make adjustments to fix the merge error
I made the other day, and that a new pull request would show up with that
corrected.
There is no rush, whenever you submit it I'll still take it.
THanks.
David Miller <[email protected]> writes:
> From: Kalle Valo <[email protected]>
> Date: Tue, 17 May 2016 09:43:34 +0300
>
>> I noticed that you had marked this as Superseded in pathwork[1]. I was
>> actually hoping that you would pull this with the instructions how to
>> fix the conflict. But do you actually want me to resubmit the pull
>> request? Or something else?
>>
>> [1] https://patchwork.ozlabs.org/patch/621953/
>
> My impression is that you need to make adjustments to fix the merge error
> I made the other day, and that a new pull request would show up with that
> corrected.
Ok, I'll send a new pull request.
> There is no rush, whenever you submit it I'll still take it.
Thanks for understanding and sorry for the mess.
--
Kalle Valo
Hi Dave,
Kalle Valo <[email protected]> writes:
> Kalle Valo <[email protected]> writes:
>
>> Kalle Valo <[email protected]> writes:
>>
>>> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git tags/wireless-drivers-next-for-davem-2016-05-13
>>
>> Please don't pull this yet, there might be something wrong now with
>> merges and need to check that first.
>
> Ok, like discussed in thread "linux-next: manual merge of the
> wireless-drivers-next tree with the net-next tree" there seems to be a
> problem on net-next in function iwl_mvm_set_tx_cmd(). Here is how I
> propose to fix this.
I noticed that you had marked this as Superseded in pathwork[1]. I was
actually hoping that you would pull this with the instructions how to
fix the conflict. But do you actually want me to resubmit the pull
request? Or something else?
[1] https://patchwork.ozlabs.org/patch/621953/
--
Kalle Valo
Hi Dave,
Kalle Valo <[email protected]> writes:
> this is the last pull request to net-next for 4.7. Nothing really out of
> ordinary, the signed tag below contains more info. Please let me know if
> there are any issues.
>
> Kalle
>
>
> The following changes since commit ede00a5ceb4d903a8c137a52bb77d574baaef8bd:
>
> Merge tag 'wireless-drivers-next-for-davem-2016-05-02' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next (2016-05-03 00:35:16 -0400)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git tags/wireless-drivers-next-for-davem-2016-05-13
Please don't pull this yet, there might be something wrong now with
merges and need to check that first.
--
Kalle Valo
T24gTW9uLCAyMDE2LTA1LTE2IGF0IDE3OjA4ICswMzAwLCBLYWxsZSBWYWxvIHdyb3RlOg0KPiBL
YWxsZSBWYWxvIDxrdmFsb0Bjb2RlYXVyb3JhLm9yZz4gd3JpdGVzOg0KPiANCj4gPiANCj4gPiBL
YWxsZSBWYWxvIDxrdmFsb0Bjb2RlYXVyb3JhLm9yZz4gd3JpdGVzOg0KPiA+IA0KPiA+ID4gDQo+
ID4gPiBUaGUgZm9sbG93aW5nIGNoYW5nZXMgc2luY2UgY29tbWl0DQo+ID4gPiBlZGUwMGE1Y2Vi
NGQ5MDNhOGMxMzdhNTJiYjc3ZDU3NGJhYWVmOGJkOg0KPiA+ID4gDQo+ID4gPiDCoCBNZXJnZSB0
YWcgJ3dpcmVsZXNzLWRyaXZlcnMtbmV4dC1mb3ItZGF2ZW0tMjAxNi0wNS0wMicgb2YNCj4gPiA+
IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9rdmFsby93aXJl
bGVzcy0NCj4gPiA+IGRyaXZlcnMtbmV4dCAoMjAxNi0wNS0wMyAwMDozNToxNiAtMDQwMCkNCj4g
PiA+IA0KPiA+ID4gYXJlIGF2YWlsYWJsZSBpbiB0aGUgZ2l0IHJlcG9zaXRvcnkgYXQ6DQo+ID4g
PiANCj4gPiA+IA0KPiA+ID4gwqAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9r
ZXJuZWwvZ2l0L2t2YWxvL3dpcmVsZXNzLQ0KPiA+ID4gZHJpdmVycy1uZXh0LmdpdCB0YWdzL3dp
cmVsZXNzLWRyaXZlcnMtbmV4dC1mb3ItZGF2ZW0tMjAxNi0wNS0xMw0KPiA+IFBsZWFzZSBkb24n
dCBwdWxsIHRoaXMgeWV0LCB0aGVyZSBtaWdodCBiZSBzb21ldGhpbmcgd3Jvbmcgbm93IHdpdGgN
Cj4gPiBtZXJnZXMgYW5kIG5lZWQgdG8gY2hlY2sgdGhhdCBmaXJzdC4NCj4gT2ssIGxpa2UgZGlz
Y3Vzc2VkIGluIHRocmVhZCAibGludXgtbmV4dDogbWFudWFsIG1lcmdlIG9mIHRoZQ0KPiB3aXJl
bGVzcy1kcml2ZXJzLW5leHQgdHJlZSB3aXRoIHRoZSBuZXQtbmV4dCB0cmVlIiB0aGVyZSBzZWVt
cyB0byBiZQ0KPiBhDQo+IHByb2JsZW0gb24gbmV0LW5leHQgaW4gZnVuY3Rpb24gaXdsX212bV9z
ZXRfdHhfY21kKCkuIEhlcmUgaXMgaG93IEkNCj4gcHJvcG9zZSB0byBmaXggdGhpcy4NCj4gDQo+
IFdoZW4gcHVsbGluZyB0aGUgdGFnIGFib3ZlIHlvdSBzaG91bGQgZ2V0IGEgY29uZmxpY3QgbGlr
ZSB0aGlzOg0KPiANCj4gZGlmZiAtLWNjIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdp
ZmkvbXZtL3R4LmMNCj4gaW5kZXggODgwMjEwOTE3YTZmLDc3OWJhZmNiYzlhMS4uMDAwMDAwMDAw
MDAwDQo+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmMN
Cj4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYw0KPiBA
QEAgLTI5NCw3IC0yOTUsNyArMjk0LDExIEBAQCB2b2lkIGl3bF9tdm1fc2V0X3R4X2NtZChzdHJ1
Y3QgaXdsX212bcKgDQo+IMKgwqDCoMKgwqDCoMKgwqB0eF9jbWQtPnR4X2ZsYWdzID0gY3B1X3Rv
X2xlMzIodHhfZmxhZ3MpOw0KPiDCoMKgwqDCoMKgwqDCoMKgLyogVG90YWwgIyBieXRlcyB0byBi
ZSB0cmFuc21pdHRlZCAqLw0KPiDCoMKgwqDCoMKgwqDCoMKgdHhfY21kLT5sZW4gPSBjcHVfdG9f
bGUxNigodTE2KXNrYi0+bGVuICsNCj4gKys8PDw8PDw8IEhFQUQNCj4gwqArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCh1aW50cHRyX3QpaW5mby0+ZHJpdmVyX2RhdGFbMF0pOw0KPiArKz09
PT09PT0NCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCh1aW50cHRyX3Qpc2tiX2lu
Zm8tPmRyaXZlcl9kYXRhWzBdKTsNCj4gKys+Pj4+Pj4+IG1hc3Rlcg0KPiDCoMKgwqDCoMKgwqDC
oMKgdHhfY21kLT5saWZlX3RpbWUgPSBjcHVfdG9fbGUzMihUWF9DTURfTElGRV9USU1FX0lORklO
SVRFKTsNCj4gwqDCoMKgwqDCoMKgwqDCoHR4X2NtZC0+c3RhX2lkID0gc3RhX2lkOw0KPiANCj4g
UGljayB0aGUgbGF0dGVyIHdpdGggc2tiX2luZm8gYW5kIHRoZW4gYWRkIHNrYl9pbmZvIHRvIHRo
ZSBiZWdpbm5pbmcNCj4gb2YNCj4gdGhlIHNhbWUgZnVuY3Rpb24uIFNvIHRoZSBmdW5jdGlvbiBz
aG91bGQgYmU6DQo+IA0KPiB2b2lkIGl3bF9tdm1fc2V0X3R4X2NtZChzdHJ1Y3QgaXdsX212bSAq
bXZtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KPiAJCQlzdHJ1Y3QgaXdsX3R4X2NtZCAqdHhfY21k
LA0KPiAJCQlzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8sIHU4IHN0YV9pZCkNCj4gew0K
PiAJc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICpza2JfaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Io
c2tiKTsNCj4gCXN0cnVjdCBpZWVlODAyMTFfaGRyICpoZHIgPSAodm9pZCAqKXNrYi0+ZGF0YTsN
Cj4gCV9fbGUxNiBmYyA9IGhkci0+ZnJhbWVfY29udHJvbDsNCj4gCXUzMiB0eF9mbGFncyA9IGxl
MzJfdG9fY3B1KHR4X2NtZC0+dHhfZmxhZ3MpOw0KPiAJdTMyIGxlbiA9IHNrYi0+bGVuICsgRkNT
X0xFTjsNCj4gCXU4IGFjOw0KPiANCj4gWy4uLl0NCj4gDQo+IAl0eF9jbWQtPnR4X2ZsYWdzID0g
Y3B1X3RvX2xlMzIodHhfZmxhZ3MpOw0KPiAJLyogVG90YWwgIyBieXRlcyB0byBiZSB0cmFuc21p
dHRlZCAqLw0KPiAJdHhfY21kLT5sZW4gPSBjcHVfdG9fbGUxNigodTE2KXNrYi0+bGVuICsNCj4g
CQkodWludHB0cl90KXNrYl9pbmZvLT5kcml2ZXJfZGF0YVswXSk7DQo+IAl0eF9jbWQtPmxpZmVf
dGltZSA9IGNwdV90b19sZTMyKFRYX0NNRF9MSUZFX1RJTUVfSU5GSU5JVEUpOw0KPiAJdHhfY21k
LT5zdGFfaWQgPSBzdGFfaWQ7DQo+IA0KPiBTb3JyeSBhYm91dCB0aGUgaGFzc2xlIGFuZCBwbGVh
c2UgbGV0IG1lIGtub3cgaWYgeW91IGhhdmUgYW55DQo+IHByb2JsZW1zLg0KPiBBZGRpbmcgTHVj
YSBhbmQgRW1tYW51ZWwganVzdCBpbiBjYXNlIEkgbWlzc2VkIHNvbWV0aGluZy4NCg0KQUNLLiDC
oFRoaXMgbG9va3MgY29ycmVjdC4gwqBJIGp1c3QgZGlmZmVkIHRoZSBpd2x3aWZpLW5leHQuZ2l0
IHRyZWUgKGF0DQpjb21taXQgYTUyNWQwZWFiMTdkIC0tIHdoaWNoIGlzIHdoZXJlIEkgbWVyZ2Ug
aXdsd2lmaS1maXhlcyBpbnRvDQppd2x3aWZpLW5leHQpIHdpdGggbmV0LW5leHQuZ2l0IG1hc3Rl
ciBhbmQgdGhlIGRpZmZlcmVuY2UgWzFdwqBpcw0KZXhhY3RseSB3aGF0IHlvdSBwcm9wb3NlZCB0
byBmaXguDQoNClsxXcKgaHR0cDovL3Bhc3RlYmluLmNvZWxoby5maS8xYjY5MDdjZGI5YTI1NDEz
LnR4dA0KDQotLQ0KQ2hlZXJzLA0KTHVjYS4=