From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from unimail.uni-dortmund.de (mx1.hrz.uni-dortmund.de [129.217.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9F7553DEAD2; Mon, 10 Aug 2026 13:26:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=129.217.128.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786368397; cv=none; b=OFkIj396f3rF7+1KKQ6a6rODPAyLB8MQmND9iN8dYftwcvUXryOiI4O3V8AmtI1Wd1v8Y/I1oTCQCquPPTjPmfpc4AlToAqoHWBMdzs8ymvoAFan5Lq/6+lMZwvsoK54HqNgwpQjIuzosM9E7MJQb2f1j6OjQdPmzzWOlpaKcO4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786368397; c=relaxed/simple; bh=GQQLqm6ISR6eSSolnLvTMnRFqpN/D3LnjtMFEHmSDeE=; h=Content-Type:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To; b=XvZGN0ByWcetXDOdNxNFkcCJSDtxpyUstDsJl22F1xMRdHsdyg6ozE1CiIL4mtr4hWBVIHHFdbV/mCWntCl9knbHSpaCr2SUpDR4RI8FML/Tbk/7k+9HBVxr8KLgO2CcD8vmA1NQjRt4kxiswc2nC8p+5guqKkKCzY82wGUJ9Hk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=tu-dortmund.de; spf=pass smtp.mailfrom=tu-dortmund.de; dkim=pass (1024-bit key) header.d=tu-dortmund.de header.i=@tu-dortmund.de header.b=eJ1KlCLy; arc=none smtp.client-ip=129.217.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=tu-dortmund.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tu-dortmund.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=tu-dortmund.de header.i=@tu-dortmund.de header.b="eJ1KlCLy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tu-dortmund.de; s=unimail; t=1786368355; bh=8427f5pq33GNVTZ5PiKq0UI5L104OdmG0Z0hCSz3YQk=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=eJ1KlCLygcko+sJU3JzVm2St3Kvcsp2SRr04v8JW40X6DJj+iYDWvv4ExQMivQPD+ FEQ6KMkTSgrMyhH6krEJcURqQnyI7K2eJ9ftyymKAQUV2Z0lD5p63VNjL8puRV/4Bf m/UYRNTtU3sygwPt27WNV2n5kEnF4JoMTfzo6Ej4= Received: from [129.217.186.116] ([129.217.186.116]) (authenticated bits=0) by unimail.uni-dortmund.de (8.19.0.2/8.19.0.2) with ESMTPSA id 67ADPrTc000753 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 10 Aug 2026 15:25:54 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------a8LV38veIpfvGoSPlD8O70wC" Message-ID: Date: Mon, 10 Aug 2026 15:25:53 +0200 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v7 0/5] veth: add Byte Queue Limits (BQL) support To: hawk@kernel.org, netdev@vger.kernel.org, =?UTF-8?Q?Jonas_K=C3=B6ppeler?= Cc: kernel-team@cloudflare.com, "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Chris Arges , Mike Freemon , =?UTF-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Breno Leitao , Alexei Starovoitov , Daniel Borkmann , John Fastabend , Stanislav Fomichev , bpf@vger.kernel.org References: <20260612083530.1650245-1-hawk@kernel.org> Content-Language: en-US From: Simon Schippers In-Reply-To: <20260612083530.1650245-1-hawk@kernel.org> This is a multi-part message in MIME format. --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 6/12/26 10:35, hawk@kernel.org wrote: > From: Jesper Dangaard Brouer > > This series adds BQL (Byte Queue Limits) to the veth driver, reducing > latency by dynamically limiting in-flight packets in the ptr_ring and > moving buffering into the qdisc where AQM algorithms can act on it. Hi :) I worked on my implementation of DQL coalescing that lives in dynamic_queue_limits.{h,c} and wanted to share it so we can consider it for the next cycle. This is because in the next cycle I would like to add BQL support for tun/tap as well, in addition to veth. Is that fine for you? I think it is in good shape. It uses the same logic as the v7, but every new field fits inside the existing dql struct, and drivers only need to call the usual netdev_tx_sent_queue() and netdev_tx_completed_queue() to use it. Patch 3, 5 and 6 are the same as before, only 1, 2 and 4 are new. Benchmarks looked fine for me. There should be no regressions for other DQL/BQL users. I paid close attention not to break the dql cache lines or other logic. coal_usecs is now configurable per queue via sysfs and also via ethtool as usual. While working on this, I found a missing barrier in v7: There was no smp_rmb() pairing the smp_wmb() in __ptr_ring_produce() before dql_completed() reads dql->num_queued. This happens to be safe on x86, but on other platforms the read of dql->num_queued could be reordered before __ptr_ring_consume(), triggering a BUG_ON() in dql_completed(). Fixed by adding the missing smp_rmb() in veth_xdp_rcv() before completing. Would love to hear your thoughts on the implementation! Thanks, Simon --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/x-patch; charset=UTF-8; name="0001-net-dql-Add-completion-coalescing-for-software-inter.patch" Content-Disposition: attachment; filename*0="0001-net-dql-Add-completion-coalescing-for-software-inter.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxYTZkMmYwYTE1YzIzYmI0ZWJiNDQxMzkxOTNjMjY0OWRlMTE0MmFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBTY2hpcHBlcnMgPHNpbW9uLnNjaGlwcGVy c0B0dS1kb3J0bXVuZC5kZT4KRGF0ZTogVGh1LCA2IEF1ZyAyMDI2IDE2OjE3OjM1ICswMjAw ClN1YmplY3Q6IFtQQVRDSCBuZXQtbmV4dCB2OCAxLzZdIG5ldDogZHFsOiBBZGQgY29tcGxl dGlvbiBjb2FsZXNjaW5nIGZvcgogc29mdHdhcmUgaW50ZXJmYWNlcwoKU29mdHdhcmUgaW50 ZXJmYWNlcyBsaWtlIHZldGggb3IgdHVuIGhhdmUgbm8gaGFyZHdhcmUgY29tcGxldGlvbiBp bnRlcnJ1cHQKYW5kIGNvbnN1bWUgcGFja2V0cyBvbmUgYXQgYSB0aW1lLiBDYWxsaW5nIG5l dGRldl90eF9jb21wbGV0ZWRfcXVldWUoKSBwZXIKcGFja2V0IG1ha2VzIERRTCBjb252ZXJn ZSBvbiBhIGxpbWl0IG9mIHR3byBwYWNrZXRzLCB3aGljaCBpcyBhIHJlZ3Jlc3Npb246CkJR TCBzaXplcyB0aGUgbGltaXQgZnJvbSBob3cgbXVjaCBjb21wbGV0ZXMgcGVyIGNhbGwsIHNv IGEgY2FsbGVyIHRoYXQKcmVwb3J0cyBhIHNpbmdsZSBvYmplY3QgZXZlcnkgdGltZSBmb3Jj ZXMgc3VjaCBhIGxpbWl0LiBBZGQgYW4gb3B0aW9uYWwKY29hbGVzY2luZyB3aW5kb3cgc28g c3VjaCBhIHF1ZXVlIGNhbiBiYXRjaCBjb21wbGV0aW9ucyBhbmQgcmVwb3J0IHRoZW0KcGVy aW9kaWNhbGx5IGluc3RlYWQuCgpUaGUgd2luZG93IGlzIHNldCBwZXIgcXVldWUgd2l0aCBk cWxfc2V0X2NvYWxfdXNlY3MoKS4gV2hpbGUgaXQgaXMKbm9uLXplcm8sIGRxbF9jb21wbGV0 ZWQoKSBhY2N1bXVsYXRlcyB0aGUgY291bnQgaW4gY29hbF9wZW5kaW5nIGFuZCByZXR1cm5z CmZhbHNlIGluc3RlYWQgb2YgcmVjYWxjdWxhdGluZyB0aGUgbGltaXQsIHVudGlsIHRoZSB3 aW5kb3cgaGFzIGVsYXBzZWQgb3IKdGhlIGJhdGNoIGhhcyBncm93biBiZXlvbmQgdGhlIGxp bWl0LiBUaGF0IGNvbmRpdGlvbiBpcyBldmFsdWF0ZWQgYmVmb3JlCmFueSBmaWVsZCBvZiB0 aGUgZmlyc3QgY2FjaGUgbGluZSBpcyByZWFkLCBzbyBhIGNhbGwgdGhhdCBvbmx5IGJhdGNo ZXMgZG9lcwpub3QgdG91Y2ggdGhhdCBsaW5lIGF0IGFsbC4KCkEgaGVsZC1iYWNrIGJhdGNo IGNhbm5vdCBzdGFsbCB0aGUgcXVldWUuIGRxbF9xdWV1ZWQoKSBzdG9wcyB0aGUgcXVldWUg b25jZQpudW1fcXVldWVkIGV4Y2VlZHMgYWRqX2xpbWl0LCBzbyBhIHN0b3BwZWQgcXVldWUg aGFzIGF0IGxlYXN0IGxpbWl0ICsgMQpvYmplY3RzIGluIGZsaWdodC4gRHJhaW5pbmcgaXQg bWFrZXMgY29hbF9wZW5kaW5nIGV4Y2VlZCB0aGUgbGltaXQgYW5kCmZvcmNlcyBhIGZsdXNo IG9uIHRoZSBjYWxsIHRoYXQgY29tcGxldGVzIHRoZSBsYXN0IG9uZS4gQSBiYXRjaCBjYW4K dGhlcmVmb3JlIG9ubHkgZGVmZXIgYSB3YWtlLXVwIHRoYXQgaXMgbm90IG5lZWRlZCB5ZXQu CgpDb2FsZXNjaW5nIGlzIGFjdGl2ZSB3aGVuIGNvYWxfdXNlY3Mgb3IgY29hbF9wZW5kaW5n IGlzIHNldCwgcmF0aGVyIHRoYW4KYmVpbmcgY29udHJvbGxlZCBieSBhIHNlcGFyYXRlIGVu YWJsZSBmbGFnLCBzbyBubyBlbmFibGUgc3RhdGUgY2FuIGJlCnRvZ2dsZWQgb3V0IGZyb20g dW5kZXIgYSBwZW5kaW5nIGJhdGNoLiBUaGUgc2Vjb25kIHRlcm0ga2VlcHMgYW4Kb3V0c3Rh bmRpbmcgYmF0Y2ggcmVhY2hhYmxlIGFmdGVyIHRoZSB3aW5kb3cgaXMgc2V0IGJhY2sgdG8g MC4gV2l0aG91dCBpdAp0aG9zZSBvYmplY3RzIHdvdWxkIG5ldmVyIGJlIGZvbGRlZCBpbnRv IG51bV9jb21wbGV0ZWQgYW5kIHRoZSBxdWV1ZSB3b3VsZApzdGFsbC4KClRpbWVzdGFtcHMg Y29tZSBmcm9tIGxvY2FsX2Nsb2NrKCksIHdoaWNoIHVubGlrZSByYXcgc2NoZWRfY2xvY2so KSBpcwpib3VuZGVkIGFjcm9zcyBDUFVzLiBUaGV5IGFyZSBrZXB0IGluIHVuaXRzIG9mIDEw MjQgbnMgdG8gYXZvaWQgYSBkaXZpc2lvbiwKc28gdGhlIHdpbmRvdyBpcyB+Mi40JSBsb25n ZXIgdGhhbiBjb25maWd1cmVkLCBhbmQgdGhlIHUzMiB3cmFwcyBldmVyeSB+NzMKbWludXRl cywgd2hpY2ggdW5zaWduZWQgc3VidHJhY3Rpb24gaGFuZGxlcy4gQSBDUFUgbWlncmF0aW9u IGNhbiBtb3ZlIHRoZQp0aW1lc3RhbXAgYmFja3dhcmRzIHdpdGhpbiBsb2NhbF9jbG9jaygp J3MgZHJpZnQgYm91bmQgYW5kIGZsdXNoIG9uZSBiYXRjaAplYXJseS4gVGhhdCBpcyByYXJl IGFuZCBvbmx5IGNvc3RzIGEgbGl0dGxlIGJhdGNoaW5nLiBUaGUgY2xvY2sgaXMgcmVhZApv bmx5IG9uY2UgdGhlcmUgaXMgc29tZXRoaW5nIHBlbmRpbmcsIHNvIGEgY2FsbGVyIHRoYXQg Zmx1c2hlcyBhIHF1ZXVlCndpdGggYW4gZW1wdHkgYmF0Y2ggZG9lcyBub3QgcGF5IGZvciBp dC4KClJvb20gZm9yIHRoZSB0aHJlZSBuZXcgZmllbGRzIGNvbWVzIGZyb20gbW92aW5nIG1h eF9saW1pdCBhbmQgbWluX2xpbWl0CmludG8gdGhlIGVucXVldWUgY2FjaGUgbGluZSwgd2hp Y2ggaGFkIGVpZ2h0IGJ5dGVzIGZyZWUsIGFuZCByZWFkaW5nIHRoZW0KdXAgZnJvbnQgaW4g ZHFsX2NvbXBsZXRlZCgpIG5leHQgdG8gbnVtX3F1ZXVlZCBhbmQgc3RhbGxfdGhycy4gVGhl CmNvbXBsZXRpb24gcGF0aCBhbHJlYWR5IHRvdWNoZWQgdGhhdCBsaW5lIG9uY2UsIHNvIHRo ZSBtb3ZlIGFkZHMgbm8gY2FjaGUKbGluZSB0b3VjaC4gQm90aCBjYWNoZSBsaW5lcyBhcmUg bm93IGV4YWN0bHkgZnVsbCBvbiB4ODZfNjQgYW5kCnNpemVvZihzdHJ1Y3QgZHFsKSBpcyB1 bmNoYW5nZWQuCgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTY2hpcHBlcnMgPHNpbW9uLnNjaGlw cGVyc0B0dS1kb3J0bXVuZC5kZT4KLS0tCiBpbmNsdWRlL2xpbnV4L2R5bmFtaWNfcXVldWVf bGltaXRzLmggfCA1MyArKysrKysrKysrKysrKysrKysrKy0tLQogbGliL2R5bmFtaWNfcXVl dWVfbGltaXRzLmMgICAgICAgICAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQogMiBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9keW5hbWljX3F1ZXVlX2xpbWl0cy5oIGIv aW5jbHVkZS9saW51eC9keW5hbWljX3F1ZXVlX2xpbWl0cy5oCmluZGV4IDgwOGIxYTUxMDJl Ny4uY2I3MzM4MjA5MjQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2R5bmFtaWNfcXVl dWVfbGltaXRzLmgKKysrIGIvaW5jbHVkZS9saW51eC9keW5hbWljX3F1ZXVlX2xpbWl0cy5o CkBAIC0xMCw3ICsxMCw4IEBACiAgKgogICogICAxKSBPYmplY3RzIGFyZSBxdWV1ZWQgdXAg dG8gc29tZSBsaW1pdCBzcGVjaWZpZWQgYXMgbnVtYmVyIG9mIG9iamVjdHMuCiAgKiAgIDIp IFBlcmlvZGljYWxseSBhIGNvbXBsZXRpb24gcHJvY2VzcyBleGVjdXRlcyB3aGljaCByZXRp cmVzIGNvbnN1bWVkCi0gKiAgICAgIG9iamVjdHMuCisgKiAgICAgIG9iamVjdHMsIG9yIG9i amVjdHMgYXJlIGNvYWxlc2NlZCwgd2hpY2ggc3VpdHMgc29mdHdhcmUgaW50ZXJmYWNlcwor ICogICAgICBjb21wbGV0aW5nIG9uZSBwYWNrZXQgYXQgYSB0aW1lLgogICogICAzKSBTdGFy dmF0aW9uIG9jY3VycyB3aGVuIGxpbWl0IGhhcyBiZWVuIHJlYWNoZWQsIGFsbCBxdWV1ZWQg ZGF0YSBoYXMKICAqICAgICAgYWN0dWFsbHkgYmVlbiBjb25zdW1lZCwgYnV0IGNvbXBsZXRp b24gcHJvY2Vzc2luZyBoYXMgbm90IHlldCBydW4KICAqICAgICAgc28gcXVldWluZyBuZXcg ZGF0YSBpcyBibG9ja2VkLgpAQCAtMzksNiArNDAsNyBAQAogI2lmZGVmIF9fS0VSTkVMX18K IAogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ CiAjaW5jbHVkZSA8YXNtL2J1Zy5oPgogCiAjZGVmaW5lIERRTF9ISVNUX0xFTgkJNApAQCAt NTMsNiArNTUsOSBAQCBzdHJ1Y3QgZHFsIHsKIAkvKiBTdGFsbCB0aHJlc2hvbGQgKGluIGpp ZmZpZXMpLCBkZWZpbmVkIGJ5IHVzZXIgKi8KIAl1bnNpZ25lZCBzaG9ydAlzdGFsbF90aHJz OwogCisJdW5zaWduZWQgaW50CW1heF9saW1pdDsJCS8qIE1heCBsaW1pdCAqLworCXVuc2ln bmVkIGludAltaW5fbGltaXQ7CQkvKiBNaW5pbXVtIGxpbWl0ICovCisKIAl1bnNpZ25lZCBs b25nCWhpc3RvcnlfaGVhZDsJCS8qIHRvcCA1OCBiaXRzIG9mIGppZmZpZXMgKi8KIAkvKiBz dGFsbCBlbnRyaWVzLCBhIGJpdCBwZXIgZW50cnkgKi8KIAl1bnNpZ25lZCBsb25nCWhpc3Rv cnlbRFFMX0hJU1RfTEVOXTsKQEAgLTY5LDIxICs3NCwzOCBAQCBzdHJ1Y3QgZHFsIHsKIAl1 bnNpZ25lZCBpbnQJbG93ZXN0X3NsYWNrOwkJLyogTG93ZXN0IHNsYWNrIGZvdW5kICovCiAJ dW5zaWduZWQgbG9uZwlzbGFja19zdGFydF90aW1lOwkvKiBUaW1lIHNsYWNrcyBzZWVuICov CiAKLQkvKiBDb25maWd1cmF0aW9uICovCi0JdW5zaWduZWQgaW50CW1heF9saW1pdDsJCS8q IE1heCBsaW1pdCAqLwotCXVuc2lnbmVkIGludAltaW5fbGltaXQ7CQkvKiBNaW5pbXVtIGxp bWl0ICovCiAJdW5zaWduZWQgaW50CXNsYWNrX2hvbGRfdGltZTsJLyogVGltZSB0byBtZWFz dXJlIHNsYWNrICovCiAKIAkvKiBMb25nZXN0IHN0YWxsIGRldGVjdGVkLCByZXBvcnRlZCB0 byB1c2VyICovCiAJdW5zaWduZWQgc2hvcnQJc3RhbGxfbWF4OworCisJLyogQ29tcGxldGlv biBjb2FsZXNjaW5nIHdpbmRvdyBpbiB1cywgMCBkaXNhYmxlcyBjb2FsZXNjaW5nICovCisJ dTE2CQljb2FsX3VzZWNzOworCiAJdW5zaWduZWQgbG9uZwlsYXN0X3JlYXA7CQkvKiBMYXN0 IHJlYXAgKGluIGppZmZpZXMpICovCiAJdW5zaWduZWQgbG9uZwlzdGFsbF9jbnQ7CQkvKiBO dW1iZXIgb2Ygc3RhbGxzICovCisKKwkvKiBPYmplY3RzIGNvbXBsZXRlZCBidXQgbm90IHll dCBhY2NvdW50ZWQgZm9yLCBoZWxkIGJhY2sgYnkKKwkgKiBjb21wbGV0aW9uIGNvYWxlc2Np bmcuCisJICovCisJdTMyCQljb2FsX3BlbmRpbmc7CisJLyogTGFzdCBmbHVzaCwgbG9jYWxf Y2xvY2soKSA+PiBEUUxfQ09BTF9OU19UT19VU0VDU19TSElGVCAqLworCXUzMgkJY29hbF9s YXN0X2ZsdXNoOwogfTsKIAogLyogU2V0IHNvbWUgc3RhdGljIG1heGltdW1zICovCiAjZGVm aW5lIERRTF9NQVhfT0JKRUNUIChVSU5UX01BWCAvIDE2KQogI2RlZmluZSBEUUxfTUFYX0xJ TUlUICgoVUlOVF9NQVggLyAyKSAtIERRTF9NQVhfT0JKRUNUKQogCisvKiBsb2NhbF9jbG9j aygpIGlzIGluIG5zLiAgU2hpZnRpbmcgYnkgMTAgKGRpdmlkaW5nIGJ5IDEwMjQpIGluc3Rl YWQgb2YKKyAqIGRpdmlkaW5nIGJ5IE5TRUNfUEVSX1VTRUMgKDEwMDApIGlzIGNsb3NlIGVu b3VnaCBmb3IgYSBjb2FsZXNjaW5nIHdpbmRvdyBhbmQKKyAqIGF2b2lkcyBhIGRpdmlzaW9u LCBhdCB0aGUgY29zdCBvZiBhIHdpbmRvdyB+Mi40JSBsb25nZXIgdGhhbiBjb25maWd1cmVk LgorICovCisjZGVmaW5lIERRTF9DT0FMX05TX1RPX1VTRUNTX1NISUZUCTEwCisKKy8qIE1h eGltdW0gY29hbGVzY2luZyB3aW5kb3csIGJvdW5kZWQgYnkgdGhlIHdpZHRoIG9mIC0+Y29h bF91c2VjcyAqLworI2RlZmluZSBEUUxfQ09BTF9NQVhfVVNFQ1MJCVUxNl9NQVgKKwogLyog UG9wdWxhdGUgdGhlIGJpdG1hcCB0byBiZSBwcm9jZXNzZWQgbGF0ZXIgaW4gZHFsX2NoZWNr X3N0YWxsKCkgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBkcWxfcXVldWVfc3RhbGwoc3RydWN0 IGRxbCAqZHFsKQogewpAQCAtMTQ5LDggKzE3MSwyNyBAQCBzdGF0aWMgaW5saW5lIGludCBk cWxfYXZhaWwoY29uc3Qgc3RydWN0IGRxbCAqZHFsKQogCXJldHVybiBSRUFEX09OQ0UoZHFs LT5hZGpfbGltaXQpIC0gUkVBRF9PTkNFKGRxbC0+bnVtX3F1ZXVlZCk7CiB9CiAKLS8qIFJl Y29yZCBudW1iZXIgb2YgY29tcGxldGVkIG9iamVjdHMgYW5kIHJlY2FsY3VsYXRlIHRoZSBs aW1pdC4gKi8KLXZvaWQgZHFsX2NvbXBsZXRlZChzdHJ1Y3QgZHFsICpkcWwsIHVuc2lnbmVk IGludCBjb3VudCk7CisvKiBTZXQgdGhlIGNvbXBsZXRpb24gY29hbGVzY2luZyB3aW5kb3cg aW4gdXMsIDAgZGlzYWJsZXMgY29hbGVzY2luZy4gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBk cWxfc2V0X2NvYWxfdXNlY3Moc3RydWN0IGRxbCAqZHFsLCB1bnNpZ25lZCBpbnQgdXNlY3Mp Cit7CisJaWYgKFdBUk5fT05fT05DRSh1c2VjcyA+IERRTF9DT0FMX01BWF9VU0VDUykpCisJ CXVzZWNzID0gRFFMX0NPQUxfTUFYX1VTRUNTOworCisJV1JJVEVfT05DRShkcWwtPmNvYWxf dXNlY3MsIHVzZWNzKTsKK30KKworLyogUmV0dXJuIHRoZSBjb21wbGV0aW9uIGNvYWxlc2Np bmcgd2luZG93IGluIHVzLCAwIGlmIGRpc2FibGVkLiAqLworc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQgZHFsX2dldF9jb2FsX3VzZWNzKGNvbnN0IHN0cnVjdCBkcWwgKmRxbCkKK3sK KwlyZXR1cm4gUkVBRF9PTkNFKGRxbC0+Y29hbF91c2Vjcyk7Cit9CisKKy8qIFJlY29yZCBu dW1iZXIgb2YgY29tcGxldGVkIG9iamVjdHMgYW5kIHJlY2FsY3VsYXRlIHRoZSBsaW1pdC4K KyAqCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbXBsZXRpb24gd2FzIGFwcGxpZWQgYW5k IHRoZSBsaW1pdCByZWNhbGN1bGF0ZWQsIGZhbHNlCisgKiBpZiBpdCB3YXMgb25seSBiYXRj aGVkIGJ5IGNvbXBsZXRpb24gY29hbGVzY2luZy4KKyAqLworYm9vbCBkcWxfY29tcGxldGVk KHN0cnVjdCBkcWwgKmRxbCwgdW5zaWduZWQgaW50IGNvdW50KTsKIAogLyogUmVzZXQgZHFs IHN0YXRlICovCiB2b2lkIGRxbF9yZXNldChzdHJ1Y3QgZHFsICpkcWwpOwpkaWZmIC0tZ2l0 IGEvbGliL2R5bmFtaWNfcXVldWVfbGltaXRzLmMgYi9saWIvZHluYW1pY19xdWV1ZV9saW1p dHMuYwppbmRleCBmOTdhNzUyZTkwMGEuLmFmNGFlMWQxMWM4MSAxMDA2NDQKLS0tIGEvbGli L2R5bmFtaWNfcXVldWVfbGltaXRzLmMKKysrIGIvbGliL2R5bmFtaWNfcXVldWVfbGltaXRz LmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9keW5hbWljX3F1ZXVlX2xp bWl0cy5oPgogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8bGludXgv ZXhwb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4KICNpbmNsdWRlIDx0 cmFjZS9ldmVudHMvbmFwaS5oPgogCiAjZGVmaW5lIFBPU0RJRkYoQSwgQikgKChpbnQpKChB KSAtIChCKSkgPiAwID8gKEEpIC0gKEIpIDogMCkKQEAgLTgwLDIwICs4MSw2NSBAQCBzdGF0 aWMgdm9pZCBkcWxfY2hlY2tfc3RhbGwoc3RydWN0IGRxbCAqZHFsLCB1bnNpZ25lZCBzaG9y dCBzdGFsbF90aHJzKQogfQogCiAvKiBSZWNvcmRzIGNvbXBsZXRlZCBjb3VudCBhbmQgcmVj YWxjdWxhdGVzIHRoZSBxdWV1ZSBsaW1pdCAqLwotdm9pZCBkcWxfY29tcGxldGVkKHN0cnVj dCBkcWwgKmRxbCwgdW5zaWduZWQgaW50IGNvdW50KQorYm9vbCBkcWxfY29tcGxldGVkKHN0 cnVjdCBkcWwgKmRxbCwgdW5zaWduZWQgaW50IGNvdW50KQogewogCXVuc2lnbmVkIGludCBp bnByb2dyZXNzLCBwcmV2X2lucHJvZ3Jlc3MsIGxpbWl0OwogCXVuc2lnbmVkIGludCBvdmxp bWl0LCBjb21wbGV0ZWQsIG51bV9xdWV1ZWQ7CisJdW5zaWduZWQgaW50IG1heF9saW1pdCwg bWluX2xpbWl0OwogCXVuc2lnbmVkIHNob3J0IHN0YWxsX3RocnM7CiAJYm9vbCBhbGxfcHJl dl9jb21wbGV0ZWQ7CisJdTE2IGNvYWxfdXNlY3M7CisJYm9vbCBjb2FsOworCisJLyogQ29h bGVzY2luZyBpcyBhY3RpdmUgd2hpbGUgYSB3aW5kb3cgaXMgY29uZmlndXJlZCwgb3Igd2hp bGUgYSBiYXRjaAorCSAqIGlzIHN0aWxsIG91dHN0YW5kaW5nIGFuZCBuZWVkcyBkcmFpbmlu Zy4gUmVhZCBjb2FsX3VzZWNzIG9uY2Ugc28gdGhhdAorCSAqIHRoZSB0d28gdXNlcyBiZWxv dyBjYW5ub3QgZGlzYWdyZWUgaWYgaXQgaXMgY2hhbmdlZCBjb25jdXJyZW50bHkuCisJICov CisJY29hbF91c2VjcyA9IFJFQURfT05DRShkcWwtPmNvYWxfdXNlY3MpOworCWNvYWwgPSBj b2FsX3VzZWNzIHx8IGRxbC0+Y29hbF9wZW5kaW5nOworCisJLyogV2l0aG91dCBjb2FsZXNj aW5nIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gdW5sZXNzIHNvbWV0aGluZyBjb21wbGV0ZWQu CisJICogQSBjb2FsZXNjaW5nIHF1ZXVlIG1heSBiZSBjYWxsZWQgd2l0aCBAY291bnQgPT0g MCB0byBmbHVzaCBhIGJhdGNoCisJICogd2hvc2Ugd2luZG93IGhhcyBlbGFwc2VkLgorCSAq LworCWlmICghY29hbCAmJiAhY291bnQpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChjb2Fs KSB7CisJCXUzMiBub3c7CisKKwkJZHFsLT5jb2FsX3BlbmRpbmcgKz0gY291bnQ7CisJCWlm ICghZHFsLT5jb2FsX3BlbmRpbmcpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyogUmVhZCB0 aGUgY2xvY2sgb25seSBvbmNlIHRoZXJlIGlzIHNvbWV0aGluZyB0byBob2xkIGJhY2ssIHNv CisJCSAqIHRoYXQgYSBmbHVzaCBjYWxsIG9uIGEgcXVldWUgd2l0aCBub3RoaW5nIHBlbmRp bmcgaXMgZnJlZS4KKwkJICovCisJCW5vdyA9IGxvY2FsX2Nsb2NrKCkgPj4gRFFMX0NPQUxf TlNfVE9fVVNFQ1NfU0hJRlQ7CisKKwkJLyogSG9sZCBjb2FsX3BlbmRpbmcgYmFjayB1bnRp bCB0aGUgd2luZG93IGhhcyBlbGFwc2VkLgorCQkgKiBjb2FsX3BlbmRpbmcgYWJvdmUgdGhl IGxpbWl0IG1lYW5zIHRoZSBxdWV1ZSBpcyBzdGFydmVkOiBpdAorCQkgKiBjYW5ub3QgbWFr ZSBwcm9ncmVzcyB1bnRpbCB0aG9zZSBvYmplY3RzIGFyZSBhY2NvdW50ZWQgZm9yLAorCQkg KiBzbyBmbHVzaCByZWdhcmRsZXNzIG9mIHRoZSB3aW5kb3cuCisJCSAqLworCQlpZiAobm93 IC0gZHFsLT5jb2FsX2xhc3RfZmx1c2ggPCBjb2FsX3VzZWNzICYmCisJCSAgICBkcWwtPmNv YWxfcGVuZGluZyA8PSBkcWwtPmxpbWl0KQorCQkJcmV0dXJuIGZhbHNlOworCisJCWNvdW50 ID0gZHFsLT5jb2FsX3BlbmRpbmc7CisJCWRxbC0+Y29hbF9wZW5kaW5nID0gMDsKKwkJZHFs LT5jb2FsX2xhc3RfZmx1c2ggPSBub3c7CisJfQogCiAJbnVtX3F1ZXVlZCA9IFJFQURfT05D RShkcWwtPm51bV9xdWV1ZWQpOwotCS8qIFJlYWQgc3RhbGxfdGhycyBpbiBhZHZhbmNlIHNp bmNlIGl0IGJlbG9uZ3MgdG8gdGhlIHNhbWUgKGZpcnN0KQotCSAqIGNhY2hlIGxpbmUgYXMg LT5udW1fcXVldWVkLiBUaGlzIHdheSwgZHFsX2NoZWNrX3N0YWxsKCkgZG9lcyBub3QKLQkg KiBuZWVkIHRvIHRvdWNoIHRoZSBmaXJzdCBjYWNoZSBsaW5lIGFnYWluIGxhdGVyLCByZWR1 Y2luZyB0aGUgd2luZG93Ci0JICogb2YgcG9zc2libGUgZmFsc2Ugc2hhcmluZy4KKwkvKiBS ZWFkIHN0YWxsX3RocnMsIG1heF9saW1pdCBhbmQgbWluX2xpbWl0IGluIGFkdmFuY2Ugc2lu Y2UgdGhleSBiZWxvbmcKKwkgKiB0byB0aGUgc2FtZSAoZmlyc3QpIGNhY2hlIGxpbmUgYXMg LT5udW1fcXVldWVkLiBUaGlzIHdheSwgbmVpdGhlcgorCSAqIGRxbF9jaGVja19zdGFsbCgp IG5vciB0aGUgY2xhbXAoKSBiZWxvdyBuZWVkIHRvIHRvdWNoIHRoZSBmaXJzdCBjYWNoZQor CSAqIGxpbmUgYWdhaW4gbGF0ZXIsIHJlZHVjaW5nIHRoZSB3aW5kb3cgb2YgcG9zc2libGUg ZmFsc2Ugc2hhcmluZy4KIAkgKi8KIAlzdGFsbF90aHJzID0gUkVBRF9PTkNFKGRxbC0+c3Rh bGxfdGhycyk7CisJbWF4X2xpbWl0ID0gUkVBRF9PTkNFKGRxbC0+bWF4X2xpbWl0KTsKKwlt aW5fbGltaXQgPSBSRUFEX09OQ0UoZHFsLT5taW5fbGltaXQpOwogCiAJLyogQ2FuJ3QgY29t cGxldGUgbW9yZSB0aGFuIHdoYXQncyBpbiBxdWV1ZSAqLwogCUJVR19PTihjb3VudCA+IG51 bV9xdWV1ZWQgLSBkcWwtPm51bV9jb21wbGV0ZWQpOwpAQCAtMTcwLDcgKzIxNiw3IEBAIHZv aWQgZHFsX2NvbXBsZXRlZChzdHJ1Y3QgZHFsICpkcWwsIHVuc2lnbmVkIGludCBjb3VudCkK IAl9CiAKIAkvKiBFbmZvcmNlIGJvdW5kcyBvbiBsaW1pdCAqLwotCWxpbWl0ID0gY2xhbXAo bGltaXQsIGRxbC0+bWluX2xpbWl0LCBkcWwtPm1heF9saW1pdCk7CisJbGltaXQgPSBjbGFt cChsaW1pdCwgbWluX2xpbWl0LCBtYXhfbGltaXQpOwogCiAJaWYgKGxpbWl0ICE9IGRxbC0+ bGltaXQpIHsKIAkJZHFsLT5saW1pdCA9IGxpbWl0OwpAQCAtMTg0LDYgKzIzMCw4IEBAIHZv aWQgZHFsX2NvbXBsZXRlZChzdHJ1Y3QgZHFsICpkcWwsIHVuc2lnbmVkIGludCBjb3VudCkK IAlkcWwtPnByZXZfbnVtX3F1ZXVlZCA9IG51bV9xdWV1ZWQ7CiAKIAlkcWxfY2hlY2tfc3Rh bGwoZHFsLCBzdGFsbF90aHJzKTsKKworCXJldHVybiB0cnVlOwogfQogRVhQT1JUX1NZTUJP TChkcWxfY29tcGxldGVkKTsKIApAQCAtMTk5LDYgKzI0Nyw4IEBAIHZvaWQgZHFsX3Jlc2V0 KHN0cnVjdCBkcWwgKmRxbCkKIAlkcWwtPnByZXZfb3ZsaW1pdCA9IDA7CiAJZHFsLT5sb3dl c3Rfc2xhY2sgPSBVSU5UX01BWDsKIAlkcWwtPnNsYWNrX3N0YXJ0X3RpbWUgPSBqaWZmaWVz OworCWRxbC0+Y29hbF9wZW5kaW5nID0gMDsKKwlkcWwtPmNvYWxfbGFzdF9mbHVzaCA9IGxv Y2FsX2Nsb2NrKCkgPj4gRFFMX0NPQUxfTlNfVE9fVVNFQ1NfU0hJRlQ7CiAKIAlkcWwtPmxh c3RfcmVhcCA9IGppZmZpZXM7CiAJZHFsLT5oaXN0b3J5X2hlYWQgPSBqaWZmaWVzIC8gQklU U19QRVJfTE9ORzsKQEAgLTIxMiw2ICsyNjIsNyBAQCB2b2lkIGRxbF9pbml0KHN0cnVjdCBk cWwgKmRxbCwgdW5zaWduZWQgaW50IGhvbGRfdGltZSkKIAlkcWwtPm1pbl9saW1pdCA9IDA7 CiAJZHFsLT5zbGFja19ob2xkX3RpbWUgPSBob2xkX3RpbWU7CiAJZHFsLT5zdGFsbF90aHJz ID0gMDsKKwlkcWwtPmNvYWxfdXNlY3MgPSAwOwogCWRxbF9yZXNldChkcWwpOwogfQogRVhQ T1JUX1NZTUJPTChkcWxfaW5pdCk7CgpiYXNlLWNvbW1pdDogMDAxYjVkMzQ3ZDhiYTM5YjJk Y2NhZWZjYzU3OTY3YjE4Y2FlYzhmZQotLSAKMi40My4wCgo= --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/x-patch; charset=UTF-8; name="0002-net-bql-Provide-support-for-dql-coalescing-for-softw.patch" Content-Disposition: attachment; filename*0="0002-net-bql-Provide-support-for-dql-coalescing-for-softw.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhZDk3ZWNiMWVhMjVhMTZiZDYxNTQ5ZTk1ZGNlMWE4NmI0ZWZjZDdlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBTY2hpcHBlcnMgPHNpbW9uLnNjaGlwcGVy c0B0dS1kb3J0bXVuZC5kZT4KRGF0ZTogVGh1LCA2IEF1ZyAyMDI2IDE2OjE4OjUyICswMjAw ClN1YmplY3Q6IFtQQVRDSCBuZXQtbmV4dCB2OCAyLzZdIG5ldDogYnFsOiBQcm92aWRlIHN1 cHBvcnQgZm9yIGRxbCBjb2FsZXNjaW5nCiBmb3Igc29mdHdhcmUgaW50ZXJmYWNlcwoKTWFr ZSB0aGUgRFFMIGNvYWxlc2Npbmcgd2luZG93IGZyb20gdGhlIHByZXZpb3VzIGNvbW1pdCB1 c2FibGUgYnkgQlFMLgoKbmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZSgpIG5vdyByZXR1cm5z IGZhbHNlIGVhcmx5IGlmIHRoZSBjb21wbGV0aW9uIHdhcwpvbmx5IGJhdGNoZWQgYnkgRFFM IGNvYWxlc2NpbmcsIGF2b2lkaW5nIHRoZSBtZW1vcnkgYmFycmllciBhbmQgdGhlCndha2Ut dXAuIG5ldGRldl90eHFfY29tcGxldGVkX21iKCkgaXMgYWRqdXN0ZWQgYWNjb3JkaW5nbHkg YW5kIGlzc3VlcyB0aGUKc21wX21iKCkgaXRzZWxmIGlmIG5vIGNvbXBsZXRpb24gd2FzIGFw cGxpZWQuCgpuZXRpZl9zZXRfYnFsX2NvYWxlc2NlX3VzZWNzKCkgc2V0cyB0aGUgd2luZG93 IG9uIGV2ZXJ5IFRYIHF1ZXVlIG9mIGEKZGV2aWNlLCBib3RoIGF0IHNldHVwIGFuZCBsYXRl ciBvbiBhIGxpdmUgZGV2aWNlLCBhbmQKbmV0aWZfZ2V0X2JxbF9jb2FsZXNjZV91c2Vjcygp IHJlYWRzIGl0IGJhY2sgZnJvbSBxdWV1ZSAwIGZvciBkcml2ZXJzCnRoYXQgd2FudCB0byBy ZXBvcnQgaXQuIEJvdGggY29tcGlsZSBhd2F5IHRvIG5vdGhpbmcgd2hlbiBDT05GSUdfQlFM IGlzCm9mZiwgc28gYSBkcml2ZXIgZG9lcyBub3QgbmVlZCBpdHMgb3duIGd1YXJkLiBUaGUg d2luZG93IGNhbiBhbHNvIGJlIHJlYWQKYW5kIHdyaXR0ZW4gcGVyIHF1ZXVlIGFzIGJ5dGVf cXVldWVfbGltaXRzL2NvYWxfdXNlY3MsIHdoZXJlIHZhbHVlcyBhYm92ZQpEUUxfQ09BTF9N QVhfVVNFQ1MgYXJlIHJlamVjdGVkIHdpdGggLUVJTlZBTC4KClNpZ25lZC1vZmYtYnk6IFNp bW9uIFNjaGlwcGVycyA8c2ltb24uc2NoaXBwZXJzQHR1LWRvcnRtdW5kLmRlPgotLS0KIC4u Li9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcXVldWVzICAgICAgICB8IDE1ICsrKysK IGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggICAgICAgICAgICAgICAgICAgICB8IDczICsr KysrKysrKysrKysrKysrLS0KIGluY2x1ZGUvbmV0L25ldGRldl9xdWV1ZXMuaCAgICAgICAg ICAgICAgICAgICB8ICA0ICstCiBuZXQvY29yZS9uZXQtc3lzZnMuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAyOSArKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0 aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9B QkkvdGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcXVldWVzIGIvRG9jdW1lbnRhdGlvbi9BQkkv dGVzdGluZy9zeXNmcy1jbGFzcy1uZXQtcXVldWVzCmluZGV4IDg0YWEyNWUwZDE0ZC4uNGEw NDEzZDM1M2E5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2Zz LWNsYXNzLW5ldC1xdWV1ZXMKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNm cy1jbGFzcy1uZXQtcXVldWVzCkBAIC05Nyw2ICs5NywyMSBAQCBEZXNjcmlwdGlvbjoKIAkJ cXVldWVkIG9uIHRoaXMgbmV0d29yayBkZXZpY2UgdHJhbnNtaXQgcXVldWUuIERlZmF1bHQg dmFsdWUgaXMKIAkJMC4KIAorV2hhdDoJCS9zeXMvY2xhc3MvbmV0LzxpZmFjZT4vcXVldWVz L3R4LTxxdWV1ZT4vYnl0ZV9xdWV1ZV9saW1pdHMvY29hbF91c2VjcworRGF0ZToJCUF1Z3Vz dCAyMDI2CitLZXJuZWxWZXJzaW9uOgk3LjQKK0NvbnRhY3Q6CW5ldGRldkB2Z2VyLmtlcm5l bC5vcmcKK0Rlc2NyaXB0aW9uOgorCQlDb21wbGV0aW9uIGNvYWxlc2Npbmcgd2luZG93IGZv ciB0aGlzIHRyYW5zbWl0IHF1ZXVlLCBpbgorCQltaWNyb3NlY29uZHMuIFdoaWxlIGl0IGlz IG5vbi16ZXJvLCBjb21wbGV0aW9ucyByZXBvcnRlZCB0byBCUUwKKwkJYXJlIGFjY3VtdWxh dGVkIGFuZCB0aGUgcXVldWUgbGltaXQgaXMgb25seSByZWNhbGN1bGF0ZWQgb25jZQorCQl0 aGUgd2luZG93IGhhcyBlbGFwc2VkIG9yIHRoZSBhY2N1bXVsYXRlZCBjb3VudCB3b3VsZCBz dGFydmUgdGhlCisJCXF1ZXVlLiBUaGlzIGlzIG1lYW50IGZvciBzb2Z0d2FyZSBpbnRlcmZh Y2VzIHdpdGhvdXQgYSBoYXJkd2FyZQorCQljb21wbGV0aW9uIGludGVycnVwdCwgd2hvc2Ug Y29tcGxldGlvbiByb3V0aW5lIHRoZXJlZm9yZSBydW5zCisJCW9uY2UgcGVyIHBhY2tldC4g V3JpdGluZyAwIGRpc2FibGVzIGNvYWxlc2NpbmcgYW5kIHJlc3RvcmVzIGEKKwkJbGltaXQg cmVjYWxjdWxhdGlvbiBvbiBldmVyeSBjb21wbGV0aW9uLiBEZWZhdWx0IHZhbHVlIGlzIDAs CisJCWV4Y2VwdCBvbiBkZXZpY2VzIHdob3NlIGRyaXZlciBzZXRzIGEgd2luZG93IG9mIGl0 cyBvd24uCisKIFdoYXQ6CQkvc3lzL2NsYXNzL25ldC88aWZhY2U+L3F1ZXVlcy90eC08cXVl dWU+L2J5dGVfcXVldWVfbGltaXRzL3N0YWxsX3RocnMKIERhdGU6CQlKYW4gMjAyNAogS2Vy bmVsVmVyc2lvbjoJNi45CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5o IGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCBkYjlkY2U3ZjBhYTYuLjM2YThk NDM2MmQzZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9p bmNsdWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC0zOTc1LDI4ICszOTc1LDQxIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBfX25ldGRldl9zZW50X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCiAgKgogICoJTXVzdCBiZSBjYWxsZWQgYXQgbW9zdCBvbmNlIHBlciBUWCBjb21wbGV0 aW9uIHJvdW5kIChhbmQgbm90IHBlcgogICoJaW5kaXZpZHVhbCBwYWNrZXQpLCBzbyB0aGF0 IEJRTCBjYW4gYWRqdXN0IGl0cyBsaW1pdHMgYXBwcm9wcmlhdGVseS4KKyAqCUEgcXVldWUg d2l0aCBEUUwgY29tcGxldGlvbiBjb2FsZXNjaW5nIGVuYWJsZWQgaXMgZXhlbXB0IGZyb20g dGhpcywKKyAqCXNlZSBuZXRpZl9zZXRfYnFsX2NvYWxlc2NlX3VzZWNzKCk6IGNvYWxlc2Np bmcgZG9lcyB0aGUgYmF0Y2hpbmcsIHNvCisgKglzdWNoIGEgcXVldWUgbWF5IHJlcG9ydCBw ZXIgcGFja2V0LgorICoKKyAqCVJldHVybnM6IHRydWUgaWYgdGhlIGNvbXBsZXRpb24gd2Fz IGFwcGxpZWQgYW5kIHRoZSBsaW1pdCByZWNhbGN1bGF0ZWQsCisgKglmYWxzZSBpZiBub3Ro aW5nIGNvbXBsZXRlZCBvciB0aGUgY29tcGxldGlvbiB3YXMgb25seSBiYXRjaGVkIGJ5Cisg Kgljb2FsZXNjaW5nLiBBIHRydWUgcmV0dXJuIGFsc28gbWVhbnMgdGhlIG1lbW9yeSBiYXJy aWVyIGJlbG93IHdhcworICoJaXNzdWVkLCB3aGljaCBuZXRkZXZfdHhxX2NvbXBsZXRlZF9t YigpIGRlcGVuZHMgb24uCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBuZXRkZXZfdHhfY29t cGxldGVkX3F1ZXVlKHN0cnVjdCBuZXRkZXZfcXVldWUgKmRldl9xdWV1ZSwKK3N0YXRpYyBp bmxpbmUgYm9vbCBuZXRkZXZfdHhfY29tcGxldGVkX3F1ZXVlKHN0cnVjdCBuZXRkZXZfcXVl dWUgKmRldl9xdWV1ZSwKIAkJCQkJICAgICB1bnNpZ25lZCBpbnQgcGt0cywgdW5zaWduZWQg aW50IGJ5dGVzKQogewogI2lmZGVmIENPTkZJR19CUUwKLQlpZiAodW5saWtlbHkoIWJ5dGVz KSkKLQkJcmV0dXJuOwotCi0JZHFsX2NvbXBsZXRlZCgmZGV2X3F1ZXVlLT5kcWwsIGJ5dGVz KTsKKwkvKiBUaGVyZSBpcyBub3RoaW5nIHRvIHdha2UgaWYgbm90aGluZyBjb21wbGV0ZWQs IG9yIGlmIHRoZSBjb21wbGV0aW9uCisJICogd2FzIG9ubHkgYmF0Y2hlZCBieSBjb2FsZXNj aW5nIGFuZCB0aGUgbGltaXQgaGFzIG5vdCBtb3ZlZC4KKwkgKi8KKwlpZiAoIWRxbF9jb21w bGV0ZWQoJmRldl9xdWV1ZS0+ZHFsLCBieXRlcykpCisJCXJldHVybiBmYWxzZTsKIAogCS8q CiAJICogV2l0aG91dCB0aGUgbWVtb3J5IGJhcnJpZXIgdGhlcmUgaXMgYSBzbWFsbCBwb3Nz aWJpbGl0eSB0aGF0CiAJICogbmV0ZGV2X3R4X3NlbnRfcXVldWUgd2lsbCBtaXNzIHRoZSB1 cGRhdGUgYW5kIGNhdXNlIHRoZSBxdWV1ZSB0bwogCSAqIGJlIHN0b3BwZWQgZm9yZXZlcgog CSAqLwotCXNtcF9tYigpOyAvKiBOT1RFOiBuZXRkZXZfdHhxX2NvbXBsZXRlZF9tYigpIGFz c3VtZXMgdGhpcyBleGlzdHMgKi8KKwlzbXBfbWIoKTsKIAogCWlmICh1bmxpa2VseShkcWxf YXZhaWwoJmRldl9xdWV1ZS0+ZHFsKSA8IDApKQotCQlyZXR1cm47CisJCXJldHVybiB0cnVl OwogCiAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChfX1FVRVVFX1NUQVRFX1NUQUNLX1hPRkYs ICZkZXZfcXVldWUtPnN0YXRlKSkKIAkJbmV0aWZfc2NoZWR1bGVfcXVldWUoZGV2X3F1ZXVl KTsKKworCXJldHVybiB0cnVlOworI2Vsc2UKKwlyZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0K IApAQCAtNDAyNCw2ICs0MDM3LDUyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBuZXRkZXZfdHhf cmVzZXRfcXVldWUoc3RydWN0IG5ldGRldl9xdWV1ZSAqcSkKICNlbmRpZgogfQogCisvKioK KyAqIG5ldGlmX3NldF9icWxfY29hbGVzY2VfdXNlY3MgLSBzZXQgdGhlIEJRTCBjb21wbGV0 aW9uIGNvYWxlc2Npbmcgd2luZG93CisgKiBAZGV2OiBuZXR3b3JrIGRldmljZQorICogQHVz ZWNzOiB3aW5kb3cgaW4gbWljcm9zZWNvbmRzLCAwIGRpc2FibGVzIGNvYWxlc2NpbmcKKyAq CisgKiBDb25maWd1cmUgRFFMIGNvbXBsZXRpb24gY29hbGVzY2luZyBvbiBhbGwgVFggcXVl dWVzIG9mIEBkZXYsIHNvIHRoYXQKKyAqIG5ldGRldl90eF9jb21wbGV0ZWRfcXVldWUoKSBi YXRjaGVzIGNvbXBsZXRpb25zIGluc3RlYWQgb2YgcmVjYWxjdWxhdGluZyB0aGUKKyAqIGxp bWl0IG9uIGV2ZXJ5IGNhbGwuIEludGVuZGVkIGZvciBzb2Z0d2FyZSBpbnRlcmZhY2VzLCB3 aGljaCBoYXZlIG5vIGhhcmR3YXJlCisgKiBjb21wbGV0aW9uIGludGVycnVwdCBhbmQgdGhl cmVmb3JlIGNvbXBsZXRlIHBlciBwYWNrZXQuCisgKgorICogU2FmZSB0byBjYWxsIG9uIGEg bGl2ZSBkZXZpY2UgdG8gY2hhbmdlIHRoZSB3aW5kb3cuIEB1c2VjcyBtdXN0IG5vdCBleGNl ZWQKKyAqIERRTF9DT0FMX01BWF9VU0VDUy4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIG5l dGlmX3NldF9icWxfY29hbGVzY2VfdXNlY3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJ CQkJCXVuc2lnbmVkIGludCB1c2VjcykKK3sKKyNpZmRlZiBDT05GSUdfQlFMCisJdW5zaWdu ZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2LT5udW1fdHhfcXVldWVzOyBpKysp CisJCWRxbF9zZXRfY29hbF91c2VjcygmbmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIGkpLT5k cWwsIHVzZWNzKTsKKyNlbmRpZgorfQorCisvKioKKyAqIG5ldGlmX2dldF9icWxfY29hbGVz Y2VfdXNlY3MgLSBnZXQgdGhlIEJRTCBjb21wbGV0aW9uIGNvYWxlc2Npbmcgd2luZG93Cisg KiBAZGV2OiBuZXR3b3JrIGRldmljZQorICoKKyAqIFRoZSB3aW5kb3cgaXMgcGVyIHF1ZXVl IGFuZCBjYW4gYWxzbyBiZSBzZXQgdGhyb3VnaAorICogYnl0ZV9xdWV1ZV9saW1pdHMvY29h bF91c2Vjcywgc28gdGhpcyByZXBvcnRzIFRYIHF1ZXVlIDAgb25seS4gTWVhbnQgZm9yCisg KiBkcml2ZXJzIHRoYXQgc2V0IHRoZSBzYW1lIHdpbmRvdyBvbiBldmVyeSBxdWV1ZSB3aXRo CisgKiBuZXRpZl9zZXRfYnFsX2NvYWxlc2NlX3VzZWNzKCkuCisgKgorICogUmV0dXJuczog dGhlIHdpbmRvdyBpbiBtaWNyb3NlY29uZHMsIDAgaWYgY29hbGVzY2luZyBpcyBkaXNhYmxl ZCBvciBCUUwgaXMKKyAqIG5vdCBidWlsdCBpbi4KKyAqLworc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQKK25ldGlmX2dldF9icWxfY29hbGVzY2VfdXNlY3MoY29uc3Qgc3RydWN0IG5l dF9kZXZpY2UgKmRldikKK3sKKyNpZmRlZiBDT05GSUdfQlFMCisJcmV0dXJuIGRxbF9nZXRf Y29hbF91c2VjcygmbmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIDApLT5kcWwpOworI2Vsc2UK KwlyZXR1cm4gMDsKKyNlbmRpZgorfQorCiAvKioKICAqIG5ldGRldl90eF9yZXNldF9zdWJx dWV1ZSAtIHJlc2V0IHRoZSBCUUwgc3RhdHMgYW5kIHN0YXRlIG9mIGEgbmV0ZGV2IHF1ZXVl CiAgKiBAZGV2OiBuZXR3b3JrIGRldmljZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0 ZGV2X3F1ZXVlcy5oIGIvaW5jbHVkZS9uZXQvbmV0ZGV2X3F1ZXVlcy5oCmluZGV4IDcwYzlm ZTllODNjYy4uYzE3ZDBhNDljNmRiIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9uZXRkZXZf cXVldWVzLmgKKysrIGIvaW5jbHVkZS9uZXQvbmV0ZGV2X3F1ZXVlcy5oCkBAIC0yNzksOSAr Mjc5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkCiBuZXRkZXZfdHhxX2NvbXBsZXRlZF9tYihz dHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUsCiAJCQl1bnNpZ25lZCBpbnQgcGt0cywg dW5zaWduZWQgaW50IGJ5dGVzKQogewotCWlmIChJU19FTkFCTEVEKENPTkZJR19CUUwpKQot CQluZXRkZXZfdHhfY29tcGxldGVkX3F1ZXVlKGRldl9xdWV1ZSwgcGt0cywgYnl0ZXMpOwot CWVsc2UgaWYgKGJ5dGVzKQorCWlmICghbmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZShkZXZf cXVldWUsIHBrdHMsIGJ5dGVzKSAmJiBieXRlcykKIAkJc21wX21iKCk7CiB9CiAKZGlmZiAt LWdpdCBhL25ldC9jb3JlL25ldC1zeXNmcy5jIGIvbmV0L2NvcmUvbmV0LXN5c2ZzLmMKaW5k ZXggMjU1NDZkZWFjZWM4Li4yODZhYmI4OGRhZDggMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL25l dC1zeXNmcy5jCisrKyBiL25ldC9jb3JlL25ldC1zeXNmcy5jCkBAIC0xNjY3LDYgKzE2Njcs MzQgQEAgQlFMX0FUVFIobGltaXQsIGxpbWl0KTsKIEJRTF9BVFRSKGxpbWl0X21heCwgbWF4 X2xpbWl0KTsKIEJRTF9BVFRSKGxpbWl0X21pbiwgbWluX2xpbWl0KTsKIAorc3RhdGljIHNz aXplX3QgYnFsX3Nob3dfY29hbF91c2VjcyhzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0ciwKKwkJCQkgICBzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxdWV1ZSwg Y2hhciAqYnVmKQoreworCXJldHVybiBzeXNmc19lbWl0KGJ1ZiwgIiV1XG4iLCBkcWxfZ2V0 X2NvYWxfdXNlY3MoJnF1ZXVlLT5kcWwpKTsKK30KKworc3RhdGljIHNzaXplX3QgYnFsX3Nl dF9jb2FsX3VzZWNzKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICph dHRyLAorCQkJCSAgc3RydWN0IG5ldGRldl9xdWV1ZSAqcXVldWUsIGNvbnN0IGNoYXIgKmJ1 ZiwKKwkJCQkgIHNpemVfdCBsZW4pCit7CisJdW5zaWduZWQgaW50IHZhbHVlOworCWludCBl cnI7CisKKwllcnIgPSBrc3RydG91aW50KGJ1ZiwgMTAsICZ2YWx1ZSk7CisJaWYgKGVyciA8 IDApCisJCXJldHVybiBlcnI7CisKKwlpZiAodmFsdWUgPiBEUUxfQ09BTF9NQVhfVVNFQ1Mp CisJCXJldHVybiAtRUlOVkFMOworCisJZHFsX3NldF9jb2FsX3VzZWNzKCZxdWV1ZS0+ZHFs LCB2YWx1ZSk7CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgc3RydWN0IG5ldGRldl9x dWV1ZV9hdHRyaWJ1dGUgYnFsX2NvYWxfdXNlY3NfYXR0cmlidXRlIF9fcm9fYWZ0ZXJfaW5p dAorCT0gX19BVFRSKGNvYWxfdXNlY3MsIDA2NDQsIGJxbF9zaG93X2NvYWxfdXNlY3MsIGJx bF9zZXRfY29hbF91c2Vjcyk7CisKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkcWxfYXR0 cnNbXSBfX3JvX2FmdGVyX2luaXQgPSB7CiAJJmJxbF9saW1pdF9hdHRyaWJ1dGUuYXR0ciwK IAkmYnFsX2xpbWl0X21heF9hdHRyaWJ1dGUuYXR0ciwKQEAgLTE2NzYsNiArMTcwNCw3IEBA IHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkcWxfYXR0cnNbXSBfX3JvX2FmdGVyX2luaXQg PSB7CiAJJmJxbF9zdGFsbF90aHJzX2F0dHJpYnV0ZS5hdHRyLAogCSZicWxfc3RhbGxfY250 X2F0dHJpYnV0ZS5hdHRyLAogCSZicWxfc3RhbGxfbWF4X2F0dHJpYnV0ZS5hdHRyLAorCSZi cWxfY29hbF91c2Vjc19hdHRyaWJ1dGUuYXR0ciwKIAlOVUxMCiB9OwogCi0tIAoyLjQzLjAK Cg== --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/x-patch; charset=UTF-8; name="0003-net-add-dev-bql-flag-to-allow-BQL-sysfs-for-IFF_NO_Q.patch" Content-Disposition: attachment; filename*0="0003-net-add-dev-bql-flag-to-allow-BQL-sysfs-for-IFF_NO_Q.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiZTk5MTNmYTFiZDM2YmVjOWJmNGYzOGRhZjMzYWI1MTkyMzY1NmFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxoYXdrQGtl cm5lbC5vcmc+CkRhdGU6IFRodSwgNiBBdWcgMjAyNiAxNjoyMjowMCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggbmV0LW5leHQgdjggMy82XSBuZXQ6IGFkZCBkZXYtPmJxbCBmbGFnIHRvIGFs bG93IEJRTCBzeXNmcyBmb3IKIElGRl9OT19RVUVVRSBkZXZpY2VzCk1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpWaXJ0dWFsIGRldmljZXMgd2l0aCBJRkZfTk9fUVVF VUUgb3IgbGx0eCBhcmUgZXhjbHVkZWQgZnJvbSBCUUwgc3lzZnMKYnkgbmV0ZGV2X3VzZXNf YnFsKCksIHNpbmNlIHRoZXkgdHJhZGl0aW9uYWxseSBsYWNrIHJlYWwgaGFyZHdhcmUKcXVl dWVzLiBIb3dldmVyLCBzb21lIHZpcnR1YWwgZGV2aWNlcyBsaWtlIHZldGggaW1wbGVtZW50 IGEgcmVhbApwdHJfcmluZyBGSUZPIHdpdGggTkFQSSBwcm9jZXNzaW5nIGFuZCBiZW5lZml0 IGZyb20gQlFMIHRvIGxpbWl0CmluLWZsaWdodCBieXRlcyBhbmQgcmVkdWNlIGxhdGVuY3ku CgpBZGQgYSBwZXItZGV2aWNlICdicWwnIGJpdGZpZWxkIGJvb2xlYW4gaW4gdGhlIHByaXZf ZmxhZ3Nfc2xvdyBzZWN0aW9uCm9mIHN0cnVjdCBuZXRfZGV2aWNlLiBXaGVuIHNldCwgaXQg b3ZlcnJpZGVzIHRoZSBJRkZfTk9fUVVFVUUvbGx0eApleGNsdXNpb24gYW5kIGV4cG9zZXMg QlFMIHN5c2ZzIGVudHJpZXMgKC9zeXMvY2xhc3MvbmV0LzxkZXY+L3F1ZXVlcy8KdHgtPG4+ L2J5dGVfcXVldWVfbGltaXRzLykuIFRoZSBmbGFnIGlzIHN0aWxsIGdhdGVkIG9uIENPTkZJ R19CUUwuCgpUaGlzIGFsbG93cyBkcml2ZXJzIHRoYXQgdXNlIEJRTCBkZXNwaXRlIGJlaW5n IElGRl9OT19RVUVVRSB0byBvcHQgaW4KdG8gc3lzZnMgdmlzaWJpbGl0eSBmb3IgbW9uaXRv cmluZyBhbmQgZGVidWdnaW5nLgoKU2lnbmVkLW9mZi1ieTogSmVzcGVyIERhbmdhYXJkIEJy b3VlciA8aGF3a0BrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IEpvbmFzIEvDtnBwZWxlciA8ai5r b2VwcGVsZXJAdHUtYmVybGluLmRlPgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTY2hpcHBlcnMg PHNpbW9uLnNjaGlwcGVyc0B0dS1kb3J0bXVuZC5kZT4KLS0tCiBEb2N1bWVudGF0aW9uL25l dHdvcmtpbmcvbmV0X2NhY2hlbGluZXMvbmV0X2RldmljZS5yc3QgfCAxICsKIGluY2x1ZGUv bGludXgvbmV0ZGV2aWNlLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKysK IG5ldC9jb3JlL25ldC1zeXNmcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDggKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRf Y2FjaGVsaW5lcy9uZXRfZGV2aWNlLnJzdCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9u ZXRfY2FjaGVsaW5lcy9uZXRfZGV2aWNlLnJzdAppbmRleCA1MTJmNmQ2ZmEzZDguLjUyNzA5 Mzc1ZWUyMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldF9jYWNo ZWxpbmVzL25ldF9kZXZpY2UucnN0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9u ZXRfY2FjaGVsaW5lcy9uZXRfZGV2aWNlLnJzdApAQCAtMTY4LDYgKzE2OCw3IEBAIHVuc2ln bmVkX2xvbmc6MSAgICAgICAgICAgICAgICAgICAgIHNlZV9hbGxfaHd0c3RhbXBfcmVxdWVz dHMKIHVuc2lnbmVkX2xvbmc6MSAgICAgICAgICAgICAgICAgICAgIGNoYW5nZV9wcm90b19k b3duCiB1bnNpZ25lZF9sb25nOjEgICAgICAgICAgICAgICAgICAgICBuZXRuc19pbW11dGFi bGUKIHVuc2lnbmVkX2xvbmc6MSAgICAgICAgICAgICAgICAgICAgIGZjb2VfbXR1Cit1bnNp Z25lZF9sb25nOjEgICAgICAgICAgICAgICAgICAgICBicWwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldGRldl91 c2VzX2JxbChuZXQtc3lzZnMuYykKIHN0cnVjdCBsaXN0X2hlYWQgICAgICAgICAgICAgICAg ICAgIG5ldF9ub3RpZmllcl9saXN0CiBzdHJ1Y3QgbWFjc2VjX29wcyogICAgICAgICAgICAg ICAgICBtYWNzZWNfb3BzCiBzdHJ1Y3QgdWRwX3R1bm5lbF9uaWNfaW5mbyogICAgICAgICB1 ZHBfdHVubmVsX25pY19pbmZvCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmlj ZS5oIGIvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCAzNmE4ZDQzNjJkM2UuLmNk ZDI1ODMyMzU3ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysg Yi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC0yMDkzLDYgKzIwOTMsNyBAQCBlbnVt IG5ldGRldl9yZWdfc3RhdGUgewogICoJQGNoYW5nZV9wcm90b19kb3duOiBkZXZpY2Ugc3Vw cG9ydHMgc2V0dGluZyBjYXJyaWVyIHZpYSBJRkxBX1BST1RPX0RPV04KICAqCUBuZXRuc19p bW11dGFibGU6IGludGVyZmFjZSBjYW4ndCBjaGFuZ2UgbmV0d29yayBuYW1lc3BhY2VzCiAg KglAZmNvZV9tdHU6CWRldmljZSBzdXBwb3J0cyBtYXhpbXVtIEZDb0UgTVRVLCAyMTU4IGJ5 dGVzCisgKglAYnFsOgkJZGV2aWNlIHVzZXMgQlFMIChEUUwgc3lzZnMpIGRlc3BpdGUgaGF2 aW5nIElGRl9OT19RVUVVRQogICoKICAqCUBuZXRfbm90aWZpZXJfbGlzdDoJTGlzdCBvZiBw ZXItbmV0IG5ldGRldiBub3RpZmllciBibG9jawogICoJCQkJdGhhdCBmb2xsb3cgdGhpcyBk ZXZpY2Ugd2hlbiBpdCBpcyBtb3ZlZApAQCAtMjUxMyw2ICsyNTE0LDcgQEAgc3RydWN0IG5l dF9kZXZpY2UgewogCXVuc2lnbmVkIGxvbmcJCWNoYW5nZV9wcm90b19kb3duOjE7CiAJdW5z aWduZWQgbG9uZwkJbmV0bnNfaW1tdXRhYmxlOjE7CiAJdW5zaWduZWQgbG9uZwkJZmNvZV9t dHU6MTsKKwl1bnNpZ25lZCBsb25nCQlicWw6MTsKIAogCXN0cnVjdCBsaXN0X2hlYWQJbmV0 X25vdGlmaWVyX2xpc3Q7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldC1zeXNmcy5jIGIv bmV0L2NvcmUvbmV0LXN5c2ZzLmMKaW5kZXggMjg2YWJiODhkYWQ4Li4xODAwNjVhZDdlZDkg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL25ldC1zeXNmcy5jCisrKyBiL25ldC9jb3JlL25ldC1z eXNmcy5jCkBAIC0xOTY4LDEwICsxOTY4LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga29i al90eXBlIG5ldGRldl9xdWV1ZV9rdHlwZSA9IHsKIAogc3RhdGljIGJvb2wgbmV0ZGV2X3Vz ZXNfYnFsKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CisJaWYgKCFJU19FTkFC TEVEKENPTkZJR19CUUwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoZGV2LT5icWwpCisJ CXJldHVybiB0cnVlOworCiAJaWYgKGRldi0+bGx0eCB8fCAoZGV2LT5wcml2X2ZsYWdzICYg SUZGX05PX1FVRVVFKSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JcmV0dXJuIElTX0VOQUJMRUQo Q09ORklHX0JRTCk7CisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBpbnQgbmV0ZGV2X3F1 ZXVlX2FkZF9rb2JqZWN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBpbmRleCkKLS0g CjIuNDMuMAoK --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/x-patch; charset=UTF-8; name="0004-veth-implement-Byte-Queue-Limits-BQL-for-latency-red.patch" Content-Disposition: attachment; filename*0="0004-veth-implement-Byte-Queue-Limits-BQL-for-latency-red.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2NGI3YTBhMmI0MWFhM2Y0ZDBhNjM5ZGM4NjgxOWExNDcwNzA2MTE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxoYXdrQGtl cm5lbC5vcmc+CkRhdGU6IFRodSwgNiBBdWcgMjAyNiAxNjoyODoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggbmV0LW5leHQgdjggNC82XSB2ZXRoOiBpbXBsZW1lbnQgQnl0ZSBRdWV1ZSBM aW1pdHMgKEJRTCkgZm9yCiBsYXRlbmN5IHJlZHVjdGlvbgpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKQ29tbWl0IGRjODJhMzMyOTdmYyAoInZldGg6IGFwcGx5IHFk aXNjIGJhY2twcmVzc3VyZSBvbiBmdWxsIHB0cl9yaW5nIHRvCnJlZHVjZSBUWCBkcm9wcyIp IGxldCBhIHFkaXNjIHNlZSB3aGVuIHZldGgncyBwdHJfcmluZyBpcyBmdWxsLCBidXQgbm90 ZWQKdGhhdCB0aGUgMjU2LWVudHJ5IHJpbmcgc3RpbGwgc2l0cyBpbiBmcm9udCBvZiB0aGUg cWRpc2MgYXMgYSBkYXJrIGJ1ZmZlcjoKdGhlIHFkaXNjIGNhbm5vdCBzaGFwZSB1bnRpbCB0 aGUgcmluZyBvdmVyZmxvd3MuIEFkZCBCUUwgc28gaXQgZ2V0cwpmZWVkYmFjayBlYXJsaWVy LiBXaXRoIGZxX2NvZGVsIHVuZGVyIFVEUCBsb2FkLCBwaW5nIFJUVCBkcm9wcyBmcm9tIH42 LjYxbXMKdG8gfjAuMzZtcyAoMTh4KS4KCkNoYXJnZSBvbmUgZml4ZWQgdW5pdCBwZXIgcGFj a2V0IGluc3RlYWQgb2Ygc2tiLT5sZW4uIHZldGggaGFzIG5vIGxpbmsKc3BlZWQgLS0gdGhl IHJpbmcgZHJhaW5zIGF0IENQVSBzcGVlZCBhbmQgaXMgcGFja2V0LWluZGV4ZWQuIFdpdGgK Ynl0ZS1iYXNlZCBjaGFyZ2luZywgc21hbGwgcGFja2V0cyBnZXQgbWFueSBtb3JlIGVudHJp ZXMgaW50byB0aGUgcmluZwpiZWZvcmUgdGhlIHF1ZXVlIHN0b3BzLCBkZWVwZW5pbmcgdGhl IGRhcmsgYnVmZmVyIGFnYWluOiBhIGNvbmN1cnJlbnQKbWluLXNpemUgZmxvb2QgZGVncmFk ZXMgcGluZyBSVFQgYnkgMy43eCB3aXRoIHNrYi0+bGVuIGFuZCBub3QgYXQgYWxsIHdpdGgK YSBmaXhlZCB1bml0LiBBcyBhIHJlc3VsdCBieXRlX3F1ZXVlX2xpbWl0cy9saW1pdCwgbGlt aXRfbWF4IGFuZCBpbmZsaWdodApyZXBvcnQgcGFja2V0cyBmb3IgdmV0aC4gTm90aGluZyBp biB0aGUgQUJJIGNvbW11bmljYXRlcyB0aGUgdW5pdCwgc28gaXQgaXMKc3RhdGVkIGhlcmUu CgpDaGFyZ2UgaW4gdmV0aF94ZHBfcngoKSB1bmRlciB0aGUgcHRyX3JpbmcgcHJvZHVjZXJf bG9jaywgb25jZSB0aGUgcmluZyBpcwprbm93biBub3QgdG8gYmUgZnVsbC4gVGhlIGNoYXJn ZSBtdXN0IHByZWNlZGUgdGhlIHByb2R1Y2UsIGJlY2F1c2UgdGhlIHBlZXIKTkFQSSBjYW4g Y29tcGxldGUgdGhlIHNrYiB0aGUgbW9tZW50IGl0IGJlY29tZXMgdmlzaWJsZS4gSG9sZGlu ZyB0aGUgbG9jawphY3Jvc3MgYm90aCBhdm9pZHMgYSBwcmUtY2hhcmdlL3VuZG8gcGF0dGVy bi4gdmV0aF94bWl0KCkgdGhlcmVmb3JlCnJlc29sdmVzIHRoZSB0eHEgdXAgZnJvbnQgYW5k IHJldXNlcyBpdCBvbiB0aGUgTkVUREVWX1RYX0JVU1kgcGF0aC4gQ2hhcmdlZApza2JzIGFy ZSB0YWdnZWQgd2l0aCBWRVRIX0JRTF9GTEFHIGluIHRoZSBwdHJfcmluZyBlbnRyeSwgYmVj YXVzZSB0aGUgcWRpc2MKY2FuIGJlIHJlcGxhY2VkIHdoaWxlIHRoZXkgYXJlIGluIGZsaWdo dCBhbmQgZWFjaCBza2IgaGFzIHRvIGNhcnJ5IHRoZQpkZWNpc2lvbiBtYWRlIGF0IGVucXVl dWUgdGltZS4KClByb2dyYW0gb3JkZXIgaXMgbm90IGVub3VnaCBhY3Jvc3MgQ1BVcy4gVGhl IHNtcF93bWIoKSBpbgpfX3B0cl9yaW5nX3Byb2R1Y2UoKSBwdWJsaXNoZXMgdGhlIGNoYXJn ZSBhaGVhZCBvZiB0aGUgZW50cnksIGJ1dApkcWxfY29tcGxldGVkKCkgcmVhZHMgbnVtX3F1 ZXVlZCwgd2hpY2ggaXMgbm90IHJlYWNoZWQgdGhyb3VnaCB0aGUgZW50cnkKYW5kIHNvIGlz IG5vdCBkZXBlbmRlbmN5LW9yZGVyZWQgYnkgdGhlIGNvbnN1bWUuIHZldGhfeGRwX3Jjdigp IHRoZXJlZm9yZQpwYWlycyBhbiBzbXBfcm1iKCkgd2l0aCBpdCBiZWZvcmUgY29tcGxldGlu Zy4KCk9ubHkgZW5hYmxlIEJRTCB3aGVuIGEgcmVhbCBxZGlzYyBpcyBhdHRhY2hlZCAoIXFk aXNjX3R4cV9oYXNfbm9fcXVldWUpLApzaW5jZSBkcWxfcXVldWVkKCkgbmVlZHMgdGhlIHNl cmlhbGl6YXRpb24gb2YgSEFSRF9UWF9MT0NLLCB3aGljaCBsbHR4CmRldmljZXMgbGlrZSB2 ZXRoIGRvIG5vdCB0YWtlLgoKdmV0aCBoYXMgbm8gY29tcGxldGlvbiBpbnRlcnJ1cHQsIHNv IHZldGhfeGRwX3JjdigpIGNvbXBsZXRlcyBldmVyeSBza2IgaXQKY29uc3VtZXMuIEFnYWlu c3QgcGxhaW4gQlFMIHRoYXQgcGF5cyBhIGZ1bGwgZHFsX2NvbXBsZXRlZCgpIHBlciBwYWNr ZXQgYW5kCmJyZWFrcyB0aGUgImF0IG1vc3Qgb25jZSBwZXIgVFggY29tcGxldGlvbiByb3Vu ZCIgY29udHJhY3QsIHNvIGVuYWJsZSBEUUwKY29hbGVzY2luZyBpbnN0ZWFkLCBkZWZhdWx0 IFZFVEhfQlFMX0NPQUxfVVNFQ1MgKDEwMCB1cykgYW5kIHR1bmFibGUgd2l0aApldGh0b29s IC1DIHR4LXVzZWNzIGZvciB0aGUgZGlyZWN0aW9uIHRoYXQgZGV2aWNlIHRyYW5zbWl0cyBp bi4gV2l0aApDT05GSUdfQlFMPW4gdGhhdCBrbm9iIHJlYWRzIGJhY2sgMCBhbmQgc2V0dGlu ZyBpdCByZXR1cm5zIC1FT1BOT1RTVVBQLgpBY2N1bXVsYXRpbmcgcGVyIE5BUEkgcG9sbCBp biB0aGUgZHJpdmVyIGlzIG5vdCBlcXVpdmFsZW50LCBiZWNhdXNlIGEgcG9sbAppcyBub3Qg dGhlIHBlcmlvZGljIGludGVydmFsIERRTCBhc2tzIGZvci4gRWFjaCBwb2xsIHRoZXJlZm9y ZSBzdGFydHMgd2l0aAphIHplcm8tY291bnQgY29tcGxldGlvbiwgc28gYSBiYXRjaCBoZWxk IGJhY2sgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMKb25lIGlzIG5vdCBsZWZ0IHdhaXRp bmcgb24gdHJhZmZpYyB0aGF0IG1heSBuZXZlciBhcnJpdmUuCgpCUUwgYWRkcyBhIHNlY29u ZCBxdWV1ZS1zdG9wIG1lY2hhbmlzbSAoU1RBQ0tfWE9GRikgbmV4dCB0byB0aGUgZXhpc3Rp bmcKcmluZy1mdWxsIG9uZSwgYW5kIGJvdGggbXVzdCBiZSBjbGVhciBmb3IgdGhlIHF1ZXVl IHRvIHRyYW5zbWl0LiBBdAp0ZWFyZG93biB2ZXRoX25hcGlfZGVsX3JhbmdlKCkgZHJhaW5z IHRoZSBsZWZ0b3ZlciByaW5nIGVudHJpZXMgYWZ0ZXIKc3luY2hyb25pemVfbmV0KCksIG9u Y2UgTkFQSSBpcyBnb25lIGFuZCB0aGUgcHJvZHVjZXIgaGFzIHN0b3BwZWQgY2hhcmdpbmcK YmVjYXVzZSBpdCBvYnNlcnZlcyBycS0+bmFwaSA9PSBOVUxMLCBhbmQgYmFsYW5jZXMgdGhl IGFjY291bnRpbmcgYnkKY29tcGxldGluZyB0aGUgb3V0c3RhbmRpbmcgY2hhcmdlcyByYXRo ZXIgdGhhbiBjYWxsaW5nCm5ldGRldl90eF9yZXNldF9xdWV1ZSgpLCB3aG9zZSBkcWxfcmVz ZXQoKSB3b3VsZCByYWNlIHdpdGggYSBjb25jdXJyZW50CnByb2R1Y2VyLiBUaGUgcGVlciB0 eHEgaXMgc3RpbGwgd29rZW4gdG8gY2xlYXIgYW55IERSVl9YT0ZGIGEgbGF0ZQp2ZXRoX3ht aXQoKSBtYXkgaGF2ZSBzZXQuCgpTaWduZWQtb2ZmLWJ5OiBKZXNwZXIgRGFuZ2FhcmQgQnJv dWVyIDxoYXdrQGtlcm5lbC5vcmc+CkNvLWRldmVsb3BlZC1ieTogSm9uYXMgS8O2cHBlbGVy IDxqLmtvZXBwZWxlckB0dS1iZXJsaW4uZGU+ClNpZ25lZC1vZmYtYnk6IEpvbmFzIEvDtnBw ZWxlciA8ai5rb2VwcGVsZXJAdHUtYmVybGluLmRlPgpDby1kZXZlbG9wZWQtYnk6IFNpbW9u IFNjaGlwcGVycyA8c2ltb24uc2NoaXBwZXJzQHR1LWRvcnRtdW5kLmRlPgpTaWduZWQtb2Zm LWJ5OiBTaW1vbiBTY2hpcHBlcnMgPHNpbW9uLnNjaGlwcGVyc0B0dS1kb3J0bXVuZC5kZT4K LS0tCiBkcml2ZXJzL25ldC92ZXRoLmMgfCAxNzAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMo KyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZldGguYyBi L2RyaXZlcnMvbmV0L3ZldGguYwppbmRleCA0MmU0ZjI0NmM5MWQuLjUxZWY4NDc0ZjQ0NyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdmV0aC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZldGgu YwpAQCAtMzQsOSArMzQsMTMgQEAKICNkZWZpbmUgRFJWX1ZFUlNJT04JIjEuMCIKIAogI2Rl ZmluZSBWRVRIX1hEUF9GTEFHCQlCSVQoMCkKKyNkZWZpbmUgVkVUSF9CUUxfRkxBRwkJQklU KDEpCiAjZGVmaW5lIFZFVEhfUklOR19TSVpFCQkyNTYKICNkZWZpbmUgVkVUSF9YRFBfSEVB RFJPT00JKFhEUF9QQUNLRVRfSEVBRFJPT00gKyBORVRfSVBfQUxJR04pCiAKKy8qIERlZmF1 bHQgRFFMIGNvbXBsZXRpb24gY29hbGVzY2luZyB3aW5kb3cgKHVzKSwgdHVuYWJsZSB3aXRo IGV0aHRvb2wgLUMgKi8KKyNkZWZpbmUgVkVUSF9CUUxfQ09BTF9VU0VDUwkxMDAKKwogI2Rl ZmluZSBWRVRIX1hEUF9UWF9CVUxLX1NJWkUJMTYKICNkZWZpbmUgVkVUSF9YRFBfQkFUQ0gJ CTE2CiAKQEAgLTI2Miw3ICsyNjYsNTEgQEAgc3RhdGljIHZvaWQgdmV0aF9nZXRfY2hhbm5l bHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIHN0YXRpYyBpbnQgdmV0aF9zZXRfY2hhbm5l bHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCSAgICAgc3RydWN0IGV0aHRvb2xfY2hh bm5lbHMgKmNoKTsKIAorc3RhdGljIGludCB2ZXRoX2dldF9jb2FsZXNjZShzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LAorCQkJICAgICBzdHJ1Y3QgZXRodG9vbF9jb2FsZXNjZSAqZWMsCisJ CQkgICAgIHN0cnVjdCBrZXJuZWxfZXRodG9vbF9jb2FsZXNjZSAqa2VybmVsX2NvYWwsCisJ CQkgICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKK3sKKwkvKiBSZWFkIGJh Y2sgZnJvbSBEUUwgcmF0aGVyIHRoYW4gYSBzaGFkb3cgY29weSwgc28gdGhhdCBhIHdpbmRv dyBzZXQKKwkgKiB0aHJvdWdoIGJ5dGVfcXVldWVfbGltaXRzL2NvYWxfdXNlY3MgaXMgcmVw b3J0ZWQgaGVyZSB0b28uCisJICovCisJZWMtPnR4X2NvYWxlc2NlX3VzZWNzID0gbmV0aWZf Z2V0X2JxbF9jb2FsZXNjZV91c2VjcyhkZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgdmV0aF9zZXRfY29hbGVzY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCSAg ICAgc3RydWN0IGV0aHRvb2xfY29hbGVzY2UgKmVjLAorCQkJICAgICBzdHJ1Y3Qga2VybmVs X2V0aHRvb2xfY29hbGVzY2UgKmtlcm5lbF9jb2FsLAorCQkJICAgICBzdHJ1Y3QgbmV0bGlu a19leHRfYWNrICpleHRhY2spCit7CisJc3RydWN0IHZldGhfcHJpdiAqcHJpdiA9IG5ldGRl dl9wcml2KGRldik7CisJc3RydWN0IG5ldF9kZXZpY2UgKnBlZXI7CisKKwlpZiAoIUlTX0VO QUJMRUQoQ09ORklHX0JRTCkpIHsKKwkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywgIkJR TCBpcyBub3QgZW5hYmxlZCBpbiB0aGlzIGtlcm5lbCIpOworCQlyZXR1cm4gLUVPUE5PVFNV UFA7CisJfQorCisJaWYgKGVjLT50eF9jb2FsZXNjZV91c2VjcyA+IERRTF9DT0FMX01BWF9V U0VDUykgeworCQlOTF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLCAidHgtdXNlY3MgdG9vIGxh cmdlIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCW5ldGlmX3NldF9icWxfY29hbGVz Y2VfdXNlY3MoZGV2LCBlYy0+dHhfY29hbGVzY2VfdXNlY3MpOworCisJLyogTWlycm9yIG9u dG8gdGhlIHBlZXIgdG8ga2VlcCB0aGUgcGFpciBzeW1tZXRyaWM6IGJvdGggZGlyZWN0aW9u cworCSAqIGNvYWxlc2NlIHdpdGggdGhlIHNhbWUgdHgtdXNlY3MuIENhbGxlZCB1bmRlciBS VE5MLgorCSAqLworCXBlZXIgPSBydG5sX2RlcmVmZXJlbmNlKHByaXYtPnBlZXIpOworCWlm IChwZWVyKQorCQluZXRpZl9zZXRfYnFsX2NvYWxlc2NlX3VzZWNzKHBlZXIsIGVjLT50eF9j b2FsZXNjZV91c2Vjcyk7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVj dCBldGh0b29sX29wcyB2ZXRoX2V0aHRvb2xfb3BzID0geworCS5zdXBwb3J0ZWRfY29hbGVz Y2VfcGFyYW1zID0gRVRIVE9PTF9DT0FMRVNDRV9UWF9VU0VDUywKIAkuZ2V0X2RydmluZm8J CT0gdmV0aF9nZXRfZHJ2aW5mbywKIAkuZ2V0X2xpbmsJCT0gZXRodG9vbF9vcF9nZXRfbGlu aywKIAkuZ2V0X3N0cmluZ3MJCT0gdmV0aF9nZXRfc3RyaW5ncywKQEAgLTI3Miw2ICszMjAs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIHZldGhfZXRodG9vbF9vcHMg PSB7CiAJLmdldF90c19pbmZvCQk9IGV0aHRvb2xfb3BfZ2V0X3RzX2luZm8sCiAJLmdldF9j aGFubmVscwkJPSB2ZXRoX2dldF9jaGFubmVscywKIAkuc2V0X2NoYW5uZWxzCQk9IHZldGhf c2V0X2NoYW5uZWxzLAorCS5nZXRfY29hbGVzY2UJCT0gdmV0aF9nZXRfY29hbGVzY2UsCisJ LnNldF9jb2FsZXNjZQkJPSB2ZXRoX3NldF9jb2FsZXNjZSwKIH07CiAKIC8qIGdlbmVyYWwg cm91dGluZXMgKi8KQEAgLTI4MSw2ICszMzEsMjEgQEAgc3RhdGljIGJvb2wgdmV0aF9pc194 ZHBfZnJhbWUodm9pZCAqcHRyKQogCXJldHVybiAodW5zaWduZWQgbG9uZylwdHIgJiBWRVRI X1hEUF9GTEFHOwogfQogCitzdGF0aWMgYm9vbCB2ZXRoX3B0cl9pc19icWwodm9pZCAqcHRy KQoreworCXJldHVybiAodW5zaWduZWQgbG9uZylwdHIgJiBWRVRIX0JRTF9GTEFHOworfQor CitzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnZldGhfcHRyX3RvX3NrYih2b2lkICpwdHIpCit7 CisJcmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBsb25nKXB0ciAmIH5WRVRIX0JRTF9GTEFH KTsKK30KKworc3RhdGljIHZvaWQgKnZldGhfc2tiX3RvX3B0cihzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBib29sIGJxbCkKK3sKKwlyZXR1cm4gYnFsID8gKHZvaWQgKikoKHVuc2lnbmVkIGxv bmcpc2tiIHwgVkVUSF9CUUxfRkxBRykgOiBza2I7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgeGRw X2ZyYW1lICp2ZXRoX3B0cl90b194ZHAodm9pZCAqcHRyKQogewogCXJldHVybiAodm9pZCAq KSgodW5zaWduZWQgbG9uZylwdHIgJiB+VkVUSF9YRFBfRkxBRyk7CkBAIC0yOTYsNyArMzYx LDIxIEBAIHN0YXRpYyB2b2lkIHZldGhfcHRyX2ZyZWUodm9pZCAqcHRyKQogCWlmICh2ZXRo X2lzX3hkcF9mcmFtZShwdHIpKQogCQl4ZHBfcmV0dXJuX2ZyYW1lKHZldGhfcHRyX3RvX3hk cChwdHIpKTsKIAllbHNlCi0JCWtmcmVlX3NrYihwdHIpOworCQlrZnJlZV9za2IodmV0aF9w dHJfdG9fc2tiKHB0cikpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IHZldGhfcHRyX3Jp bmdfZHJhaW4oc3RydWN0IHB0cl9yaW5nICpyaW5nKQoreworCXVuc2lnbmVkIGludCBuX2Jx bCA9IDA7CisJdm9pZCAqcHRyOworCisJd2hpbGUgKChwdHIgPSBwdHJfcmluZ19jb25zdW1l KHJpbmcpKSkgeworCQlpZiAodmV0aF9wdHJfaXNfYnFsKHB0cikpCisJCQluX2JxbCsrOwor CQl2ZXRoX3B0cl9mcmVlKHB0cik7CisJfQorCisJcmV0dXJuIG5fYnFsOwogfQogCiBzdGF0 aWMgdm9pZCBfX3ZldGhfeGRwX2ZsdXNoKHN0cnVjdCB2ZXRoX3JxICpycSkKQEAgLTMxMCwx OSArMzg5LDM2IEBAIHN0YXRpYyB2b2lkIF9fdmV0aF94ZHBfZmx1c2goc3RydWN0IHZldGhf cnEgKnJxKQogCX0KIH0KIAotc3RhdGljIGludCB2ZXRoX3hkcF9yeChzdHJ1Y3QgdmV0aF9y cSAqcnEsIHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMgaW50IHZldGhfeGRwX3J4KHN0 cnVjdCB2ZXRoX3JxICpycSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBkb19icWwsCisJ CSAgICAgICBzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICp0eHEpCiB7Ci0JaWYgKHVubGlrZWx5KHB0 cl9yaW5nX3Byb2R1Y2UoJnJxLT54ZHBfcmluZywgc2tiKSkpCisJc3RydWN0IHB0cl9yaW5n ICpyaW5nID0gJnJxLT54ZHBfcmluZzsKKworCXNwaW5fbG9jaygmcmluZy0+cHJvZHVjZXJf bG9jayk7CisJaWYgKHVubGlrZWx5KF9fcHRyX3JpbmdfY2hlY2tfcHJvZHVjZShyaW5nKSkp IHsKKwkJc3Bpbl91bmxvY2soJnJpbmctPnByb2R1Y2VyX2xvY2spOwogCQlyZXR1cm4gTkVU REVWX1RYX0JVU1k7IC8qIHNpZ25hbCBxZGlzYyBsYXllciAqLworCX0KKworCWlmIChkb19i cWwpCisJCW5ldGRldl90eF9zZW50X3F1ZXVlKHR4cSwgMSk7IC8qIG9uZSB1bml0IHBlciBw YWNrZXQgKi8KKworCS8qIEl0cyBzbXBfd21iKCkgb3JkZXJzIHRoZSBCUUwgY2hhcmdlIGFi b3ZlIGFoZWFkIG9mIHRoZSBlbnRyeSwgc28KKwkgKiB0aGUgcGVlciBOQVBJIGNhbm5vdCBz ZWUgdGhlIHNrYiB3aXRob3V0IGl0cyBjaGFyZ2UuIFBhaXJzIHdpdGgKKwkgKiB0aGUgc21w X3JtYigpIGluIHZldGhfeGRwX3JjdigpLgorCSAqLworCV9fcHRyX3JpbmdfcHJvZHVjZShy aW5nLCB2ZXRoX3NrYl90b19wdHIoc2tiLCBkb19icWwpKTsKKwlzcGluX3VubG9jaygmcmlu Zy0+cHJvZHVjZXJfbG9jayk7CiAKIAlyZXR1cm4gTkVUX1JYX1NVQ0NFU1M7IC8qIHNhbWUg YXMgTkVUREVWX1RYX09LICovCiB9CiAKIHN0YXRpYyBpbnQgdmV0aF9mb3J3YXJkX3NrYihz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkJICAgIHN0 cnVjdCB2ZXRoX3JxICpycSwgYm9vbCB4ZHApCisJCQkgICAgc3RydWN0IHZldGhfcnEgKnJx LCBib29sIHhkcCwgYm9vbCBkb19icWwsCisJCQkgICAgc3RydWN0IG5ldGRldl9xdWV1ZSAq dHhxKQogewogCXJldHVybiBfX2Rldl9mb3J3YXJkX3NrYihkZXYsIHNrYikgPzogeGRwID8K LQkJdmV0aF94ZHBfcngocnEsIHNrYikgOgorCQl2ZXRoX3hkcF9yeChycSwgc2tiLCBkb19i cWwsIHR4cSkgOgogCQlfX25ldGlmX3J4KHNrYik7CiB9CiAKQEAgLTM0OSwxMCArNDQ1LDEx IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCB2ZXRoX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgdmV0aF9wcml2ICpyY3ZfcHJp diwgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCB2ZXRoX3JxICpycSA9IE5V TEw7Ci0Jc3RydWN0IG5ldGRldl9xdWV1ZSAqdHhxOworCXN0cnVjdCBuZXRkZXZfcXVldWUg KnR4cSA9IE5VTEw7CiAJc3RydWN0IG5ldF9kZXZpY2UgKnJjdjsKIAlpbnQgbGVuZ3RoID0g c2tiLT5sZW47CiAJYm9vbCB1c2VfbmFwaSA9IGZhbHNlOworCWJvb2wgZG9fYnFsID0gZmFs c2U7CiAJaW50IHJldCwgcnhxOwogCiAJcmN1X3JlYWRfbG9jaygpOwpAQCAtMzc3LDcgKzQ3 NCwxMiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgdmV0aF94bWl0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAlza2JfdHhfdGltZXN0YW1wKHNrYik7 CiAKLQlyZXQgPSB2ZXRoX2ZvcndhcmRfc2tiKHJjdiwgc2tiLCBycSwgdXNlX25hcGkpOwor CWlmIChyeHEgPCBkZXYtPnJlYWxfbnVtX3R4X3F1ZXVlcykgeworCQl0eHEgPSBuZXRkZXZf Z2V0X3R4X3F1ZXVlKGRldiwgcnhxKTsKKwkJZG9fYnFsID0gdXNlX25hcGkgJiYgIXFkaXNj X3R4cV9oYXNfbm9fcXVldWUodHhxKTsKKwl9CisKKwlyZXQgPSB2ZXRoX2ZvcndhcmRfc2ti KHJjdiwgc2tiLCBycSwgdXNlX25hcGksIGRvX2JxbCwgdHhxKTsKIAlzd2l0Y2ggKHJldCkg ewogCWNhc2UgTkVUX1JYX1NVQ0NFU1M6IC8qIHNhbWUgYXMgTkVUREVWX1RYX09LICovCiAJ CWlmICghdXNlX25hcGkpCkBAIC0zODksOSArNDkxLDcgQEAgc3RhdGljIG5ldGRldl90eF90 IHZldGhfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCQkvKiBJZiBhIHFkaXNjIGlzIGF0dGFjaGVkIHRvIG91ciB2aXJ0dWFsIGRldmljZSwg cmV0dXJuaW5nCiAJCSAqIE5FVERFVl9UWF9CVVNZIGlzIGFsbG93ZWQuCiAJCSAqLwotCQl0 eHEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKGRldiwgcnhxKTsKLQotCQlpZiAocWRpc2NfdHhx X2hhc19ub19xdWV1ZSh0eHEpKSB7CisJCWlmICghdHhxIHx8IHFkaXNjX3R4cV9oYXNfbm9f cXVldWUodHhxKSkgewogCQkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJCWdvdG8gZHJv cDsKIAkJfQpAQCAtOTAxLDExICsxMDAxLDE4IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAq dmV0aF94ZHBfcmN2X3NrYihzdHJ1Y3QgdmV0aF9ycSAqcnEsCiAKIHN0YXRpYyBpbnQgdmV0 aF94ZHBfcmN2KHN0cnVjdCB2ZXRoX3JxICpycSwgaW50IGJ1ZGdldCwKIAkJCXN0cnVjdCB2 ZXRoX3hkcF90eF9icSAqYnEsCi0JCQlzdHJ1Y3QgdmV0aF9zdGF0cyAqc3RhdHMpCisJCQlz dHJ1Y3QgdmV0aF9zdGF0cyAqc3RhdHMsCisJCQlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpwZWVy X3R4cSkKIHsKIAlpbnQgaSwgZG9uZSA9IDAsIG5feGRwZiA9IDA7CiAJdm9pZCAqeGRwZltW RVRIX1hEUF9CQVRDSF07CiAKKwkvKiBGbHVzaCBjb21wbGV0aW9ucyBiYXRjaGVkIGR1cmlu ZyBhbiBlYXJsaWVyIHBvbGwgd2hvc2UgY29hbGVzY2luZworCSAqIHdpbmRvdyBoYXMgZWxh cHNlZCBpbiB0aGUgbWVhbnRpbWUuCisJICovCisJaWYgKHBlZXJfdHhxKQorCQluZXRkZXZf dHhfY29tcGxldGVkX3F1ZXVlKHBlZXJfdHhxLCAwLCAwKTsKKwogCWZvciAoaSA9IDA7IGkg PCBidWRnZXQ7IGkrKykgewogCQl2b2lkICpwdHIgPSBfX3B0cl9yaW5nX2NvbnN1bWUoJnJx LT54ZHBfcmluZyk7CiAKQEAgLTkyOSw5ICsxMDM2LDIxIEBAIHN0YXRpYyBpbnQgdmV0aF94 ZHBfcmN2KHN0cnVjdCB2ZXRoX3JxICpycSwgaW50IGJ1ZGdldCwKIAkJCX0KIAkJfSBlbHNl IHsKIAkJCS8qIG5kb19zdGFydF94bWl0ICovCi0JCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0g cHRyOworCQkJYm9vbCBicWxfY2hhcmdlZCA9IHZldGhfcHRyX2lzX2JxbChwdHIpOworCQkJ c3RydWN0IHNrX2J1ZmYgKnNrYiA9IHZldGhfcHRyX3RvX3NrYihwdHIpOwogCiAJCQlzdGF0 cy0+eGRwX2J5dGVzICs9IHNrYi0+bGVuOworCQkJaWYgKHBlZXJfdHhxICYmIGJxbF9jaGFy Z2VkKSB7CisJCQkJLyogUGFpcnMgd2l0aCB0aGUgc21wX3dtYigpIGluCisJCQkJICogX19w dHJfcmluZ19wcm9kdWNlKCkuIFRoZSBjaGFyZ2UgaXMgbm90CisJCQkJICogcmVhY2hlZCB0 aHJvdWdoIHB0ciwgc28gbm90aGluZyBlbHNlCisJCQkJICogb3JkZXJzIGRxbF9jb21wbGV0 ZWQoKSdzIHJlYWQgb2YKKwkJCQkgKiBudW1fcXVldWVkIGFnYWluc3QgdGhlIGNvbnN1bWUg YWJvdmUuCisJCQkJICovCisJCQkJc21wX3JtYigpOworCQkJCW5ldGRldl90eF9jb21wbGV0 ZWRfcXVldWUocGVlcl90eHEsIDEsIDEpOworCQkJfQorCiAJCQlza2IgPSB2ZXRoX3hkcF9y Y3Zfc2tiKHJxLCBza2IsIGJxLCBzdGF0cyk7CiAJCQlpZiAoc2tiKSB7CiAJCQkJaWYgKHNr Yl9zaGFyZWQoc2tiKSB8fCBza2JfdW5jbG9uZShza2IsIEdGUF9BVE9NSUMpKQpAQCAtOTc3 LDcgKzEwOTYsNyBAQCBzdGF0aWMgaW50IHZldGhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3Qg Km5hcGksIGludCBidWRnZXQpCiAJCSAgIG5ldGRldl9nZXRfdHhfcXVldWUocGVlcl9kZXYs IHF1ZXVlX2lkeCkgOiBOVUxMOwogCiAJeGRwX3NldF9yZXR1cm5fZnJhbWVfbm9fZGlyZWN0 KCk7Ci0JZG9uZSA9IHZldGhfeGRwX3JjdihycSwgYnVkZ2V0LCAmYnEsICZzdGF0cyk7CisJ ZG9uZSA9IHZldGhfeGRwX3JjdihycSwgYnVkZ2V0LCAmYnEsICZzdGF0cywgcGVlcl90eHEp OwogCiAJaWYgKHN0YXRzLnhkcF9yZWRpcmVjdCA+IDApCiAJCXhkcF9kb19mbHVzaCgpOwpA QCAtMTA3NSw2ICsxMTk0LDcgQEAgc3RhdGljIGludCBfX3ZldGhfbmFwaV9lbmFibGUoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIHN0YXRpYyB2b2lkIHZldGhfbmFwaV9kZWxfcmFuZ2Uo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHN0YXJ0LCBpbnQgZW5kKQogewogCXN0cnVj dCB2ZXRoX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBuZXRfZGV2 aWNlICpwZWVyOwogCWludCBpOwogCiAJZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykg ewpAQCAtMTA4NiwxMSArMTIwNiwzMSBAQCBzdGF0aWMgdm9pZCB2ZXRoX25hcGlfZGVsX3Jh bmdlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzdGFydCwgaW50IGVuZCkKIAl9CiAJ c3luY2hyb25pemVfbmV0KCk7CiAKKwlwZWVyID0gcnRubF9kZXJlZmVyZW5jZShwcml2LT5w ZWVyKTsKKwogCWZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKIAkJc3RydWN0IHZl dGhfcnEgKnJxID0gJnByaXYtPnJxW2ldOworCQlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICp0eHE7 CisJCXVuc2lnbmVkIGludCBuX2JxbDsKIAogCQlycS0+cnhfbm90aWZ5X21hc2tlZCA9IGZh bHNlOworCisJCS8qIERyYWluIGxlZnRvdmVyIHJpbmcgZnJhbWVzLCBjb3VudGluZyBCUUwt Y2hhcmdlZCBTS0JzIHRoYXQKKwkJICogd2VyZSBjaGFyZ2VkIHZpYSBuZXRkZXZfdHhfc2Vu dF9xdWV1ZSgpIGJ1dCBuZXZlciBjb25zdW1lZC4KKwkJICovCisJCW5fYnFsID0gdmV0aF9w dHJfcmluZ19kcmFpbigmcnEtPnhkcF9yaW5nKTsKIAkJcHRyX3JpbmdfY2xlYW51cCgmcnEt PnhkcF9yaW5nLCB2ZXRoX3B0cl9mcmVlKTsKKworCQlpZiAoIXBlZXIgfHwgaSA+PSBwZWVy LT5udW1fdHhfcXVldWVzKQorCQkJY29udGludWU7CisKKwkJdHhxID0gbmV0ZGV2X2dldF90 eF9xdWV1ZShwZWVyLCBpKTsKKworCQlpZiAobl9icWwpCisJCQluZXRkZXZfdHhfY29tcGxl dGVkX3F1ZXVlKHR4cSwgbl9icWwsIG5fYnFsKTsKKworCQlpZiAobmV0aWZfcnVubmluZyhw ZWVyKSkKKwkJCW5ldGlmX3R4X3dha2VfcXVldWUodHhxKTsKIAl9CiAKIAlmb3IgKGkgPSBz dGFydDsgaSA8IGVuZDsgaSsrKSB7CkBAIC0xNzQ0LDYgKzE4ODQsNyBAQCBzdGF0aWMgdm9p ZCB2ZXRoX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5wcml2X2ZsYWdz IHw9IElGRl9QSE9OWV9IRUFEUk9PTTsKIAlkZXYtPnByaXZfZmxhZ3MgfD0gSUZGX0RJU0FC TEVfTkVUUE9MTDsKIAlkZXYtPmxsdHggPSB0cnVlOworCWRldi0+YnFsID0gdHJ1ZTsKIAog CWRldi0+bmV0ZGV2X29wcyA9ICZ2ZXRoX25ldGRldl9vcHM7CiAJZGV2LT54ZHBfbWV0YWRh dGFfb3BzID0gJnZldGhfeGRwX21ldGFkYXRhX29wczsKQEAgLTE5MTksNiArMjA2MCw5IEBA IHN0YXRpYyBpbnQgdmV0aF9uZXdsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJdmV0 aF9zZXRfeGRwX2ZlYXR1cmVzKGRldik7CiAJdmV0aF9zZXRfeGRwX2ZlYXR1cmVzKHBlZXIp OwogCisJbmV0aWZfc2V0X2JxbF9jb2FsZXNjZV91c2VjcyhkZXYsIFZFVEhfQlFMX0NPQUxf VVNFQ1MpOworCW5ldGlmX3NldF9icWxfY29hbGVzY2VfdXNlY3MocGVlciwgVkVUSF9CUUxf Q09BTF9VU0VDUyk7CisKIAlyZXR1cm4gMDsKIAogZXJyX3BlZXJfcXVldWVzOgotLSAKMi40 My4wCgo= --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/x-patch; charset=UTF-8; name="0005-net-sched-add-timeout-count-to-NETDEV-WATCHDOG-messa.patch" Content-Disposition: attachment; filename*0="0005-net-sched-add-timeout-count-to-NETDEV-WATCHDOG-messa.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhYjI5ZDg3YjliMzU3ZTM0YjkzNTM3NmUxZmU4MTc4NjY3MmU3MzEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxoYXdrQGtl cm5lbC5vcmc+CkRhdGU6IFRodSwgNiBBdWcgMjAyNiAxNjoyODoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggbmV0LW5leHQgdjggNS82XSBuZXQ6IHNjaGVkOiBhZGQgdGltZW91dCBjb3Vu dCB0byBORVRERVYKIFdBVENIRE9HIG1lc3NhZ2UKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKCkFkZCB0aGUgcGVyLXF1ZXVlIHRpbWVvdXQgY291bnRlciAodHJhbnNf dGltZW91dCkgdG8gdGhlIGNvcmUgTkVUREVWCldBVENIRE9HIGxvZyBtZXNzYWdlLiAgVGhp cyBtYWtlcyBpdCBlYXN5IHRvIGRldGVybWluZSBob3cgZnJlcXVlbnRseQphIHBhcnRpY3Vs YXIgcXVldWUgaXMgc3RhbGxpbmcgZnJvbSBhIHNpbmdsZSBsb2cgbGluZSwgd2l0aG91dCBo YXZpbmcKdG8gc2VhcmNoIHRocm91Z2ggYW5kIGNvcnJlbGF0ZSBzcGFjZWQtb3V0IGxvZyBl bnRyaWVzLgoKVXNlZnVsIGZvciBwcm9kdWN0aW9uIG1vbml0b3Jpbmcgd2hlcmUgdGltZW91 dHMgYXJlIHNwYWNlZCBieSB0aGUKd2F0Y2hkb2cgaW50ZXJ2YWwsIG1ha2luZyBmcmVxdWVu Y3kgaGFyZCB0byBqdWRnZS4KClN1Z2dlc3RlZC1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFA a2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8aGF3 a0BrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IEpvbmFzIEvDtnBwZWxlciA8ai5rb2VwcGVsZXJA dHUtYmVybGluLmRlPgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBTY2hpcHBlcnMgPHNpbW9uLnNj aGlwcGVyc0B0dS1kb3J0bXVuZC5kZT4KLS0tCiBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYyB8 IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jIGIvbmV0L3NjaGVk L3NjaF9nZW5lcmljLmMKaW5kZXggZWYyYjRiZjUxNTY0Li40Y2JlZmVhYjcyNmEgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jCisrKyBiL25ldC9zY2hlZC9zY2hfZ2Vu ZXJpYy5jCkBAIC01MzMsNiArNTMzLDcgQEAgc3RhdGljIHZvaWQgZGV2X3dhdGNoZG9nKHN0 cnVjdCB0aW1lcl9saXN0ICp0KQogCQkgICAgbmV0aWZfcnVubmluZyhkZXYpICYmCiAJCSAg ICBuZXRpZl9jYXJyaWVyX29rKGRldikpIHsKIAkJCXVuc2lnbmVkIGludCB0aW1lZG91dF9t cyA9IDA7CisJCQl1bnNpZ25lZCBsb25nIHRyYW5zX3RpbWVvdXQgPSAwOwogCQkJdW5zaWdu ZWQgaW50IGk7CiAJCQl1bnNpZ25lZCBsb25nIHRyYW5zX3N0YXJ0OwogCQkJdW5zaWduZWQg bG9uZyBvbGRlc3Rfc3RhcnQgPSBqaWZmaWVzOwpAQCAtNTUzLDYgKzU1NCw3IEBAIHN0YXRp YyB2b2lkIGRldl93YXRjaGRvZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJCQlpZiAodGlt ZV9hZnRlcihqaWZmaWVzLCB0cmFuc19zdGFydCArIGRldi0+d2F0Y2hkb2dfdGltZW8pKSB7 CiAJCQkJCXRpbWVkb3V0X21zID0gamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0gdHJhbnNf c3RhcnQpOwogCQkJCQlhdG9taWNfbG9uZ19pbmMoJnR4cS0+dHJhbnNfdGltZW91dCk7CisJ CQkJCXRyYW5zX3RpbWVvdXQgPSBhdG9taWNfbG9uZ19yZWFkKCZ0eHEtPnRyYW5zX3RpbWVv dXQpOwogCQkJCQlicmVhazsKIAkJCQl9CiAJCQkJaWYgKHRpbWVfYWZ0ZXIob2xkZXN0X3N0 YXJ0LCB0cmFuc19zdGFydCkpCkBAIC01NjEsOSArNTYzLDkgQEAgc3RhdGljIHZvaWQgZGV2 X3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCiAJCQlpZiAodW5saWtlbHkodGlt ZWRvdXRfbXMpKSB7CiAJCQkJdHJhY2VfbmV0X2Rldl94bWl0X3RpbWVvdXQoZGV2LCBpKTsK LQkJCQluZXRkZXZfY3JpdChkZXYsICJORVRERVYgV0FUQ0hET0c6IENQVTogJWQ6IHRyYW5z bWl0IHF1ZXVlICV1IHRpbWVkIG91dCAldSBtc1xuIiwKKwkJCQluZXRkZXZfY3JpdChkZXYs ICJORVRERVYgV0FUQ0hET0c6IENQVTogJWQ6IHRyYW5zbWl0IHF1ZXVlICV1IHRpbWVkIG91 dCAldSBtcyAobjolbGQpXG4iLAogCQkJCQkgICAgcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSwK LQkJCQkJICAgIGksIHRpbWVkb3V0X21zKTsKKwkJCQkJICAgIGksIHRpbWVkb3V0X21zLCB0 cmFuc190aW1lb3V0KTsKIAkJCQluZXRpZl9mcmVlemVfcXVldWVzKGRldik7CiAJCQkJZGV2 LT5uZXRkZXZfb3BzLT5uZG9fdHhfdGltZW91dChkZXYsIGkpOwogCQkJCW5ldGlmX3VuZnJl ZXplX3F1ZXVlcyhkZXYpOwotLSAKMi40My4wCgo= --------------a8LV38veIpfvGoSPlD8O70wC Content-Type: text/x-patch; charset=UTF-8; name="0006-veth-add-tx_timeout-watchdog-as-BQL-safety-net.patch" Content-Disposition: attachment; filename*0="0006-veth-add-tx_timeout-watchdog-as-BQL-safety-net.patch" Content-Transfer-Encoding: base64 RnJvbSBmNzViMzA0MzYxMzg4YjA1MDQyNWQ1YjM3OTZlNTU4M2RjY2IwZDk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxoYXdrQGtl cm5lbC5vcmc+CkRhdGU6IFRodSwgNiBBdWcgMjAyNiAxNjozNDoxNCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggbmV0LW5leHQgdjggNi82XSB2ZXRoOiBhZGQgdHhfdGltZW91dCB3YXRjaGRv ZyBhcyBCUUwgc2FmZXR5CiBuZXQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKCldpdGggdGhlIGludHJvZHVjdGlvbiBvZiBCUUwgKEJ5dGUgUXVldWUgTGltaXRzKSBm b3IgdmV0aCwgdGhlcmUgYXJlCm5vdyB0d28gaW5kZXBlbmRlbnQgbWVjaGFuaXNtcyB0aGF0 IGNhbiBzdG9wIGEgdHJhbnNtaXQgcXVldWU6CgogLSBEUlZfWE9GRjogc2V0IGJ5IG5ldGlm X3R4X3N0b3BfcXVldWUoKSB3aGVuIHRoZSBwdHJfcmluZyBpcyBmdWxsCiAtIFNUQUNLX1hP RkY6IHNldCBieSBCUUwgd2hlbiB0aGUgYnl0ZS1pbi1mbGlnaHQgbGltaXQgaXMgcmVhY2hl ZAoKSWYgZWl0aGVyIG1lY2hhbmlzbSBzdGFsbHMgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcg d2FrZS9jb21wbGV0aW9uLAp0aGUgcXVldWUgc3RvcHMgcGVybWFuZW50bHkuIEVuYWJsZSB0 aGUgbmV0IGRldmljZSB3YXRjaGRvZyB0aW1lciBhbmQKaW1wbGVtZW50IG5kb190eF90aW1l b3V0IGFzIGEgZmFpbHNhZmUgcmVjb3ZlcnkuCgpUaGUgdGltZW91dCBoYW5kbGVyIHJlc2V0 cyBCUUwgc3RhdGUgKGNsZWFyaW5nIFNUQUNLX1hPRkYpIGFuZCB3YWtlcwp0aGUgcXVldWUg KGNsZWFyaW5nIERSVl9YT0ZGKSwgY292ZXJpbmcgYm90aCBzdG9wIG1lY2hhbmlzbXMuIFRo ZQp3YXRjaGRvZyBmaXJlcyBhZnRlciAxNiBzZWNvbmRzLCB3aGljaCBhY2NvbW1vZGF0ZXMg d29yc3QtY2FzZSBOQVBJCnByb2Nlc3NpbmcgKGJ1ZGdldD02NCBwYWNrZXRzIHggMjUwbXMg cGVyLXBhY2tldCBjb25zdW1lciBkZWxheSkKd2l0aG91dCBmYWxzZSBwb3NpdGl2ZXMgdW5k ZXIgbm9ybWFsIGJhY2twcmVzc3VyZS4KClNpZ25lZC1vZmYtYnk6IEplc3BlciBEYW5nYWFy ZCBCcm91ZXIgPGhhd2tAa2VybmVsLm9yZz4KVGVzdGVkLWJ5OiBKb25hcyBLw7ZwcGVsZXIg PGoua29lcHBlbGVyQHR1LWJlcmxpbi5kZT4KU2lnbmVkLW9mZi1ieTogU2ltb24gU2NoaXBw ZXJzIDxzaW1vbi5zY2hpcHBlcnNAdHUtZG9ydG11bmQuZGU+Ci0tLQogZHJpdmVycy9uZXQv dmV0aC5jIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDI1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92ZXRoLmMgYi9k cml2ZXJzL25ldC92ZXRoLmMKaW5kZXggNTFlZjg0NzRmNDQ3Li4yMzEwZDk5NGRhNTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZldGguYworKysgYi9kcml2ZXJzL25ldC92ZXRoLmMK QEAgLTQ0LDYgKzQ0LDEzIEBACiAjZGVmaW5lIFZFVEhfWERQX1RYX0JVTEtfU0laRQkxNgog I2RlZmluZSBWRVRIX1hEUF9CQVRDSAkJMTYKIAorLyogdHhfdGltZW91dCB3YXRjaGRvZyB0 aW1lb3V0LiBEUlZfWE9GRiBpcyBvbmx5IGNsZWFyZWQgYXQgdGhlIGVuZCBvZiBhIE5BUEkK KyAqIHZldGhfcG9sbCgpIChuZXRpZl90eF93YWtlX3F1ZXVlKCkpLCBzbyB0aGUgdGltZW91 dCBtdXN0IG91dGxhc3QgYSBmdWxsCisgKiB3b3JzdC1jYXNlIHBvbGw6IGEgNjQtcGFja2V0 IGJ1ZGdldCB3aXRoIGEgcGVzc2ltaXN0aWMgMjUwIG1zL3BrdCBjb25zdW1lcgorICogZGVs YXkgPT4gNjQgKiAyNTAgbXMgPSAxNiBzLgorICovCisjZGVmaW5lIFZFVEhfV0FUQ0hET0df VElNRU9VVF9NUwkoNjQgKiAyNTApCisKIHN0cnVjdCB2ZXRoX3N0YXRzIHsKIAl1NjQJcnhf ZHJvcHM7CiAJLyogeGRwICovCkBAIC0xNTIyLDYgKzE1MjksMjIgQEAgc3RhdGljIGludCB2 ZXRoX3NldF9jaGFubmVscyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWdvdG8gb3V0Owog fQogCitzdGF0aWMgdm9pZCB2ZXRoX3R4X3RpbWVvdXQoc3RydWN0IG5ldF9kZXZpY2UgKmRl diwgdW5zaWduZWQgaW50IHR4cXVldWUpCit7CisJc3RydWN0IG5ldGRldl9xdWV1ZSAqdHhx ID0gbmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIHR4cXVldWUpOworCisJbmV0ZGV2X2Vycihk ZXYsCisJCSAgICJ2ZXRoIGJhY2twcmVzc3VyZSgweCVsWCkgc3RhbGxlZChuOiVsZCkgVFhR KCV1KSByZS1lbmFibGVcbiIsCisJCSAgIHR4cS0+c3RhdGUsIGF0b21pY19sb25nX3JlYWQo JnR4cS0+dHJhbnNfdGltZW91dCksIHR4cXVldWUpOworCisJLyogQ2Fubm90IGNhbGwgbmV0 ZGV2X3R4X3Jlc2V0X3F1ZXVlKCk6IGRxbF9yZXNldCgpIHJhY2VzIHdpdGgKKwkgKiBwZWVy IE5BUEkgY2FsbGluZyBkcWxfY29tcGxldGVkKCkgY29uY3VycmVudGx5LgorCSAqIEp1c3Qg Y2xlYXIgdGhlIHN0b3AgYml0czsgdGhlIHFkaXNjIHdpbGwgcmUtc3RvcCBpZiBzdGlsbCBz dHVjay4KKwkgKi8KKwljbGVhcl9iaXQoX19RVUVVRV9TVEFURV9TVEFDS19YT0ZGLCAmdHhx LT5zdGF0ZSk7CisJbmV0aWZfdHhfd2FrZV9xdWV1ZSh0eHEpOworfQorCiBzdGF0aWMgaW50 IHZldGhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCB2ZXRoX3By aXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtMTg2MCw2ICsxODgzLDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2ZXRoX25ldGRldl9vcHMgPSB7CiAJ Lm5kb19icGYJCT0gdmV0aF94ZHAsCiAJLm5kb194ZHBfeG1pdAkJPSB2ZXRoX25kb194ZHBf eG1pdCwKIAkubmRvX2dldF9wZWVyX2Rldgk9IHZldGhfcGVlcl9kZXYsCisJLm5kb190eF90 aW1lb3V0CQk9IHZldGhfdHhfdGltZW91dCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg eGRwX21ldGFkYXRhX29wcyB2ZXRoX3hkcF9tZXRhZGF0YV9vcHMgPSB7CkBAIC0xODk5LDYg KzE5MjMsNyBAQCBzdGF0aWMgdm9pZCB2ZXRoX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiAJZGV2LT5wcml2X2Rlc3RydWN0b3IgPSB2ZXRoX2Rldl9mcmVlOwogCWRldi0+cGNw dV9zdGF0X3R5cGUgPSBORVRERVZfUENQVV9TVEFUX1RTVEFUUzsKIAlkZXYtPm1heF9tdHUg PSBFVEhfTUFYX01UVTsKKwlkZXYtPndhdGNoZG9nX3RpbWVvID0gbXNlY3NfdG9famlmZmll cyhWRVRIX1dBVENIRE9HX1RJTUVPVVRfTVMpOwogCiAJZGV2LT5od19mZWF0dXJlcyA9IFZF VEhfRkVBVFVSRVM7CiAJZGV2LT5od19lbmNfZmVhdHVyZXMgPSBWRVRIX0ZFQVRVUkVTOwot LSAKMi40My4wCgo= --------------a8LV38veIpfvGoSPlD8O70wC--