From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vitaly Kuznetsov Subject: [PATCH net-next RESEND] xen-netfront: avoid packet loss when ethernet header crosses page boundary Date: Fri, 16 Sep 2016 12:59:14 +0200 Message-ID: <1474023554-24520-1-git-send-email-vkuznets__24548.165818169$1474023631$gmane$org@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkqra-0001UW-J1 for xen-devel@lists.xenproject.org; Fri, 16 Sep 2016 10:59:22 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: netdev@vger.kernel.org Cc: Juergen Gross , Patrick Talbert , linux-kernel@vger.kernel.org, David Vrabel , xen-devel@lists.xenproject.org, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org U21hbGwgcGFja2V0IGxvc3MgaXMgcmVwb3J0ZWQgb24gY29tcGxleCBtdWx0aSBob3N0IG5ldHdv cmsgY29uZmlndXJhdGlvbnMKaW5jbHVkaW5nIHR1bm5lbHMsIE5BVCwgLi4uIE15IGludmVzdGln YXRpb24gbGVkIG1lIHRvIHRoZSBmb2xsb3dpbmcgY2hlY2sKaW4gbmV0YmFjayB3aGljaCBkcm9w cyBwYWNrZXRzOgoKICAgICAgICBpZiAodW5saWtlbHkodHhyZXEuc2l6ZSA8IEVUSF9ITEVOKSkg ewogICAgICAgICAgICAgICAgbmV0ZGV2X2VycihxdWV1ZS0+dmlmLT5kZXYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICJCYWQgcGFja2V0IHNpemU6ICVkXG4iLCB0eHJlcS5zaXplKTsKICAg ICAgICAgICAgICAgIHhlbnZpZl90eF9lcnIocXVldWUsICZ0eHJlcSwgZXh0cmFfY291bnQsIGlk eCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CgpCdXQgdGhpcyBjaGVjayBpdHNl bGYgaXMgbGVnaXRpbWF0ZS4gU0tCcyBjb25zaXN0IG9mIGEgbGluZWFyIHBhcnQgKHdoaWNoCmhh cyB0byBoYXZlIHRoZSBldGhlcm5ldCBoZWFkZXIpIGFuZCAob3B0aW9uYWxseSkgYSBudW1iZXIg b2YgZnJhZ3MuCk5ldGZyb250IHRyYW5zbWl0cyB0aGUgaGVhZCBvZiB0aGUgbGluZWFyIHBhcnQg dXAgdG8gdGhlIHBhZ2UgYm91bmRhcnkKYXMgdGhlIGZpcnN0IHJlcXVlc3QgYW5kIGFsbCB0aGUg cmVzdCBiZWNvbWVzIGZyYWdzIHNvIHdoZW4gd2UncmUKcmVjb25zdHJ1Y3RpbmcgdGhlIFNLQiBp biBuZXRiYWNrIHdlIGNhbid0IGRpc3Rpbmd1aXNoIGJldHdlZW4gb3JpZ2luYWwKZnJhZ3MgYW5k IHRoZSAndGFpbCcgb2YgdGhlIGxpbmVhciBwYXJ0LiBUaGUgZmlyc3QgU0tCIG5lZWRzIHRvIGJl IGF0CmxlYXN0IEVUSF9ITEVOIHNpemUuIFNvIGluIGNhc2Ugd2UgaGF2ZSBhbiBTS0Igd2l0aCBp dHMgbGluZWFyIHBhcnQKc3RhcnRpbmcgdG9vIGNsb3NlIHRvIHRoZSBwYWdlIGJvdW5kYXJ5IHRo ZSBwYWNrZXQgaXMgbG9zdC4KCkkgc2VlIHR3byB3YXlzIHRvIGZpeCB0aGUgaXNzdWU6Ci0gQ2hh bmdlIHRoZSAnd2lyZScgcHJvdG9jb2wgYmV0d2VlbiBuZXRmcm9udCBhbmQgbmV0YmFjayB0byBz dGFydCBrZWVwaW5nCiAgdGhlIG9yaWdpbmFsIFNLQiBzdHJ1Y3R1cmUuIFdlJ2xsIGhhdmUgdG8g YWRkIGEgZmxhZyBpbmRpY2F0aW5nIHRoZSBmYWN0CiAgdGhhdCB0aGUgcGFydGljdWxhciByZXF1 ZXN0IGlzIGEgcGFydCBvZiB0aGUgb3JpZ2luYWwgbGluZWFyIHBhcnQgYW5kIG5vdAogIGEgZnJh Zy4gV2UnbGwgbmVlZCB0byBrbm93IHRoZSBsZW5ndGggb2YgdGhlIGxpbmVhciBwYXJ0IHRvIHBy ZS1hbGxvY2F0ZQogIG1lbW9yeS4KLSBBdm9pZCB0cmFuc21pdHRpbmcgU0tCcyB3aXRoIGxpbmVh ciBwYXJ0cyBzdGFydGluZyB0b28gY2xvc2UgdG8gdGhlIHBhZ2UKICBib3VuZGFyeS4gVGhhdCBz ZWVtcyBwcmVmZXJhYmxlIHNob3J0LXRlcm0gYW5kIHNob3VsZG4ndCBicmluZwogIHNpZ25pZmlj YW50IHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGFzIHN1Y2ggcGFja2V0cyBhcmUgcmFyZS4gVGhh dCdzIHdoYXQKICB0aGlzIHBhdGNoIGlzIHRyeWluZyB0byBhY2hpZXZlIHdpdGggc2tiX2NvcHko KS4KClNpZ25lZC1vZmYtYnk6IFZpdGFseSBLdXpuZXRzb3YgPHZrdXpuZXRzQHJlZGhhdC5jb20+ CkFja2VkLWJ5OiBEYXZpZCBWcmFiZWwgPGRhdmlkLnZyYWJlbEBjaXRyaXguY29tPgotLS0KLSBU aGlzIGlzIGp1c3QgYSBSRVNFTkQgd2l0aCBEYXZpZCdzIEFDSyBhZGRlZC4KLS0tCiBkcml2ZXJz L25ldC94ZW4tbmV0ZnJvbnQuYyB8IDE0ICsrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5j IGIvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMKaW5kZXggOTZjY2Q0ZS4uMjhjNGE2NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMKKysrIGIvZHJpdmVycy9uZXQveGVu LW5ldGZyb250LmMKQEAgLTU2NSw2ICs1NjUsNyBAQCBzdGF0aWMgaW50IHhlbm5ldF9zdGFydF94 bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJc3RydWN0 IG5ldGZyb250X3F1ZXVlICpxdWV1ZSA9IE5VTEw7CiAJdW5zaWduZWQgaW50IG51bV9xdWV1ZXMg PSBkZXYtPnJlYWxfbnVtX3R4X3F1ZXVlczsKIAl1MTYgcXVldWVfaW5kZXg7CisJc3RydWN0IHNr X2J1ZmYgKm5za2I7CiAKIAkvKiBEcm9wIHRoZSBwYWNrZXQgaWYgbm8gcXVldWVzIGFyZSBzZXQg dXAgKi8KIAlpZiAobnVtX3F1ZXVlcyA8IDEpCkBAIC01OTUsNiArNTk2LDE5IEBAIHN0YXRpYyBp bnQgeGVubmV0X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIAlvZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShza2ItPmRhdGEpOwogCWxlbiA9IHNr Yl9oZWFkbGVuKHNrYik7CiAKKwkvKiBUaGUgZmlyc3QgcmVxIHNob3VsZCBiZSBhdCBsZWFzdCBF VEhfSExFTiBzaXplIG9yIHRoZSBwYWNrZXQgd2lsbCBiZQorCSAqIGRyb3BwZWQgYnkgbmV0YmFj ay4KKwkgKi8KKwlpZiAodW5saWtlbHkoUEFHRV9TSVpFIC0gb2Zmc2V0IDwgRVRIX0hMRU4pKSB7 CisJCW5za2IgPSBza2JfY29weShza2IsIEdGUF9BVE9NSUMpOworCQlpZiAoIW5za2IpCisJCQln b3RvIGRyb3A7CisJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJCXNrYiA9IG5za2I7CisJCXBh Z2UgPSB2aXJ0X3RvX3BhZ2Uoc2tiLT5kYXRhKTsKKwkJb2Zmc2V0ID0gb2Zmc2V0X2luX3BhZ2Uo c2tiLT5kYXRhKTsKKwl9CisKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcXVldWUtPnR4X2xvY2ssIGZs YWdzKTsKIAogCWlmICh1bmxpa2VseSghbmV0aWZfY2Fycmllcl9vayhkZXYpIHx8Ci0tIAoyLjcu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=