From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Stringer Subject: [PATCH net-next v12 1/5] openvswitch: Refactor ovs_nla_fill_match(). Date: Thu, 15 Jan 2015 13:48:23 -0800 Message-ID: <1421358507-5992-2-git-send-email-joestringer@nicira.com> References: <1421358507-5992-1-git-send-email-joestringer@nicira.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Return-path: In-Reply-To: <1421358507-5992-1-git-send-email-joestringer-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-yBygre7rU0TnMu66kgdUjQ@public.gmane.org Sender: "dev" List-Id: netdev.vger.kernel.org UmVmYWN0b3IgdGhlIG92c19ubGFfZmlsbF9tYXRjaCgpIGZ1bmN0aW9uIGludG8gc2VwYXJhdGUg bmV0bGluawpzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucyBvdnNfbmxhX3B1dF97dW5tYXNrZWRfa2V5 LG1hc2t9KCkuIE1vZGlmeQpvdnNfbmxhX3B1dF9mbG93KCkgdG8gaGFuZGxlIGF0dHJpYnV0ZSBu ZXN0aW5nIGFuZCBleHBvc2UgdGhlICdpc19tYXNrJwpwYXJhbWV0ZXIgLSBhbGwgY2FsbGVycyBu ZWVkIHRvIG5lc3QgdGhlIGZsb3csIGFuZCBjYWxsZXJzIGhhdmUgYmV0dGVyCmtub3dsZWRnZSBh Ym91dCB3aGV0aGVyIGl0IGlzIHNlcmlhbGl6aW5nIGEgbWFzayBvciBub3QuCgpTaWduZWQtb2Zm LWJ5OiBKb2UgU3RyaW5nZXIgPGpvZXN0cmluZ2VyQG5pY2lyYS5jb20+Ci0tLQogbmV0L29wZW52 c3dpdGNoL2RhdGFwYXRoLmMgICAgIHwgICA0MSArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiBuZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMgfCAgIDM4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIG5ldC9vcGVudnN3aXRjaC9mbG93X25l dGxpbmsuaCB8ICAgIDcgKysrKystLQogMyBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCsp LCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGgu YyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmluZGV4IDhiZGEzY2MuLjNkZWQzNDkgMTAw NjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCisrKyBiL25ldC9vcGVudnN3aXRj aC9kYXRhcGF0aC5jCkBAIC00NjEsMTAgKzQ2MSw4IEBAIHN0YXRpYyBpbnQgcXVldWVfdXNlcnNw YWNlX3BhY2tldChzdHJ1Y3QgZGF0YXBhdGggKmRwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJ ICAgICAwLCB1cGNhbGxfaW5mby0+Y21kKTsKIAl1cGNhbGwtPmRwX2lmaW5kZXggPSBkcF9pZmlu ZGV4OwogCi0JbmxhID0gbmxhX25lc3Rfc3RhcnQodXNlcl9za2IsIE9WU19QQUNLRVRfQVRUUl9L RVkpOwotCWVyciA9IG92c19ubGFfcHV0X2Zsb3coa2V5LCBrZXksIHVzZXJfc2tiKTsKKwllcnIg PSBvdnNfbmxhX3B1dF9rZXkoa2V5LCBrZXksIE9WU19QQUNLRVRfQVRUUl9LRVksIGZhbHNlLCB1 c2VyX3NrYik7CiAJQlVHX09OKGVycik7Ci0JbmxhX25lc3RfZW5kKHVzZXJfc2tiLCBubGEpOwog CiAJaWYgKHVwY2FsbF9pbmZvLT51c2VyZGF0YSkKIAkJX19ubGFfcHV0KHVzZXJfc2tiLCBPVlNf UEFDS0VUX0FUVFJfVVNFUkRBVEEsCkBAIC02NzYsMzcgKzY3NCw2IEBAIHN0YXRpYyBzaXplX3Qg b3ZzX2Zsb3dfY21kX21zZ19zaXplKGNvbnN0IHN0cnVjdCBzd19mbG93X2FjdGlvbnMgKmFjdHMp CiB9CiAKIC8qIENhbGxlZCB3aXRoIG92c19tdXRleCBvciBSQ1UgcmVhZCBsb2NrLiAqLwotc3Rh dGljIGludCBvdnNfZmxvd19jbWRfZmlsbF9tYXRjaChjb25zdCBzdHJ1Y3Qgc3dfZmxvdyAqZmxv dywKLQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXN0cnVjdCBubGF0dHIgKm5sYTsK LQlpbnQgZXJyOwotCi0JLyogRmlsbCBmbG93IGtleS4gKi8KLQlubGEgPSBubGFfbmVzdF9zdGFy dChza2IsIE9WU19GTE9XX0FUVFJfS0VZKTsKLQlpZiAoIW5sYSkKLQkJcmV0dXJuIC1FTVNHU0la RTsKLQotCWVyciA9IG92c19ubGFfcHV0X2Zsb3coJmZsb3ctPnVubWFza2VkX2tleSwgJmZsb3ct PnVubWFza2VkX2tleSwgc2tiKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCi0JbmxhX25l c3RfZW5kKHNrYiwgbmxhKTsKLQotCS8qIEZpbGwgZmxvdyBtYXNrLiAqLwotCW5sYSA9IG5sYV9u ZXN0X3N0YXJ0KHNrYiwgT1ZTX0ZMT1dfQVRUUl9NQVNLKTsKLQlpZiAoIW5sYSkKLQkJcmV0dXJu IC1FTVNHU0laRTsKLQotCWVyciA9IG92c19ubGFfcHV0X2Zsb3coJmZsb3ctPmtleSwgJmZsb3ct Pm1hc2stPmtleSwgc2tiKTsKLQlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOwotCi0JbmxhX25lc3Rf ZW5kKHNrYiwgbmxhKTsKLQlyZXR1cm4gMDsKLX0KLQotLyogQ2FsbGVkIHdpdGggb3ZzX211dGV4 IG9yIFJDVSByZWFkIGxvY2suICovCiBzdGF0aWMgaW50IG92c19mbG93X2NtZF9maWxsX3N0YXRz KGNvbnN0IHN0cnVjdCBzd19mbG93ICpmbG93LAogCQkJCSAgIHN0cnVjdCBza19idWZmICpza2Ip CiB7CkBAIC03ODcsNyArNzU0LDExIEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX2ZpbGxfaW5m byhjb25zdCBzdHJ1Y3Qgc3dfZmxvdyAqZmxvdywgaW50IGRwX2lmaW5kZXgsCiAKIAlvdnNfaGVh ZGVyLT5kcF9pZmluZGV4ID0gZHBfaWZpbmRleDsKIAotCWVyciA9IG92c19mbG93X2NtZF9maWxs X21hdGNoKGZsb3csIHNrYik7CisJZXJyID0gb3ZzX25sYV9wdXRfdW5tYXNrZWRfa2V5KGZsb3cs IHNrYik7CisJaWYgKGVycikKKwkJZ290byBlcnJvcjsKKworCWVyciA9IG92c19ubGFfcHV0X21h c2soZmxvdywgc2tiKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycm9yOwogCmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRs aW5rLmMKaW5kZXggZDIxMGQxYi4uMzk4ZjExMCAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNo L2Zsb3dfbmV0bGluay5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9mbG93X25ldGxpbmsuYwpAQCAt MTIxNiwxMiArMTIxNiwxMiBAQCBpbnQgb3ZzX25sYV9nZXRfZmxvd19tZXRhZGF0YShjb25zdCBz dHJ1Y3QgbmxhdHRyICphdHRyLAogCXJldHVybiBtZXRhZGF0YV9mcm9tX25sYXR0cnMoJm1hdGNo LCAmYXR0cnMsIGEsIGZhbHNlLCBsb2cpOwogfQogCi1pbnQgb3ZzX25sYV9wdXRfZmxvdyhjb25z dCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKnN3a2V5LAotCQkgICAgIGNvbnN0IHN0cnVjdCBzd19mbG93 X2tleSAqb3V0cHV0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIGludCBfX292c19ubGFf cHV0X2tleShjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKnN3a2V5LAorCQkJICAgICBjb25zdCBz dHJ1Y3Qgc3dfZmxvd19rZXkgKm91dHB1dCwgYm9vbCBpc19tYXNrLAorCQkJICAgICBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogewogCXN0cnVjdCBvdnNfa2V5X2V0aGVybmV0ICpldGhfa2V5OwogCXN0 cnVjdCBubGF0dHIgKm5sYSwgKmVuY2FwOwotCWJvb2wgaXNfbWFzayA9IChzd2tleSAhPSBvdXRw dXQpOwogCiAJaWYgKG5sYV9wdXRfdTMyKHNrYiwgT1ZTX0tFWV9BVFRSX1JFQ0lSQ19JRCwgb3V0 cHV0LT5yZWNpcmNfaWQpKQogCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKQEAgLTE0MzEsNiArMTQz MSwzOCBAQCBubGFfcHV0X2ZhaWx1cmU6CiAJcmV0dXJuIC1FTVNHU0laRTsKIH0KIAoraW50IG92 c19ubGFfcHV0X2tleShjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKnN3a2V5LAorCQkgICAgIGNv bnN0IHN0cnVjdCBzd19mbG93X2tleSAqb3V0cHV0LCBpbnQgYXR0ciwgYm9vbCBpc19tYXNrLAor CQkgICAgIHN0cnVjdCBza19idWZmICpza2IpCit7CisJaW50IGVycjsKKwlzdHJ1Y3QgbmxhdHRy ICpubGE7CisKKwlubGEgPSBubGFfbmVzdF9zdGFydChza2IsIGF0dHIpOworCWlmICghbmxhKQor CQlyZXR1cm4gLUVNU0dTSVpFOworCWVyciA9IF9fb3ZzX25sYV9wdXRfa2V5KHN3a2V5LCBvdXRw dXQsIGlzX21hc2ssIHNrYik7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwlubGFfbmVzdF9l bmQoc2tiLCBubGEpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIENhbGxlZCB3aXRoIG92c19tdXRl eCBvciBSQ1UgcmVhZCBsb2NrLiAqLworaW50IG92c19ubGFfcHV0X3VubWFza2VkX2tleShjb25z dCBzdHJ1Y3Qgc3dfZmxvdyAqZmxvdywgc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKwlyZXR1cm4g b3ZzX25sYV9wdXRfa2V5KCZmbG93LT51bm1hc2tlZF9rZXksICZmbG93LT51bm1hc2tlZF9rZXks CisJCQkJT1ZTX0ZMT1dfQVRUUl9LRVksIGZhbHNlLCBza2IpOworfQorCisvKiBDYWxsZWQgd2l0 aCBvdnNfbXV0ZXggb3IgUkNVIHJlYWQgbG9jay4gKi8KK2ludCBvdnNfbmxhX3B1dF9tYXNrKGNv bnN0IHN0cnVjdCBzd19mbG93ICpmbG93LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXJldHVy biBvdnNfbmxhX3B1dF9rZXkoJmZsb3ctPmtleSwgJmZsb3ctPm1hc2stPmtleSwKKwkJCQlPVlNf RkxPV19BVFRSX01BU0ssIHRydWUsIHNrYik7Cit9CisKICNkZWZpbmUgTUFYX0FDVElPTlNfQlVG U0laRQkoMzIgKiAxMDI0KQogCiBzdGF0aWMgc3RydWN0IHN3X2Zsb3dfYWN0aW9ucyAqbmxhX2Fs bG9jX2Zsb3dfYWN0aW9ucyhpbnQgc2l6ZSwgYm9vbCBsb2cpCmRpZmYgLS1naXQgYS9uZXQvb3Bl bnZzd2l0Y2gvZmxvd19uZXRsaW5rLmggYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmgK aW5kZXggNTc3ZjEyYi4uOWVkMDllNiAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3df bmV0bGluay5oCisrKyBiL25ldC9vcGVudnN3aXRjaC9mbG93X25ldGxpbmsuaApAQCAtNDMsMTEg KzQzLDE0IEBAIHNpemVfdCBvdnNfa2V5X2F0dHJfc2l6ZSh2b2lkKTsKIHZvaWQgb3ZzX21hdGNo X2luaXQoc3RydWN0IHN3X2Zsb3dfbWF0Y2ggKm1hdGNoLAogCQkgICAgc3RydWN0IHN3X2Zsb3df a2V5ICprZXksIHN0cnVjdCBzd19mbG93X21hc2sgKm1hc2spOwogCi1pbnQgb3ZzX25sYV9wdXRf Zmxvdyhjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKiwKLQkJICAgICBjb25zdCBzdHJ1Y3Qgc3df Zmxvd19rZXkgKiwgc3RydWN0IHNrX2J1ZmYgKik7CitpbnQgb3ZzX25sYV9wdXRfa2V5KGNvbnN0 IHN0cnVjdCBzd19mbG93X2tleSAqLCBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKiwKKwkJICAg IGludCBhdHRyLCBib29sIGlzX21hc2ssIHN0cnVjdCBza19idWZmICopOwogaW50IG92c19ubGFf Z2V0X2Zsb3dfbWV0YWRhdGEoY29uc3Qgc3RydWN0IG5sYXR0ciAqLCBzdHJ1Y3Qgc3dfZmxvd19r ZXkgKiwKIAkJCSAgICAgIGJvb2wgbG9nKTsKIAoraW50IG92c19ubGFfcHV0X3VubWFza2VkX2tl eShjb25zdCBzdHJ1Y3Qgc3dfZmxvdyAqZmxvdywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CitpbnQg b3ZzX25sYV9wdXRfbWFzayhjb25zdCBzdHJ1Y3Qgc3dfZmxvdyAqZmxvdywgc3RydWN0IHNrX2J1 ZmYgKnNrYik7CisKIGludCBvdnNfbmxhX2dldF9tYXRjaChzdHJ1Y3Qgc3dfZmxvd19tYXRjaCAq LCBjb25zdCBzdHJ1Y3QgbmxhdHRyICprZXksCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBubGF0dHIg Km1hc2ssIGJvb2wgbG9nKTsKIGludCBvdnNfbmxhX3B1dF9lZ3Jlc3NfdHVubmVsX2tleShzdHJ1 Y3Qgc2tfYnVmZiAqLAotLSAKMS43LjEwLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRldiBtYWlsaW5nIGxpc3QKZGV2QG9wZW52c3dpdGNoLm9yZwpo dHRwOi8vb3BlbnZzd2l0Y2gub3JnL21haWxtYW4vbGlzdGluZm8vZGV2Cg==