)]}'
{
  "log": [
    {
      "commit": "30ddb159ff3c632fdad3c0abc2e7d586a59bc5d1",
      "tree": "6535914379c0abd33c414c971b10c501e00db4ab",
      "parents": [
        "25f666300625d894ebe04bac2b4b3aadb907c861"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 10 03:48:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 10 03:48:15 2008 -0800"
      },
      "message": "[PKT_SCHED] ematch: Fix build warning.\n\nCommit 954415e33ed6cfa932c13e8c2460bd05e50723b5 (\"[PKT_SCHED] ematch:\ntcf_em_destroy robustness\") removed a cast on em-\u003edata when\npassing it to kfree(), but em-\u003edata is an integer type that can\nhold pointers as well as other values so the cast is necessary.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21347456abfbf5bc7fcace7327476736bbb28abe",
      "tree": "79863d638a3fad6bf7efc9e6f280b6ab22a0c317",
      "parents": [
        "238fc7eac8e74681da7a6cb6748afb5422afc1be"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Sat Feb 09 23:44:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 09 23:44:00 2008 -0800"
      },
      "message": "[NET_SCHED] sch_htb: htb_requeue fix\n\nhtb_requeue() enqueues skbs for which htb_classify() returns NULL.\nThis is wrong because such skbs could be handled by NET_CLS_ACT code,\nand the decision could be different than earlier in htb_enqueue().\nSo htb_requeue() is changed to work and look more like htb_enqueue().\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "954415e33ed6cfa932c13e8c2460bd05e50723b5",
      "tree": "6587b63b3d5ba528b446eabf1c6af5134e4c3464",
      "parents": [
        "ed7af3b3501c8c4e3667c89c2c43347bf29ae237"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Sat Feb 09 23:26:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 09 23:26:53 2008 -0800"
      },
      "message": "[PKT_SCHED] ematch: tcf_em_destroy robustness\n\nMake the code in tcf_em_tree_destroy more robust and cleaner:\n * Don\u0027t need to cast pointer to kfree() or avoid passing NULL.\n * After freeing the tree, clear the pointer to avoid possible problems\nfrom repeated free.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed7af3b3501c8c4e3667c89c2c43347bf29ae237",
      "tree": "ee455cbedd468679e130e0732d38eff951da57b0",
      "parents": [
        "8ff65b46031c47e476f70c5b82499b98e487a50c"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Sat Feb 09 23:26:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 09 23:26:17 2008 -0800"
      },
      "message": "[PKT_SCHED]: deinline functions in meta match\n\nA couple of functions in meta match don\u0027t need to be inline.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "268bcca1e7b0d244afd07ea89cda672e61b0fc4a",
      "tree": "f77a9bb3cc8f5da72b5d94253601b3fa8acbb9f1",
      "parents": [
        "ab1ecbabb1c7b1599b1eb70c291407c557ea4ef3"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Sat Feb 09 03:47:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 09 03:47:19 2008 -0800"
      },
      "message": "[PKT_SCHED] ematch: oops from uninitialized variable (resend)\n\nSetting up a meta match causes a kernel OOPS because of uninitialized\nelements in tree.\n\n[   37.322381] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000\n[   37.322381] IP: [\u003cffffffff883fc717\u003e] :em_meta:em_meta_destroy+0x17/0x80\n\n[   37.322381] Call Trace:\n[   37.322381]  [\u003cffffffff803ec83d\u003e] tcf_em_tree_destroy+0x2d/0xa0\n[   37.322381]  [\u003cffffffff803ecc8c\u003e] tcf_em_tree_validate+0x2dc/0x4a0\n[   37.322381]  [\u003cffffffff803f06d2\u003e] nla_parse+0x92/0xe0\n[   37.322381]  [\u003cffffffff883f9672\u003e] :cls_basic:basic_change+0x202/0x3c0\n[   37.322381]  [\u003cffffffff802a3917\u003e] kmem_cache_alloc+0x67/0xa0\n[   37.322381]  [\u003cffffffff803ea221\u003e] tc_ctl_tfilter+0x3b1/0x580\n[   37.322381]  [\u003cffffffff803dffd0\u003e] rtnetlink_rcv_msg+0x0/0x260\n[   37.322381]  [\u003cffffffff803ee944\u003e] netlink_rcv_skb+0x74/0xa0\n[   37.322381]  [\u003cffffffff803dffc8\u003e] rtnetlink_rcv+0x18/0x20\n[   37.322381]  [\u003cffffffff803ee6c3\u003e] netlink_unicast+0x263/0x290\n[   37.322381]  [\u003cffffffff803cf276\u003e] __alloc_skb+0x96/0x160\n[   37.322381]  [\u003cffffffff803ef014\u003e] netlink_sendmsg+0x274/0x340\n[   37.322381]  [\u003cffffffff803c7c3b\u003e] sock_sendmsg+0x12b/0x140\n[   37.322381]  [\u003cffffffff8024de90\u003e] autoremove_wake_function+0x0/0x30\n[   37.322381]  [\u003cffffffff8024de90\u003e] autoremove_wake_function+0x0/0x30\n[   37.322381]  [\u003cffffffff803c7c3b\u003e] sock_sendmsg+0x12b/0x140\n[   37.322381]  [\u003cffffffff80288611\u003e] zone_statistics+0xb1/0xc0\n[   37.322381]  [\u003cffffffff803c7e5e\u003e] sys_sendmsg+0x20e/0x360\n[   37.322381]  [\u003cffffffff803c7411\u003e] sockfd_lookup_light+0x41/0x80\n[   37.322381]  [\u003cffffffff8028d04b\u003e] handle_mm_fault+0x3eb/0x7f0\n[   37.322381]  [\u003cffffffff8020c2fb\u003e] system_call_after_swapgs+0x7b/0x80\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "04f217aca4d803fe72c2c54fe460d68f5233ce52",
      "tree": "a272e05b77afa50d868b08ce79daa22808aeef01",
      "parents": [
        "4e881a217bd1403960eb8f32297ba9d226c6d5ae"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu Feb 07 18:13:00 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 07 18:13:00 2008 -0800"
      },
      "message": "[TC]: oops in em_meta\n\nIf userspace passes a unknown match index into em_meta, then\nem_meta_change will return an error and the data for the match will\nnot be set. This then causes an null pointer dereference when the\ncleanup is done in the error path via tcf_em_tree_destroy. Since the\ntree structure comes kzalloc, it is initialized to NULL.\n\nDiscovered when testing a new version of tc command against an\naccidental older kernel.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ec138101f8a79007bc571174976a7814ed616f8",
      "tree": "1839f02b9cee63ebf10707a8d3c5da3f8e4f4213",
      "parents": [
        "181499356e5a9f0bcbd69adc3c6df450f6e2586d"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Feb 05 16:21:04 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 16:21:04 2008 -0800"
      },
      "message": "[NET_SCHED]: cls_flow: support classification based on VLAN tag\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f25049106e0507ff21a9e1fc0645d849e19faf0",
      "tree": "0bb28370f4ef81d89030e56df0cf192b778e67dd",
      "parents": [
        "0ea9d70df8f8be741ee0525490370de06163d2de"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Feb 05 16:19:59 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 16:19:59 2008 -0800"
      },
      "message": "[NET_SCHED]: cls_flow: fix key mask validity check\n\nSince we\u0027re using fls(), we need to check whether the value is\nnon-zero first.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ea9d70df8f8be741ee0525490370de06163d2de",
      "tree": "6e5287dfe92165852c9b4b24e012e3cdf3fe52dd",
      "parents": [
        "21511abd0a248a3f225d3b611cfabb93124605a7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Feb 05 16:19:33 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 16:19:33 2008 -0800"
      },
      "message": "[NET_SCHED]: em_meta: fix compile warning\n\nnet/sched/em_meta.c: In function \u0027meta_int_vlan_tag\u0027:\nnet/sched/em_meta.c:179: warning: \u0027tag\u0027 may be used uninitialized in this function\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3113e88c3cb3c0a22920b621f8e4d1f2ccc07f1e",
      "tree": "241192a6492a5254cd1a2fb8fff8e87969ef0420",
      "parents": [
        "dded91611a728d65721cdab3dd41d801a356fa15"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Feb 05 03:20:13 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 03:20:13 2008 -0800"
      },
      "message": "[PKT_SCHED]: vlan tag match\n\nProvide a way to use tc filters on vlan tag even if tag is buried in\nskb due to hardware acceleration.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0aead543479e7f20013217fe3fc33a604fdd8944",
      "tree": "ca02be1f38085de89b1ed42d845ed2c1a450ffad",
      "parents": [
        "cc8274f50f2ad9a97a837451f63a0a3e65f7f490"
      ],
      "author": {
        "name": "Rami Rosen",
        "email": "ramirose@gmail.com",
        "time": "Tue Feb 05 02:56:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 05 02:56:48 2008 -0800"
      },
      "message": "[NET_SCHED]: Add #ifdef CONFIG_NET_EMATCH in net/sched/cls_flow.c (latest git broken build)\n\nThe 2.6 latest git build was broken when using the following\nconfiguration options:\nCONFIG_NET_EMATCH\u003dn\nCONFIG_NET_CLS_FLOW\u003dy\n\nwith the following error:\nnet/sched/cls_flow.c: In function \u0027flow_dump\u0027:\nnet/sched/cls_flow.c:598: error: \u0027struct tcf_ematch_tree\u0027 has no\nmember named \u0027hdr\u0027\nmake[2]: *** [net/sched/cls_flow.o] Error 1\nmake[1]: *** [net/sched] Error 2\nmake: *** [net] Error 2\n\n\nsee the recent post by Li Zefan:\n  http://www.spinics.net/lists/netdev/msg54434.html\n\nThe reason for this crash is that struct tcf_ematch_tree\n(net/pkt_cls.h) is empty when CONFIG_NET_EMATCH is not defined.\n\nWhen CONFIG_NET_EMATCH is defined, the tcf_ematch_tree structure\nindeed holds a struct tcf_ematch_tree_hdr (hdr) as flow_dump()\nexpects.\n\nThis patch adds #ifdef CONFIG_NET_EMATCH in flow_dump to avoid this.\n\nSigned-off-by: Rami Rosen \u003cramirose@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e5dfb815181fcb186d6080ac3a091eadff2d98fe",
      "tree": "25ec6cc5b3c75536dc45a14089ca14fc8bd67938",
      "parents": [
        "94de78d19580143c407ff2492edf2410d0e7d48c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:37:42 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:36 2008 -0800"
      },
      "message": "[NET_SCHED]: Add flow classifier\n\nAdd new \"flow\" classifier, which is meant to extend the SFQ hashing\ncapabilities without hard-coding new hash functions and also allows\ndeterministic mappings of keys to classes, replacing some out of tree\niptables patches like IPCLASSIFY (maps IPs to classes), IPMARK (maps\nIPs to marks, with fw filters to classes), ...\n\nSome examples:\n\n- Classic SFQ hash:\n\n  tc filter add ... flow hash \\\n  \tkeys src,dst,proto,proto-src,proto-dst divisor 1024\n\n- Classic SFQ hash, but using information from conntrack to work properly in\n  combination with NAT:\n\n  tc filter add ... flow hash \\\n  \tkeys nfct-src,nfct-dst,proto,nfct-proto-src,nfct-proto-dst divisor 1024\n\n- Map destination IPs of 192.168.0.0/24 to classids 1-257:\n\n  tc filter add ... flow map \\\n  \tkey dst addend -192.168.0.0 divisor 256\n\n- alternatively:\n\n  tc filter add ... flow map \\\n  \tkey dst and 0xff\n\n- similar, but reverse ordered:\n\n  tc filter add ... flow map \\\n  \tkey dst and 0xff xor 0xff\n\nPerturbation is currently not supported because we can\u0027t reliable kill the\ntimer on destruction.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "94de78d19580143c407ff2492edf2410d0e7d48c",
      "tree": "2753a5638e500101ec286fd5a02f042b4a1da129",
      "parents": [
        "7d2681a6ff4f9ab5e48d02550b4c6338f1638998"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:37:16 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:35 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_sfq: make internal queues visible as classes\n\nAdd support for dumping statistics and make internal queues visible as\nclasses.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7d2681a6ff4f9ab5e48d02550b4c6338f1638998",
      "tree": "3db57231f8153682da5136081d091bdec3cf3985",
      "parents": [
        "5239008b0de2507a531440b8c3019fb9c116fb1a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:36:52 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:34 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_sfq: add support for external classifiers\n\nAdd support for external classifiers to allow using different flow\nhash functions similar to ESFQ. When no classifier is attached the\nbuilt-in hash is used as before.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5239008b0de2507a531440b8c3019fb9c116fb1a",
      "tree": "49f4580d2a0178182017b4a07640ac8d0f1c4112",
      "parents": [
        "5396c9356efec1d3d818b786f69e081aaad4b98b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 18:36:18 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:34 2008 -0800"
      },
      "message": "[NET_SCHED]: Constify struct tcf_ext_map\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc8fd14dcaad61be74cbd5879f27a76f91473a3f",
      "tree": "6486b03dd24c3536e2c2c12b518cd4349439fdd0",
      "parents": [
        "c26736ec171760a41307d775bbf05983ea45ea9e"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "12o3l@tiscali.nl",
        "time": "Thu Jan 31 17:08:47 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:29 2008 -0800"
      },
      "message": "[PKT_SCHED] sch_teql.c: Duplicate IFF_BROADCAST in FMASK, remove 2nd.\n\nSigned-off-by: Roel Kluin \u003c12o3l@tiscali.nl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "72eb7bd2693d83e161442b709b107dd77c77b4f2",
      "tree": "d823cbbf98ed196f280a230fd3cb0268fd65a5a0",
      "parents": [
        "52913246e0056c9c6215a778a3b31b6b9ce5c3ef"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Jan 31 16:57:15 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 31 19:28:25 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove netfilter support\n\nSince the old policer code is gone, TC actions are needed for policing.\nThe ingress qdisc can get packets directly from netif_receive_skb()\nin case TC actions are enabled or through netfilter otherwise, but\nsince without TC actions there is no policer the only thing it actually\ndoes is count packets.\n\nRemove the netfilter support and always require TC actions.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7a9c1bd409d3522806d492aa573c1cc5384ca620",
      "tree": "5226c9086d9f4418f91032bedae11cc0aba9c50d",
      "parents": [
        "53b2bf3f8a652c9c8e86831f94ae2c5767ea54d7"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:36:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:24 2008 -0800"
      },
      "message": "[NET_SCHED]: Use nla_policy for attribute validation in ematches\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "53b2bf3f8a652c9c8e86831f94ae2c5767ea54d7",
      "tree": "eba61efed08a932766a32b0b6a60e766f8b44bcb",
      "parents": [
        "6fa8c0144b770dac941cf2c15053b6e24f046c8a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:36:30 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:23 2008 -0800"
      },
      "message": "[NET_SCHED]: Use nla_policy for attribute validation in actions\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6fa8c0144b770dac941cf2c15053b6e24f046c8a",
      "tree": "7c91cd0e9a98f0532df30a9d8549e2c76a3ce716",
      "parents": [
        "27a3421e4821734bc19496faa77b380605dc3b23"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:36:12 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:23 2008 -0800"
      },
      "message": "[NET_SCHED]: Use nla_policy for attribute validation in classifiers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "27a3421e4821734bc19496faa77b380605dc3b23",
      "tree": "f9ded49845a39f41352ed09130bf3d2bd05e4ffe",
      "parents": [
        "5feb5e1aaa887f6427b8290bce48bfb6b7010fc6"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:35:39 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:22 2008 -0800"
      },
      "message": "[NET_SCHED]: Use nla_policy for attribute validation in packet schedulers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5feb5e1aaa887f6427b8290bce48bfb6b7010fc6",
      "tree": "3e8402cbddf0fa2549c1f199b3d0d963ac82d881",
      "parents": [
        "1587bac49f8491b5006a78f8d726111b71757941"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:35:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:21 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_api: introduce constant for rate table size\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1587bac49f8491b5006a78f8d726111b71757941",
      "tree": "753e9fb452917efd9da6751fa4c6a45442c9fb8d",
      "parents": [
        "24beeab539c6f42c4a93e2ff7c3b5f272e60da45"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:35:03 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:21 2008 -0800"
      },
      "message": "[NET_SCHED]: Use typeful attribute parsing helpers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "24beeab539c6f42c4a93e2ff7c3b5f272e60da45",
      "tree": "eb1be7e7d8b3f0f3375bf0d12fd26851e518d9ca",
      "parents": [
        "57e1c487a4f5754cb77abeb00adb21faa88c484f"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:34:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:20 2008 -0800"
      },
      "message": "[NET_SCHED]: Use typeful attribute construction helpers\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "57e1c487a4f5754cb77abeb00adb21faa88c484f",
      "tree": "e9fdf7529f3992b761648a850d68ad76b5856eab",
      "parents": [
        "4b3550ef530cfc153fa91f0b37cbda448bad11c6"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:34:28 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:19 2008 -0800"
      },
      "message": "[NET_SCHED]: Use NLA_PUT_STRING for string dumping\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4b3550ef530cfc153fa91f0b37cbda448bad11c6",
      "tree": "02aba7497298f220629af8e47f48e56df86d428f",
      "parents": [
        "cee63723b358e594225e812d6e14a2a0abfd5c88"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:34:11 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:18 2008 -0800"
      },
      "message": "[NET_SCHED]: Use nla_nest_start/nla_nest_end\n\nUse nla_nest_start/nla_nest_end for dumping nested attributes.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cee63723b358e594225e812d6e14a2a0abfd5c88",
      "tree": "847f929e0f445cca8cdf55d7c17a56b0d0f2ec68",
      "parents": [
        "ab27cfb85c5778400740ad0c401bde65616774eb"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:33:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:18 2008 -0800"
      },
      "message": "[NET_SCHED]: Propagate nla_parse return value\n\nnla_parse() returns more detailed errno codes, propagate them back on\nerror.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab27cfb85c5778400740ad0c401bde65616774eb",
      "tree": "0ba260a2a4ee2e80b75a188192f345e7bd079cfd",
      "parents": [
        "c96c9471dd86ba24dc3826bf5688b99d3caf3ace"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:33:13 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:17 2008 -0800"
      },
      "message": "[NET_SCHED]: act_api: use PTR_ERR in tcf_action_init/tcf_action_get\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c96c9471dd86ba24dc3826bf5688b99d3caf3ace",
      "tree": "4930a6990f5c262ec06333ec7ddfc494a0720a46",
      "parents": [
        "6d834e04e596d6803cf1074a07fd67e7b5662f1b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:32:58 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:16 2008 -0800"
      },
      "message": "[NET_SCHED]: act_api: use nlmsg_parse\n\nConvert open-coded nlmsg_parse to use the real function.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6d834e04e596d6803cf1074a07fd67e7b5662f1b",
      "tree": "b11ec3d738e707772fe193a9feb99f7a4c552f42",
      "parents": [
        "b03f4672007e533c8dbf0965f995182586216bf1"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:32:42 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:15 2008 -0800"
      },
      "message": "[NET_SCHED]: act_api: fix netlink API conversion bug\n\nFix two invalid attribute accesses, indices start at 1 with the new\nnetlink API.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b03f4672007e533c8dbf0965f995182586216bf1",
      "tree": "40bde458dc88aaf4d95b9d00558db4b3eb82c534",
      "parents": [
        "f5e5cb75539749960d7d35f8a7da29e2f4b96320"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:32:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:15 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_netem: use nla_parse_nested_compat\n\nReplace open coded equivalent of nla_parse_nested_compat().\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f5e5cb75539749960d7d35f8a7da29e2f4b96320",
      "tree": "80a113879a8b090e362d0611a677186e7e1bd5c8",
      "parents": [
        "dde1bc0e6f86183bc095d0774cd109f4edf66ea2"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Jan 23 20:32:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:14 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_atm: fix format string warning\n\nFix format string warning introduces by the netlink API conversion:\n\nnet/sched/sch_atm.c:250: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027int\u0027.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7ba699c604ab811972eee2e041fd6b07659a2e6e",
      "tree": "4f76f69a25ce27ee0dd0c417df75acf00b1a36a0",
      "parents": [
        "add93b610a4e66d36d0cf0b2596c3d3bcfdaee39"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jan 22 22:11:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:11 2008 -0800"
      },
      "message": "[NET_SCHED]: Convert actions from rtnetlink to new netlink API\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "add93b610a4e66d36d0cf0b2596c3d3bcfdaee39",
      "tree": "073873879eb3b87981ee015f0f1ca48da8f1c696",
      "parents": [
        "1e90474c377e92db7262a8968a45c1dd980ca9e5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jan 22 22:11:33 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:11 2008 -0800"
      },
      "message": "[NET_SCHED]: Convert classifiers from rtnetlink to new netlink API\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1e90474c377e92db7262a8968a45c1dd980ca9e5",
      "tree": "645af56dcb17cf1a76fd3b7f1a8b833a3fffc3d7",
      "parents": [
        "01480e1cf5e2118eba8a8968239f3242072f9563"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jan 22 22:11:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:10 2008 -0800"
      },
      "message": "[NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API\n\nConvert packet schedulers to use the netlink API. Unfortunately a gradual\nconversion is not possible without breaking compilation in the middle or\nadding lots of casts, so this patch converts them all in one step. The\npatch has been mostly generated automatically with some minor edits to\nat least allow seperate conversion of classifiers and actions.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2eb9d75c723252c1fa8f0206e6a0df220e3c64c0",
      "tree": "169eb9fb1170e6bbb60d3b373d133ef3e0aefa63",
      "parents": [
        "62e3ba1b558e5f393ef746880613fb8222e64d03"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jan 22 22:10:42 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:08 2008 -0800"
      },
      "message": "[NET_SCHED]: mark classifier ops __read_mostly\n\nAdditionally remove unnecessary NULL initilizations of the next pointer.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "62e3ba1b558e5f393ef746880613fb8222e64d03",
      "tree": "159c218ad38daef676b2cbc5a00e6b83a04cc16d",
      "parents": [
        "f206351a50ea86250fabea96b9af8d8f8fc02603"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jan 22 22:10:23 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:11:07 2008 -0800"
      },
      "message": "[NET_SCHED]: Move EXPORT_SYMBOL next to exported symbol\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa767bfea4828936fffb7800204294ba4c8ba283",
      "tree": "22108dfc08b78a928774bc099436f0300092332e",
      "parents": [
        "786a90366f7571b5755d0e2773be9fe4cde80871"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Jan 21 02:26:41 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:42 2008 -0800"
      },
      "message": "[PKT_SCHED] net classifier: style cleanup\u0027s\n\nClassifier code cleanup. Get rid of printk wrapper, and fix whitespace\nand other style stuff reported by checkpatch\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "786a90366f7571b5755d0e2773be9fe4cde80871",
      "tree": "0f598353cfe98e26698368d2fdd5dba27f3b6785",
      "parents": [
        "9d127fbdd26f9f16c41893b5f85b38321980e096"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Jan 21 02:25:29 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:41 2008 -0800"
      },
      "message": "[PKT_SCHED] sch_atm: style cleanup\n\nATM scheduler clean house:\n  * get rid of printk and qdisc_priv() wrapper\n  * split some assignment in if() statements\n  * whitespace and line breaks.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9d127fbdd26f9f16c41893b5f85b38321980e096",
      "tree": "3f62c30603b1c9ebee72758cf496fb0e435bdc2a",
      "parents": [
        "4c30719f4f550d9b3034d9c00da9cb7fb99e6c0b"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Jan 21 02:24:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:40 2008 -0800"
      },
      "message": "[PKT_SCHED] dsmark: checkpatch warning cleanup\n\nGet rid of all style things checkpatch warns about, indentation and\nwhitespace.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4c30719f4f550d9b3034d9c00da9cb7fb99e6c0b",
      "tree": "db487b4ae184e7e6b90e2623c371f8a09edec830",
      "parents": [
        "5b0ac72bc5fdda9634fb07db4cb0237fa9b6df68"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Jan 21 02:23:49 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:40 2008 -0800"
      },
      "message": "[PKT_SCHED] dsmark: handle cloned and non-linear skb\u0027s\n\nMake dsmark work properly with non-linear and cloned skb\u0027s\nBefore modifying the header, it needs to check that skb header is\nwriteable.\n\nNote: this makes the assumption, that if it queues a good skb\nthen a good skb will come out of the embedded qdisc.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b0ac72bc5fdda9634fb07db4cb0237fa9b6df68",
      "tree": "26db7718b56ea492e25a5c9321f5669020bc7ea6",
      "parents": [
        "81da99ed71254a08d9a0bce46c258c1e15ac3948"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 21 02:21:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:39 2008 -0800"
      },
      "message": "[PKT_SCHED] dsmark: Use hweight32() instead of convoluted loop.\n\nBased upon a patch by Stephen Hemminger and suggestions\nfrom Patrick McHardy.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "81da99ed71254a08d9a0bce46c258c1e15ac3948",
      "tree": "d0bf4afba63a246a295170d58f5e02b23c2cb28e",
      "parents": [
        "d20b3109e9d122460929c50b857fcde251706ece"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Jan 21 00:50:09 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:38 2008 -0800"
      },
      "message": "[PKT_SCHED] dsmark: get rid of wrappers\n\nRemove extraneous macro wrappers for printk and qdisc_priv.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13a0a096e58a1149a8cffbd7722b820044e3801e",
      "tree": "51ecf5e4c0e3c3eaa20c8f06ca88c3824b48436c",
      "parents": [
        "f12ca5f97b7f99288aff1dc32a91f21c3230fefe"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:47:43 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:37 2008 -0800"
      },
      "message": "[NET_SCHED]: kill obsolete NET_CLS_POLICE option\n\nThe code is already gone for about half a year, the config option\nhas been kept around to select the replacement options for easier\nupgrades. This seems long enough, people upgrading from older\nkernels will have to reconfigure a lot anyway.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "891687649a5c44a1d53668b4f7728bf97c8db8d5",
      "tree": "72d3fd72888e0243bfe86b916eade4db3a3173f6",
      "parents": [
        "13893567358a8426d03ac3c613befc55431f23ce"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:14:05 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:22 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove useless printk\n\nThe printk about ingress qdisc registration error can\u0027t be triggered\nunder normal circumstances. Since register_qdisc only fails for two\nidentical registrations, the only way to trigger it is by loading the\nsch_ingress modules multiple times under different names, in which\ncase we already return -EEXIST to userspace.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "13893567358a8426d03ac3c613befc55431f23ce",
      "tree": "181d16d62a21022cbe93d2993d006066c0d4bffb",
      "parents": [
        "645a1e39e4e3e84a275c5e4a7c8049041146f9b5"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:22 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: avoid a few #ifdefs\n\nMove the repeating \"ifndef CONFIG_NET_CLS_ACT/ifdef CONFIG_NETFILTER\"\nifdefs into a single condition.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "645a1e39e4e3e84a275c5e4a7c8049041146f9b5",
      "tree": "51cfe70dea020466ba67aeb5966a36e9b0f29ddc",
      "parents": [
        "c6ee877f2e4c4d44c934528b4cec6c8d7f54d3ad"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:13:19 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:21 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: move dependencies to Kconfig\n\nInstead of complaining at scheduler initialization time, check the\ndependencies in Kconfig.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6ee877f2e4c4d44c934528b4cec6c8d7f54d3ad",
      "tree": "54c8e1ee3bb263cb9776deeb1ae1ce9b2c699d8e",
      "parents": [
        "e037834758af82a24c4d390b93e1ce5e280a551a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:12:53 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:20 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove unnecessary ops\n\n- -\u003ereset is optional\n- sch_api provides identical defaults for -\u003edequeue/-\u003erequeue\n- -\u003edrop can\u0027t happen since ingress never has a parent qdisc\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e037834758af82a24c4d390b93e1ce5e280a551a",
      "tree": "12fb2d79de7c09226d1b8834738e716dc47606ab",
      "parents": [
        "c21d4d5dd27329c30c5129d5dbc4942456af361c"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:12:32 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:20 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: return proper error code in ingress_graft()\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c21d4d5dd27329c30c5129d5dbc4942456af361c",
      "tree": "f61f725fa47cdef433eeabcc2ee6df415199a623",
      "parents": [
        "cb53c048912976d1d81b8f3475463788f462eebd"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:12:10 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:19 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove unused inner qdisc\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cb53c048912976d1d81b8f3475463788f462eebd",
      "tree": "bb792237c4ffe45c423350e174b579f0e86fd731",
      "parents": [
        "a47812211bb38c6754a5a6a952ab406e711cc6e0"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:11:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:18 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove qdisc_priv() wrapper\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a47812211bb38c6754a5a6a952ab406e711cc6e0",
      "tree": "6e52946408f7a7b07fedca605a9944fd4deaa9d3",
      "parents": [
        "58f4df423ee3e7ee33022d84bbd69561b03344a9"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:11:21 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:18 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: remove excessive debugging\n\nRemove excessive debugging statements and some \"future use\" stuff.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "58f4df423ee3e7ee33022d84bbd69561b03344a9",
      "tree": "c397cbebee4fbc3037e50bad7c519414416e88ab",
      "parents": [
        "6f9e98f7a96fdf4d621b8241d5a8a55c692de373"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Jan 21 00:11:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:17 2008 -0800"
      },
      "message": "[NET_SCHED]: sch_ingress: formatting fixes\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f9e98f7a96fdf4d621b8241d5a8a55c692de373",
      "tree": "c19eb84f7af9c0be589b7349020cf9faa519fdf8",
      "parents": [
        "d46f8dd87d9e7d5356891cbe97b8472e74db1413"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Jan 20 17:20:56 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:16 2008 -0800"
      },
      "message": "[PKT_SCHED] SFQ: whitespace cleanup\n\nAdd whitespace around operators, and add a few blank lines to improve\nreadability.\n\nSigned-off-by: Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d46f8dd87d9e7d5356891cbe97b8472e74db1413",
      "tree": "d241545e59e75966cecd9c28afb0ecab02f728ce",
      "parents": [
        "d3e994830d35159320d0a98c36aa580410c29609"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Jan 20 17:19:43 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:15 2008 -0800"
      },
      "message": "[PKT_SCHED] SFQ: use net_random\n\nSFQ doesn\u0027t need true random numbers, it is only using them to salt a\nhash. Therefore it is better to use net_random() and avoid any\npossible problems with depleting the entropy pool.\n\nSigned-off-by: Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3e994830d35159320d0a98c36aa580410c29609",
      "tree": "501e65c40e46f527764d4494ed4c9bf923bf8c5f",
      "parents": [
        "51314a17baabc710e5fb12975fe8983dedd5ac0d"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "stephen.hemminger@vyatta.com",
        "time": "Sun Jan 20 17:18:45 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:08:15 2008 -0800"
      },
      "message": "[PKT_SCHED] SFQ: timer is deferrable\n\nThe perturbation timer used for re-keying can be deferred, it doesn\u0027t\nneed to be deterministic.\n\nSigned-off-by: Stephen Hemminger \u003cstephen.hemminger@vyatta.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d88c305a03c37a95c4b27e1a0c2e387bb7ce80df",
      "tree": "f58a40e9a24c804ce3a24c73cf804c08062d6202",
      "parents": [
        "8519660b98349fb922157fa2f5fb6e49eb17ad38"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sat Jan 12 21:29:14 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:01:59 2008 -0800"
      },
      "message": "[PKT_SCHED] HTB: htb_classid is dead static inline\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a429c4983deae020f1e757ecc8f547b6d4e2f2b",
      "tree": "172e27a5866e182b902cd77506df1755aafadb60",
      "parents": [
        "b950dfcf504842a0f2bb142a33ef938f1c00d300"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Tue Jan 01 21:58:02 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 15:00:31 2008 -0800"
      },
      "message": "[NET]: Add some acquires/releases sparse annotations.\n\nAdd __acquires() and __releases() annotations to suppress some sparse\nwarnings.\n\nexample of warnings :\n\nnet/ipv4/udp.c:1555:14: warning: context imbalance in \u0027udp_seq_start\u0027 - wrong\ncount at exit\nnet/ipv4/udp.c:1571:13: warning: context imbalance in \u0027udp_seq_stop\u0027 -\nunexpected unlock\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1999414a4ece2b8cea3fb3c4dc8fe06796256269",
      "tree": "5f2e774691d05f043390ec8a310f411c99aa7a9e",
      "parents": [
        "41c5b317036fcb593d14b4dfd12e3318faf3af8a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Dec 05 01:23:00 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:07 2008 -0800"
      },
      "message": "[NETFILTER]: Mark hooks __read_mostly\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41c5b317036fcb593d14b4dfd12e3318faf3af8a",
      "tree": "afb68078c92947371d7723bc97c8026808f88a27",
      "parents": [
        "279c2c74b6a26fbd8c3dc100a59c3ac0ff7559fa"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Dec 05 01:22:43 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:56:06 2008 -0800"
      },
      "message": "[NETFILTER]: Use nf_register_hooks for multiple registrations\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "be0ea7d5da3d99140bde7e5cea328eb111731700",
      "tree": "fc7e0702bf03eff7409c1bd8361fca5737cbe365",
      "parents": [
        "a99a00cf1adef2d3dce745c93c9cc8b0a1612c50"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Fri Nov 30 01:17:11 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:55:15 2008 -0800"
      },
      "message": "[NETFILTER]: Convert old checksum helper names\n\nKill the defines again, convert to the new checksum helper names and\nremove the dependency of NET_ACT_NAT on NETFILTER.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "97c53cacf00d1f5aa04adabfebcc806ca8b22b10",
      "tree": "6b7223df312aa27a5017c4d7c4d1e500a33ed8d8",
      "parents": [
        "b854272b3c732316676e9128f7b9e6f1e1ff88b0"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Nov 19 22:26:51 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:25 2008 -0800"
      },
      "message": "[NET]: Make rtnetlink infrastructure network namespace aware (v3)\n\nAfter this patch none of the netlink callback support anything\nexcept the initial network namespace but the rtnetlink infrastructure\nnow handles multiple network namespaces.\n\nChanges from v2:\n- IPv6 addrlabel processing\n\nChanges from v1:\n- no need for special rtnl_unlock handling\n- fixed IPv6 ndisc\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b854272b3c732316676e9128f7b9e6f1e1ff88b0",
      "tree": "c90c74b9ec068453881f1173da4c57d6bb00a7d9",
      "parents": [
        "ad5d20a63940fcfb40af76ba06148f36d5d0b433"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Sat Dec 01 00:21:31 2007 +1100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:24 2008 -0800"
      },
      "message": "[NET]: Modify all rtnetlink methods to only work in the initial namespace (v2)\n\nBefore I can enable rtnetlink to work in all network namespaces I need\nto be certain that something won\u0027t break.  So this patch deliberately\ndisables all of the rtnletlink methods in everything except the\ninitial network namespace.  After the methods have been audited this\nextra check can be disabled.\n\nChanges from v1:\n- added IPv6 addrlabel protection\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "20fea08b5fb639c4c175b5c74a2bb346c5c5bc2e",
      "tree": "3ffa7e1e82051c6772fc2a01d561e4a5a29bb138",
      "parents": [
        "2a8cc6c89039e0530a3335954253b76ed0f9339a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Nov 14 01:44:41 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:58 2008 -0800"
      },
      "message": "[NET]: Move Qdisc_class_ops and Qdisc_ops in appropriate sections.\n\nQdisc_class_ops are const, and Qdisc_ops are mostly read.\n\nUsing \"const\" and \"__read_mostly\" qualifiers helps to reduce false\nsharing.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e23ae2a48750bda407a4a58f52a4865d7308bf5",
      "tree": "633fd60b2a42bf6fdb86564f0c05a6d52d8dc92b",
      "parents": [
        "1bf06cd2e338fd6fc29169d30eaf0df982338285"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Mon Nov 19 18:53:30 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:55 2008 -0800"
      },
      "message": "[NETFILTER]: Introduce NF_INET_ hook values\n\nThe IPv4 and IPv6 hook values are identical, yet some code tries to figure\nout the \"correct\" value by looking at the address family. Introduce NF_INET_*\nvalues for both IPv4 and IPv6. The old values are kept in a #ifndef __KERNEL__\nsection for userspace compatibility.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b24b8a247ff65c01b252025926fe564209fae4fc",
      "tree": "8a9e0ea1e24b4733d8b9433d41877659505e9da4",
      "parents": [
        "a92aa318b4b369091fd80433c80e62838db8bc1c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Jan 23 21:20:07 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:53:35 2008 -0800"
      },
      "message": "[NET]: Convert init_timer into setup_timer\n\nMany-many code in the kernel initialized the timer-\u003efunction\nand  timer-\u003edata together with calling init_timer(timer). There\nis already a helper for this. Use it for networking code.\n\nThe patch is HUGE, but makes the code 130 lines shorter\n(98 insertions(+), 228 deletions(-)).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a94b35184bf095b885ca80099381f8547d5be3a",
      "tree": "7cd39d3c18ad60b822a410b61b1cb573922525e5",
      "parents": [
        "53ccaae1ef749ef87a484a0aa5351c557c0a690e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Dec 20 14:02:40 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 20 14:02:40 2007 -0800"
      },
      "message": "[PKT_SCHED]: Spelling fixes\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5f1a485d5905aa641f33009019b3699076666a4c",
      "tree": "8bdcb81a47090cc3b34b1de7159b981e1c55b88b",
      "parents": [
        "9418d5dc9ba40b88737580457bf3b7c63c60ec43"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Tue Nov 13 20:40:55 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 13 20:40:55 2007 -0800"
      },
      "message": "[PKT_SCHED]: Check subqueue status before calling hard_start_xmit\n\nThe only qdiscs that check subqueue state before dequeue\u0027ing are PRIO\nand RR.  The other qdiscs, including the default pfifo_fast qdisc,\nwill allow traffic bound for subqueue 0 through to hard_start_xmit.\nThe check for netif_queue_stopped() is done above in pkt_sched.h, so\nit is unnecessary for qdisc_restart().  However, if the underlying\ndriver is multiqueue capable, and only sets queue states on subqueues,\nthis will allow packets to enter the driver when it\u0027s currently unable\nto process packets, resulting in expensive requeues and driver\nentries.  This patch re-adds the check for the subqueue status before\ncalling hard_start_xmit, so we can try and avoid the driver entry when\nthe queues are stopped.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b226801676d9533d09da511eb379fe970fa1a770",
      "tree": "f4ad60091e226c9c93deaa9353849b6dea1c0c0e",
      "parents": [
        "78608ba0326f1448f9a10dbb402a38192559f639"
      ],
      "author": {
        "name": "Radu Rendec",
        "email": "radu.rendec@ines.ro",
        "time": "Sat Nov 10 21:54:50 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 10 21:54:50 2007 -0800"
      },
      "message": "[PKT_SCHED] CLS_U32: Use ffs() instead of C code on hash mask to get first set bit.\n\nComputing the rank of the first set bit in the hash mask (for using later\nin u32_hash_fold()) was done with plain C code. Using ffs() instead makes\nthe code more readable and improves performance (since ffs() is better\noptimized in assembler).\n\nUsing the conditional operator on hash mask before applying ntohl() also\nsaves one ntohl() call if mask is 0.\n\nSigned-off-by: Radu Rendec \u003cradu.rendec@ines.ro\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@o2.pl\u003e\nAcked-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "543821c6f5dea5221426eaf1eac98b100249c7ac",
      "tree": "a2664eca43694b3f8e7326179038b32fd13de356",
      "parents": [
        "40208d71e0c6b5f912b185e637272b6481fcef3f"
      ],
      "author": {
        "name": "Radu Rendec",
        "email": "radu.rendec@ines.ro",
        "time": "Wed Nov 07 01:20:12 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:11:45 2007 -0800"
      },
      "message": "[PKT_SCHED] CLS_U32: Fix endianness problem with u32 classifier hash masks.\n\nWhile trying to implement u32 hashes in my shaping machine I ran into\na possible bug in the u32 hash/bucket computing algorithm\n(net/sched/cls_u32.c).\n\nThe problem occurs only with hash masks that extend over the octet\nboundary, on little endian machines (where htonl() actually does\nsomething).\n\nLet\u0027s say that I would like to use 0x3fc0 as the hash mask. This means\n8 contiguous \"1\" bits starting at b6. With such a mask, the expected\n(and logical) behavior is to hash any address in, for instance,\n192.168.0.0/26 in bucket 0, then any address in 192.168.0.64/26 in\nbucket 1, then 192.168.0.128/26 in bucket 2 and so on.\n\nThis is exactly what would happen on a big endian machine, but on\nlittle endian machines, what would actually happen with current\nimplementation is 0x3fc0 being reversed (into 0xc03f0000) by htonl()\nin the userspace tool and then applied to 192.168.x.x in the u32\nclassifier. When shifting right by 16 bits (rank of first \"1\" bit in\nthe reversed mask) and applying the divisor mask (0xff for divisor\n256), what would actually remain is 0x3f applied on the \"168\" octet of\nthe address.\n\nOne could say is this can be easily worked around by taking endianness\ninto account in userspace and supplying an appropriate mask (0xfc03)\nthat would be turned into contiguous \"1\" bits when reversed\n(0x03fc0000). But the actual problem is the network address (inside\nthe packet) not being converted to host order, but used as a\nhost-order value when computing the bucket.\n\nLet\u0027s say the network address is written as n31 n30 ... n0, with n0\nbeing the least significant bit. When used directly (without any\nconversion) on a little endian machine, it becomes n7 ... n0 n8 ..n15\netc in the machine\u0027s registers. Thus bits n7 and n8 would no longer be\nadjacent and 192.168.64.0/26 and 192.168.128.0/26 would no longer be\nconsecutive.\n\nThe fix is to apply ntohl() on the hmask before computing fshift,\nand in u32_hash_fold() convert the packet data to host order before\nshifting down by fshift.\n\nWith helpful feedback from Jamal Hadi Salim and Jarek Poplawski.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f9f8311a08c0d95c70261264a2b47f2ae99683a",
      "tree": "4bb68c56e60535f40415077462223fd64f920f31",
      "parents": [
        "c62cf5cb173a5b8446e513a14448460cad435db2"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "johnpol@2ka.mipt.ru",
        "time": "Tue Nov 06 03:08:09 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Nov 07 04:09:17 2007 -0800"
      },
      "message": "[PKT_SCHED]: Fix OOPS when removing devices from a teql queuing discipline\n\ntecl_reset() is called from deactivate and qdisc is set to noop already,\nbut subsequent teql_xmit does not know about it and dereference private\ndata as teql qdisc and thus oopses.\nnot catch it first :)\n\nSigned-off-by: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a057ae3c104dd2c661e55d2af37e70d168c65e00",
      "tree": "5efaef5d891f64c8de7d5dde0f61c9d6d0e9e243",
      "parents": [
        "12da81d11a34d3bdef52d731cc75f7ec72d0e815"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Fri Oct 26 02:47:54 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 26 02:47:54 2007 -0700"
      },
      "message": "[NET_CLS_ACT]: Use skb_act_clone\n\nclean skb_clone of any signs of CONFIG_NET_CLS_ACT and\nhave mirred us skb_act_clone()\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0034622693ad21d6b341a1b51e766f72d1ef512e",
      "tree": "be75bb46f9c51a0cf2f6262462710a747b528235",
      "parents": [
        "6a5f44d7a048c97b8bae8ce464c97b8fad61ff99"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Oct 23 20:50:58 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 23 21:27:53 2007 -0700"
      },
      "message": "[PKT_SCHED]: Fix sch_prio.c build with CONFIG_NETDEVICES_MULTIQUEUE\n\nFix one more user of netiff_subqueue_stopped. To check for the\nqueue id one must use the __netiff_subqueue_stoped call.\n\nThis run out of my sight when I made the:\n\n668f895a85b0c3a62a690425145f13dabebebd7a\n[NET]: Hide the queue_mapping field inside netif_subqueue_stopped\n\ncommit :(\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "668f895a85b0c3a62a690425145f13dabebebd7a",
      "tree": "24a10711c3c2d7d6bf710b99d36a1510de184566",
      "parents": [
        "4e3ab47a547616e583c7a5458beced6aa34c8ef3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Oct 21 17:01:56 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:56 2007 -0700"
      },
      "message": "[NET]: Hide the queue_mapping field inside netif_subqueue_stopped\n\nMany places get the queue_mapping field from skb to pass it to the\nnetif_subqueue_stopped() which will be 0 in any case.\n\nMake the helper that works with sk_buff\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4e3ab47a547616e583c7a5458beced6aa34c8ef3",
      "tree": "b889a8a472c657f706f91c4831c2fd5ee19f6a4e",
      "parents": [
        "dfa4091129019959f4608756f76dc687495287ad"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Sun Oct 21 17:01:29 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:56 2007 -0700"
      },
      "message": "[NET]: Make and use skb_get_queue_mapping\n\nMake the helper for getting the field, symmetrical to\nthe \"set\" one. Return 0 if CONFIG_NETDEVICES_MULTIQUEUE\u003dn\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3a4fa0a25da81600ea0bcd75692ae8ca6050d165",
      "tree": "a4de1662e645c029cf3cf58f0646cbb1959861dc",
      "parents": [
        "18735dd8d2d37031b97f9e9e106acbaed01eb896"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "message": "Fix misspellings of \"system\", \"controller\", \"interrupt\" and \"necessary\".\n\nFix the various misspellings of \"system\", controller\", \"interrupt\" and\n\"[un]necessary\".\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "ce0e32e65f70337e0732c97499b643205fa8ea31",
      "tree": "3f3a4a48210a1e4208a8ed5507f2e3269a7b79da",
      "parents": [
        "a25de534f89c515c82d3553c42d3bb02c2d1a7da"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Oct 18 22:37:58 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 18 22:37:58 2007 -0700"
      },
      "message": "[NET]: Fix possible dev_deactivate race condition\n\nThe function dev_deactivate is supposed to only return when\nall outstanding transmissions have completed.  Unfortunately\nit is possible for store operations in the driver\u0027s transmit\nfunction to only become visible after dev_deactivate returns.\n\nThis patch fixes this by taking the queue lock after we see\nthe end of the queue run.  This ensures that all effects of\nany previous transmit calls are visible.\n\nIf however we detect that there is another queue run occuring,\nthen we\u0027ll warn about it because this should never happen as\nwe have pointed dev-\u003eqdisc to noop_qdisc within the same queue\nlock earlier in the functino.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "85ef3e5cad3dfc6bf84bf2487e9f26a01983c196",
      "tree": "979a2e3976462fa075b27d74262a4f277f54c66d",
      "parents": [
        "9b013e05e0289c190a53d78ca029e2f21c0e4485"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Oct 18 21:56:38 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 18 21:56:38 2007 -0700"
      },
      "message": "[NET]: QoS/Sched as menuconfig\n\nConvert \"QoS and/or fair queueing\" to menuconfig.\nThis makes it easy for someone to disable all sub-options with\none config symbol.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bfaae0f04c68bafc12ec50c6922d71a90deea3e2",
      "tree": "91153680d9ad5ed9aa3d29207fbbeecc82bbb738",
      "parents": [
        "45542479fb261342d5244869cf3ca4636b7ffd43"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Oct 17 23:26:43 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 17 23:26:43 2007 -0700"
      },
      "message": "[NET]: fix carrier-on bug?\n\nWhile looking at a net driver with the following construct,\n\n\tif (!netif_carrier_ok(dev))\n\t\tnetif_carrier_on(dev);\n\nit stuck me that the netif_carrier_ok() check was redundant, since\nnetif_carrier_on() checks bit __LINK_STATE_NOCARRIER anyway.  This is\nthe same reason why netif_queue_stopped() need not be called prior to\nnetif_wake_queue().\n\nThis is true, but there is however an unwanted side effect from assuming\nthat netif_carrier_on() can be called multiple times:  it touches the\nwatchdog, regardless of pre-existing carrier state.\n\nThe fix:  move watchdog-up inside the bit-cleared code path.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3db05fea51cdb162cfa8f69e9cfb9e228919d2a9",
      "tree": "0d0e4c18cdf2dcb7321035f6614628a2ddfb502d",
      "parents": [
        "2ca7b0ac022aa0158599178fe1056b1ba9ec8b97"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 15 00:53:15 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 15 12:26:29 2007 -0700"
      },
      "message": "[NETFILTER]: Replace sk_buff ** with sk_buff *\n\nWith all the users of the double pointers removed, this patch mops up by\nfinally replacing all occurances of sk_buff ** in the netfilter API by\nsk_buff *.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c0cfc135829b98f7a4894938652f9ef78e24237",
      "tree": "0036bb59e5d0df59d04c22c83fa265936e36939f",
      "parents": [
        "32d1316b91424423d7b44944f18cdaca268f3db2"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Wed Oct 10 16:32:41 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:55:59 2007 -0700"
      },
      "message": "[NET_SCHED]: Show timer resolution instead of clock resolution in /proc/net/psched\n\nThe fourth parameter of /proc/net/psched is supposed to show the timer\nresultion and is used by HTB userspace to calculate the necessary\nburst rate. Currently we show the clock resolution, which results in a\ntoo low burst rate when the two differ.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cfcabdcc2d5a810208e5bb3974121b7ed60119aa",
      "tree": "1aed711eeecc5a303b57f1fc47e1b5746e8a72c2",
      "parents": [
        "de83c058af25aa97ed4864abab11e90e8dead6e2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:59:42 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:54:48 2007 -0700"
      },
      "message": "[NET]: sparse warning fixes\n\nFix a bunch of sparse warnings. Mostly about 0 used as\nNULL pointer, and shadowed variable declarations.\nOne notable case was that hash size should have been unsigned.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4219952356baa162368f2f5dab6421a5dbc5e15",
      "tree": "4d99027b3453853c79a32793c4ebda76c6386169",
      "parents": [
        "ce1234d299f3823ea07019c0f7b7b0bcb81ee7a0"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Sep 27 12:48:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:53:11 2007 -0700"
      },
      "message": "[PKT_SCHED]: Add stateless NAT\n\nStateless NAT is useful in controlled environments where restrictions are\nplaced on through traffic such that we don\u0027t need connection tracking to\ncorrectly NAT protocol-specific data.\n\nIn particular, this is of interest when the number of flows or the number\nof addresses being NATed is large, or if connection tracking information\nhas to be replicated and where it is not practical to do so.\n\nPreviously we had stateless NAT functionality which was integrated into\nthe IPv4 routing subsystem.  This was a great solution as long as the NAT\nworked on a subnet to subnet basis such that the number of NAT rules was\nrelatively small.  The reason is that for SNAT the routing based system\nhad to perform a linear scan through the rules.\n\nIf the number of rules is large then major renovations would have take\nplace in the routing subsystem to make this practical.\n\nFor the time being, the least intrusive way of achieving this is to use\nthe u32 classifier written by Alexey Kuznetsov along with the actions\ninfrastructure implemented by Jamal Hadi Salim.\n\nThe following patch is an attempt at this problem by creating a new nat\naction that can be invoked from u32 hash tables which would allow large\nnumber of stateless NAT rules that can be used/updated in constant time.\n\nThe actual NAT code is mostly based on the previous stateless NAT code\nwritten by Alexey.  In future we might be able to utilise the protocol\nNAT code from netfilter to improve support for other protocols.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3b04ddde02cf1b6f14f2697da5c20eca5715017f",
      "tree": "9da1341a5a399a507b5ea6bf5a3047506b8d8f8f",
      "parents": [
        "b95cce3576813ac3f86bafa6b5daaaaf7574b0fe"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:40:57 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:52 2007 -0700"
      },
      "message": "[NET]: Move hardware header operations out of netdevice.\n\nSince hardware header operations are part of the protocol class\nnot the device instance, make them into a separate object and\nsave memory.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c4e85813d0a94eeb8bf813397a4907bdd7bb610",
      "tree": "53ee948abc930bb1c5cd270c490f87fda5eb45b3",
      "parents": [
        "4c94f8c0c9a82fad84bc5df453aff755cfed70b7"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Tue Oct 09 01:36:32 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:50 2007 -0700"
      },
      "message": "[NET]: Wrap netdevice hardware header creation.\n\nAdd inline for common usage of hardware header creation, and\nfix bug in IPV6 mcast where the assumption about negative return is\nan errno. Negative return from hard_header means not enough space\nwas available,(ie -N bytes).\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8236632fb3532188c75656421e29f5ab51b47db7",
      "tree": "e93f1c710c420fb643ddb424f0db974ac4e064f2",
      "parents": [
        "854d8363f37491c955b0edc60d37b62f3d71bb67"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Tue Sep 25 19:27:13 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:52:15 2007 -0700"
      },
      "message": "[NET_SCHED]: explict hold dev tx lock\n\nFor N cpus, with full throttle traffic on all N CPUs, funneling traffic\nto the same ethernet device, the devices queue lock is contended by all\nN CPUs constantly. The TX lock is only contended by a max of 2 CPUS.\nIn the current mode of operation, after all the work of entering the\ndequeue region, we may endup aborting the path if we are unable to get\nthe tx lock and go back to contend for the queue lock. As N goes up,\nthis gets worse.\n\nThe changes in this patch result in a small increase in performance\nwith a 4CPU (2xdual-core) with no irq binding. Both e1000 and tg3\nshowed similar behavior;\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10d024c1b2fd58af8362670d7d6e5ae52fc33353",
      "tree": "dbfb03c539986e2c1270385eb0083aaf0dfca8ab",
      "parents": [
        "596c5c97431eab8465739c169401ea611127b9ad"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Sep 17 13:11:17 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:51:13 2007 -0700"
      },
      "message": "[NET]: Nuke SET_MODULE_OWNER macro.\n\nIt\u0027s been a useless no-op for long enough in 2.6 so I figured it\u0027s time to\nremove it.  The number of people that could object because they\u0027re\nmaintaining unified 2.4 and 2.6 drivers is probably rather small.\n\n[ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e9bef55d3d062ee7a78fde2913ec87ca9305a1e0",
      "tree": "bb772650e7df49e94bd9c383b51f53bbb4e7bcab",
      "parents": [
        "b6fa1a4d746488a7de95ec16afcaf3247fedb003"
      ],
      "author": {
        "name": "Jesper Dangaard Brouer",
        "email": "hawk@comx.dk",
        "time": "Wed Sep 12 16:35:24 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:20 2007 -0700"
      },
      "message": "[NET_SCHED]: Cleanup L2T macros and handle oversized packets\n\nChange L2T (length to time) macros, in all rate based schedulers, to\ncall a common function qdisc_l2t() that does the rate table lookup.\nThis function handles if the packet size lookup is larger than the\nrate table, which often occurs with TSO enabled.\n\nSigned-off-by: Jesper Dangaard Brouer \u003chawk@comx.dk\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "881d966b48b035ab3f3aeaae0f3d3f9b584f45b2",
      "tree": "c579d59a4107cbbe9e2b85939bc0d496b815c887",
      "parents": [
        "b4b510290b056b86611757ce1175a230f1080f53"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Sep 17 11:56:21 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:10 2007 -0700"
      },
      "message": "[NET]: Make the device list and device lookups per namespace.\n\nThis patch makes most of the generic device layer network\nnamespace safe.  This patch makes dev_base_head a\nnetwork namespace variable, and then it picks up\na few associated variables.  The functions:\ndev_getbyhwaddr\ndev_getfirsthwbytype\ndev_get_by_flags\ndev_get_by_name\n__dev_get_by_name\ndev_get_by_index\n__dev_get_by_index\ndev_ioctl\ndev_ethtool\ndev_load\nwireless_process_ioctl\n\nwere modified to take a network namespace argument, and\ndeal with it.\n\nvlan_ioctl_set and brioctl_set were modified so their\nhooks will receive a network namespace argument.\n\nSo basically anthing in the core of the network stack that was\naffected to by the change of dev_base was modified to handle\nmultiple network namespaces.  The rest of the network stack was\nsimply modified to explicitly use \u0026init_net the initial network\nnamespace.  This can be fixed when those components of the network\nstack are modified to handle multiple network namespaces.\n\nFor now the ifindex generator is left global.\n\nFundametally ifindex numbers are per namespace, or else\nwe will have corner case problems with migration when\nwe get that far.\n\nAt the same time there are assumptions in the network stack\nthat the ifindex of a network device won\u0027t change.  Making\nthe ifindex number global seems a good compromise until\nthe network stack can cope with ifindex changes when\nyou change namespaces, and the like.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "457c4cbc5a3dde259d2a1f15d5f9785290397267",
      "tree": "a2ceee88780cbce27433b9a4434b3e9251efd81a",
      "parents": [
        "07feaebfcc10cd35e745c7073667935246494bee"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Sep 12 12:01:34 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:49:06 2007 -0700"
      },
      "message": "[NET]: Make /proc/net per network namespace\n\nThis patch makes /proc/net per network namespace.  It modifies the global\nvariables proc_net and proc_net_stat to be per network namespace.\nThe proc_net file helpers are modified to take a network namespace argument,\nand all of their callers are fixed to pass \u0026init_net for that argument.\nThis ensures that all of the /proc/net files are only visible and\nusable in the initial network namespace until the code behind them\nhas been updated to be handle multiple network namespaces.\n\nMaking /proc/net per namespace is necessary as at least some files\nin /proc/net depend upon the set of network devices which is per\nnetwork namespace, and even more files in /proc/net have contents\nthat are relevant to a single network namespace.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bea3348eef27e6044b6161fd04c3152215f96411",
      "tree": "f0990b263e5ce42505d290a4c346fe990bcd4c33",
      "parents": [
        "dde4e47e8fe333a5649a3fa0e7db1fa7c08d6158"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Wed Oct 03 16:41:36 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:47:45 2007 -0700"
      },
      "message": "[NET]: Make NAPI polling independent of struct net_device objects.\n\nSeveral devices have multiple independant RX queues per net\ndevice, and some have a single interrupt doorbell for several\nqueues.\n\nIn either case, it\u0027s easier to support layouts like that if the\nstructure representing the poll is independant from the net\ndevice itself.\n\nThe signature of the -\u003epoll() call back goes from:\n\n\tint foo_poll(struct net_device *dev, int *budget)\n\nto\n\n\tint foo_poll(struct napi_struct *napi, int budget)\n\nThe caller is returned the number of RX packets processed (or\nthe number of \"NAPI credits\" consumed if you want to get\nabstract).  The callee no longer messes around bumping\ndev-\u003equota, *budget, etc. because that is all handled in the\ncaller upon return.\n\nThe napi_struct is to be embedded in the device driver private data\nstructures.\n\nFurthermore, it is the driver\u0027s responsibility to disable all NAPI\ninstances in it\u0027s -\u003estop() device close handler.  Since the\nnapi_struct is privatized into the driver\u0027s private data structures,\nonly the driver knows how to get at all of the napi_struct instances\nit may have per-device.\n\nWith lots of help and suggestions from Rusty Russell, Roland Dreier,\nMichael Chan, Jeff Garzik, and Jamal Hadi Salim.\n\nBug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,\nJoseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.\n\n[ Ported to current tree and all drivers converted.  Integrated\n  Stephen\u0027s follow-on kerneldoc additions, and restored poll_list\n  handling to the old style to fix mutual exclusion issues.  -DaveM ]\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bf1b803b01b00c3801e0aa373ba0305f8278e260",
      "tree": "9a4e2f4a33009c168b7d22ce8c9fc32a44a5b132",
      "parents": [
        "891e6a931255238dddd08a7b306871240961a27f"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Sun Oct 07 23:57:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 07 23:57:45 2007 -0700"
      },
      "message": "[PKT_SCHED] cls_u32: error code isn\u0027t been propogated properly\n    \nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32740ddc1095e5e320bf961dda146bf97bc28adb",
      "tree": "613fccb815ed1c0a8e7712848a0ddea5d0d52b5e",
      "parents": [
        "3146b39c185f8a436d430132457e84fa1d8f8208"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kaber@ms2.inr.ac.ru",
        "time": "Sun Sep 30 17:51:33 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 01 21:01:23 2007 -0700"
      },
      "message": "[SFQ]: Remove artificial limitation for queue limit.\n\nThis is followup to Patrick\u0027s patch. A little optimization to enqueue\nroutine allows to remove artificial limitation on queue length.\n\nPlus, testing showed that hash function used by SFQ is too bad or even worse.\nIt does not even sweep the whole range of hash values.\nSwitched to Jenkins\u0027 hash.\n\nSigned-off-by: Alexey Kuznetsov \u003ckaber@ms2.inr.ac.ru\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5588b40d7c2bff75ee573ed42d1738c73ce24492",
      "tree": "ab075cd6d417054139ce9b0d90c4fff5aa59ab0a",
      "parents": [
        "1a03b81db96aeaac0276224f25c0701a1ba37318"
      ],
      "author": {
        "name": "Alexey Kuznetsov",
        "email": "kuznet@ms2.inr.ac.ru",
        "time": "Wed Sep 19 10:42:03 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 20 12:14:08 2007 -0700"
      },
      "message": "[PKT_SCHED]: Fix \u0027SFQ qdisc crashes with limit of 2 packets\u0027\n\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ddeee3ce7fbf0e800f2a26a76d6018b42b337cc2",
      "tree": "686d949a3ce1b80aa96bec276dc144cc33052f35",
      "parents": [
        "ce5d0b47f13f83dfb9fbb8ac91adad7120747aaf"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Sun Sep 16 14:54:05 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Sep 16 14:54:05 2007 -0700"
      },
      "message": "[PKT_SCHED]: sch_cbq.c: Shut up uninitialized variable warning\n\nnet/sched/sch_cbq.c: In function \u0027cbq_enqueue\u0027:\nnet/sched/sch_cbq.c:383: warning: \u0027ret\u0027 may be used uninitialized in this function\n\nhas been verified to be a bogus case. So let\u0027s shut it up.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1e992e52faa588667e1378a2573b4b8e3fa6670",
      "tree": "771f664db9e2d7119dfea92a117deeb89e7b55e5",
      "parents": [
        "4878809f711981a602cc562eb47994fc81ea0155"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Wed Sep 12 16:32:59 2007 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 14 16:43:05 2007 -0700"
      },
      "message": "[NET_SCHED] protect action config/dump from irqs\n\n(with no apologies to C Heston)\n\nOn Mon, 2007-10-09 at 21:00 +0800, Herbert Xu wrote:\nOn Sun, Sep 02, 2007 at 01:11:29PM +0000, Christian Kujau wrote:\n\u003e \u003e\n\u003e \u003e after upgrading to 2.6.23-rc5 (and applying davem\u0027s fix [0]), lockdep\n\u003e \u003e was quite noisy when I tried to shape my external (wireless) interface:\n\u003e \u003e\n\u003e \u003e [ 6400.534545] FahCore_78.exe/3552 just changed the state of lock:\n\u003e \u003e [ 6400.534713]  (\u0026dev-\u003eingress_lock){-+..}, at: [\u003cc038d595\u003e]\n\u003e \u003e netif_receive_skb+0x2d5/0x3c0\n\u003e \u003e [ 6400.534941] but this lock took another, soft-read-irq-unsafe lock in the\n\u003e \u003e past:\n\u003e \u003e [ 6400.535145]  (police_lock){-.--}\n\u003e\n\u003e This is a genuine dead-lock.  The police lock can be taken\n\u003e for reading with softirqs on.  If a second CPU tries to take\n\u003e the police lock for writing, while holding the ingress lock,\n\u003e then a softirq on the first CPU can dead-lock when it tries\n\u003e to get the ingress lock.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nAcked-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dbaaa07a60edf71670b484a65e14400ab40c84f7",
      "tree": "2cc33dfd6509c6cac456ae0ccfe386333aaec70a",
      "parents": [
        "b4a488d1824a2cc3514f9ee1298d805bd5edc893"
      ],
      "author": {
        "name": "Lucas Nussbaum",
        "email": "lucas.nussbaum@imag.fr",
        "time": "Thu Aug 30 22:35:46 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 30 22:35:46 2007 -0700"
      },
      "message": "[NET_SCHED] sch_prio.c: remove duplicate call of tc_classify()\n\nWhen CONFIG_NET_CLS_ACT is enabled, tc_classify() is called twice in\nprio_classify(). This causes \"interesting\" behaviour: with the setup\nbelow, packets are duplicated, sent twice to ifb0, and then loop in and\nout of ifb0.\n\nThe patch uses the previously calculated return value in the switch,\nwhich is probably what Patrick had in mind in commit\nbdba91ec70fb5ccbdeb1c7068319adc6ea9e1a7d -- maybe Patrick can\ndouble-check this?\n\n-- example setup --\nifconfig ifb0 up\ntc qdisc add dev ifb0 root netem delay 2s\ntc qdisc add dev $ETH root handle 1: prio\ntc filter add dev $ETH parent 1: protocol ip prio 10 u32 \\\n match ip dst 172.24.110.6/32 flowid 1:1 \\\n action mirred egress redirect dev ifb0\nping -c1 172.24.110.6\n\nSigned-off-by: Lucas Nussbaum \u003clucas.nussbaum@imag.fr\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a26f4cdc207db14a8e7192bac5a7c84d9e2390a",
      "tree": "70c90bec7cfe237ea8219382509872138e333f3b",
      "parents": [
        "703310e645c639a84e7f4b35d8a508acde9ef360"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Fri Aug 10 15:18:31 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 13 22:52:04 2007 -0700"
      },
      "message": "[PKT_SCHED]: Clean up duplicate includes in net/sched/\n\nThis patch cleans up duplicate includes in\n\tnet/sched/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0773192b0f8914222cd27e682c49f978a6c7860a",
      "tree": "0703cbc095825c3839422347c91fa0de03d5e180",
      "parents": [
        "ffc8fefaf289fa485bc5c33e71572e6ce559d569"
      ],
      "author": {
        "name": "Peter P Waskiewicz Jr",
        "email": "peter.p.waskiewicz.jr@intel.com",
        "time": "Mon Jul 30 17:13:45 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:20 2007 -0700"
      },
      "message": "[NET]: Fix prio_tune() handling of root qdisc.\n\nFix the check in prio_tune() to see if sch-\u003eparent is TC_H_ROOT instead of\nsch-\u003ehandle to load or reject the qdisc for multiqueue devices.\n\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ffc8fefaf289fa485bc5c33e71572e6ce559d569",
      "tree": "d96daba747cb1da1d4b352a4572965d2788e2f0a",
      "parents": [
        "bdba91ec70fb5ccbdeb1c7068319adc6ea9e1a7d"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "trash@kaber.net",
        "time": "Mon Jul 30 17:11:50 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jul 31 02:28:19 2007 -0700"
      },
      "message": "[NET]: Fix sch_api to properly set sch-\u003eparent on the root.\n\nFix sch_api to correctly set sch-\u003eparent for both ingress and egress\nqdiscs in qdisc_create().\n\nSigned-off-by: Patrick McHardy \u003ctrash@kaber.net\u003e\nSigned-off-by: Peter P Waskiewicz Jr \u003cpeter.p.waskiewicz.jr@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "bdba91ec70fb5ccbdeb1c7068319adc6ea9e1a7d"
}
