From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH] bgmac: pass received packet to the netif instead of copying it Date: Wed, 30 Oct 2013 08:00:00 +0100 Message-ID: <1383116400-29905-1-git-send-email-zajec5@gmail.com> Reply-To: OpenWrt Development List Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: openwrt-devel@lists.openwrt.org To: netdev@vger.kernel.org, "David S. Miller" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" List-Id: netdev.vger.kernel.org Q29weWluZyB3aG9sZSBwYWNrZXRzIHdpdGggc2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YV9vZmZz ZXQgaXMgYSBwcmV0dHkKYmFkIGlkZWEuIENQVSB3YXMgc3BlbmRpbmcgdGltZSBpbiBfX2NvcHlf dXNlcl9jb21tb24gYW5kIG5ldHdvcmsKcGVyZm9ybWFuY2Ugd2FzIGxvd2VyLiBXaXRoIHRoZSBu ZXcgc29sdXRpb24gaXBlcmYtbWVhc3VyZWQgc3BlZWQKaW5jcmVhc2VkIGZyb20gMTE2TWIvcyB0 byAxMzRNYi9zLgoKU2lnbmVkLW9mZi1ieTogUmFmYcWCIE1pxYJlY2tpIDx6YWplYzVAZ21haWwu Y29tPgotLS0KQ2hhbmdlcyBzaW5jZSBbUkZDIFRSWSMyXToKMSkgRml4ZWQgYXJndW1lbnRzIGFs aWdubWVudAoyKSBEcm9wcGVkIGNvZGUgZml4aW5nIG9sZCBzbG90IGluIGNhc2Ugb2YgYmdtYWNf ZG1hX3J4X3NrYl9mb3Jfc2xvdApmYWlsdXJlLiBUaGFua3MgdG8gTmF0aGFuIHBhdGNoIGJnbWFj X2RtYV9yeF9za2JfZm9yX3Nsb3QgZG9lc24ndApjaGFuZ2UgYW55dGhpbmcgaW4gc2xvdCBpbiBj YXNlIGl0IGZhaWxlZCBzb21ld2hlcmUuCi0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYmdtYWMuYyB8ICAgNjYgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2JnbWFjLmMKaW5kZXggOWEzZmM4OS4uZWViNjUxZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmdtYWMuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9iZ21hYy5jCkBAIC0zMTUsNyArMzE1LDYgQEAgc3RhdGljIGlu dCBiZ21hY19kbWFfcnhfcmVhZChzdHJ1Y3QgYmdtYWMgKmJnbWFjLCBzdHJ1Y3QgYmdtYWNfZG1h X3JpbmcgKnJpbmcsCiAJCXN0cnVjdCBkZXZpY2UgKmRtYV9kZXYgPSBiZ21hYy0+Y29yZS0+ZG1h X2RldjsKIAkJc3RydWN0IGJnbWFjX3Nsb3RfaW5mbyAqc2xvdCA9ICZyaW5nLT5zbG90c1tyaW5n LT5zdGFydF07CiAJCXN0cnVjdCBza19idWZmICpza2IgPSBzbG90LT5za2I7Ci0JCXN0cnVjdCBz a19idWZmICpuZXdfc2tiOwogCQlzdHJ1Y3QgYmdtYWNfcnhfaGVhZGVyICpyeDsKIAkJdTE2IGxl biwgZmxhZ3M7CiAKQEAgLTMyOCwzOCArMzI3LDUxIEBAIHN0YXRpYyBpbnQgYmdtYWNfZG1hX3J4 X3JlYWQoc3RydWN0IGJnbWFjICpiZ21hYywgc3RydWN0IGJnbWFjX2RtYV9yaW5nICpyaW5nLAog CQlsZW4gPSBsZTE2X3RvX2NwdShyeC0+bGVuKTsKIAkJZmxhZ3MgPSBsZTE2X3RvX2NwdShyeC0+ ZmxhZ3MpOwogCi0JCS8qIENoZWNrIGZvciBwb2lzb24gYW5kIGRyb3Agb3IgcGFzcyB0aGUgcGFj a2V0ICovCi0JCWlmIChsZW4gPT0gMHhkZWFkICYmIGZsYWdzID09IDB4YmVlZikgewotCQkJYmdt YWNfZXJyKGJnbWFjLCAiRm91bmQgcG9pc29uZWQgcGFja2V0IGF0IHNsb3QgJWQsIERNQSBpc3N1 ZSFcbiIsCi0JCQkJICByaW5nLT5zdGFydCk7Ci0JCX0gZWxzZSB7CisJCWRvIHsKKwkJCWRtYV9h ZGRyX3Qgb2xkX2RtYV9hZGRyID0gc2xvdC0+ZG1hX2FkZHI7CisJCQlpbnQgZXJyOworCisJCQkv KiBDaGVjayBmb3IgcG9pc29uIGFuZCBkcm9wIG9yIHBhc3MgdGhlIHBhY2tldCAqLworCQkJaWYg KGxlbiA9PSAweGRlYWQgJiYgZmxhZ3MgPT0gMHhiZWVmKSB7CisJCQkJYmdtYWNfZXJyKGJnbWFj LCAiRm91bmQgcG9pc29uZWQgcGFja2V0IGF0IHNsb3QgJWQsIERNQSBpc3N1ZSFcbiIsCisJCQkJ CSAgcmluZy0+c3RhcnQpOworCQkJCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGRtYV9kZXYs CisJCQkJCQkJICAgc2xvdC0+ZG1hX2FkZHIsCisJCQkJCQkJICAgQkdNQUNfUlhfQlVGX1NJWkUs CisJCQkJCQkJICAgRE1BX0ZST01fREVWSUNFKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQkJLyog T21pdCBDUkMuICovCiAJCQlsZW4gLT0gRVRIX0ZDU19MRU47CiAKLQkJCW5ld19za2IgPSBuZXRk ZXZfYWxsb2Nfc2tiX2lwX2FsaWduKGJnbWFjLT5uZXRfZGV2LCBsZW4pOwotCQkJaWYgKG5ld19z a2IpIHsKLQkJCQlza2JfcHV0KG5ld19za2IsIGxlbik7Ci0JCQkJc2tiX2NvcHlfZnJvbV9saW5l YXJfZGF0YV9vZmZzZXQoc2tiLCBCR01BQ19SWF9GUkFNRV9PRkZTRVQsCi0JCQkJCQkJCSBuZXdf c2tiLT5kYXRhLAotCQkJCQkJCQkgbGVuKTsKLQkJCQlza2JfY2hlY2tzdW1fbm9uZV9hc3NlcnQo c2tiKTsKLQkJCQluZXdfc2tiLT5wcm90b2NvbCA9Ci0JCQkJCWV0aF90eXBlX3RyYW5zKG5ld19z a2IsIGJnbWFjLT5uZXRfZGV2KTsKLQkJCQluZXRpZl9yZWNlaXZlX3NrYihuZXdfc2tiKTsKLQkJ CQloYW5kbGVkKys7Ci0JCQl9IGVsc2UgewotCQkJCWJnbWFjLT5uZXRfZGV2LT5zdGF0cy5yeF9k cm9wcGVkKys7Ci0JCQkJYmdtYWNfZXJyKGJnbWFjLCAiQWxsb2NhdGlvbiBvZiBza2IgZm9yIGNv cHlpbmcgcGFja2V0IGZhaWxlZCFcbiIpOworCQkJLyogUHJlcGFyZSBuZXcgc2tiIGFzIHJlcGxh Y2VtZW50ICovCisJCQllcnIgPSBiZ21hY19kbWFfcnhfc2tiX2Zvcl9zbG90KGJnbWFjLCBzbG90 KTsKKwkJCWlmIChlcnIpIHsKKwkJCQkvKiBQb2lzb24gdGhlIG9sZCBza2IgKi8KKwkJCQlyeC0+ bGVuID0gY3B1X3RvX2xlMTYoMHhkZWFkKTsKKwkJCQlyeC0+ZmxhZ3MgPSBjcHVfdG9fbGUxNigw eGJlZWYpOworCisJCQkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZG1hX2RldiwKKwkJCQkJ CQkgICBzbG90LT5kbWFfYWRkciwKKwkJCQkJCQkgICBCR01BQ19SWF9CVUZfU0laRSwKKwkJCQkJ CQkgICBETUFfRlJPTV9ERVZJQ0UpOworCQkJCWJyZWFrOwogCQkJfQorCQkJYmdtYWNfZG1hX3J4 X3NldHVwX2Rlc2MoYmdtYWMsIHJpbmcsIHJpbmctPnN0YXJ0KTsKIAotCQkJLyogUG9pc29uIHRo ZSBvbGQgc2tiICovCi0JCQlyeC0+bGVuID0gY3B1X3RvX2xlMTYoMHhkZWFkKTsKLQkJCXJ4LT5m bGFncyA9IGNwdV90b19sZTE2KDB4YmVlZik7Ci0JCX0KKwkJCS8qIFVubWFwIG9sZCBza2IsIHdl J2xsIHBhc3MgaXQgdG8gdGhlIG5ldGZpZiAqLworCQkJZG1hX3VubWFwX3NpbmdsZShkbWFfZGV2 LCBvbGRfZG1hX2FkZHIsCisJCQkJCSBCR01BQ19SWF9CVUZfU0laRSwgRE1BX0ZST01fREVWSUNF KTsKKworCQkJc2tiX3B1dChza2IsIEJHTUFDX1JYX0ZSQU1FX09GRlNFVCArIGxlbik7CisJCQlz a2JfcHVsbChza2IsIEJHTUFDX1JYX0ZSQU1FX09GRlNFVCk7CiAKLQkJLyogTWFrZSBpdCBiYWNr IGFjY2Vzc2libGUgdG8gdGhlIGhhcmR3YXJlICovCi0JCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2 aWNlKGRtYV9kZXYsIHNsb3QtPmRtYV9hZGRyLAotCQkJCQkgICBCR01BQ19SWF9CVUZfU0laRSwg RE1BX0ZST01fREVWSUNFKTsKKwkJCXNrYl9jaGVja3N1bV9ub25lX2Fzc2VydChza2IpOworCQkJ c2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgYmdtYWMtPm5ldF9kZXYpOworCQkJ bmV0aWZfcmVjZWl2ZV9za2Ioc2tiKTsKKwkJCWhhbmRsZWQrKzsKKwkJfSB3aGlsZSAoMCk7CiAK IAkJaWYgKCsrcmluZy0+c3RhcnQgPj0gQkdNQUNfUlhfUklOR19TTE9UUykKIAkJCXJpbmctPnN0 YXJ0ID0gMDsKLS0gCjEuNy4xMC40Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCm9wZW53cnQtZGV2ZWwgbWFpbGluZyBsaXN0Cm9wZW53cnQtZGV2ZWxAbGlz dHMub3BlbndydC5vcmcKaHR0cHM6Ly9saXN0cy5vcGVud3J0Lm9yZy9jZ2ktYmluL21haWxtYW4v bGlzdGluZm8vb3BlbndydC1kZXZlbAo=