)]}'
{
  "log": [
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6338a53a2bd02d5878ab449371323364b7cc7694",
      "tree": "461c4acae130771b9856715bc2cfdc341b6e5964",
      "parents": [
        "8064b3cf750e71fdaf306abb4433a93d0f45f4c9",
        "18cf0d0784b4a634472ed24d0d7ca1c721d93e90"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 18 23:32:49 2013 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 18 23:34:21 2013 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net into net\n\nPull in \u0027net\u0027 to take in the bug fixes that didn\u0027t make it into\n3.8-final.\n\nAlso, deal with the semantic conflict of the change made to\nnet/ipv6/xfrm6_policy.c   A missing rt6-\u003en neighbour release\nwas added to \u0027net\u0027, but in \u0027net-next\u0027 we no longer cache the\nneighbour entries in the ipv6 routes so that change is not\nappropriate there.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dec34fb0f5b7873de45132a84a3af29e61084a6b",
      "tree": "c3ab8b7a8d57f59bf5810535c78ce5fbe13ae8eb",
      "parents": [
        "c5c73dca596894c47760e4e955877b731ffabf57"
      ],
      "author": {
        "name": "Ying Xue",
        "email": "ying.xue@windriver.com",
        "time": "Fri Feb 15 22:28:25 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 18 12:29:52 2013 -0500"
      },
      "message": "net: fix a compile error when SOCK_REFCNT_DEBUG is enabled\n\nWhen SOCK_REFCNT_DEBUG is enabled, below build error is met:\n\nkernel/sysctl_binary.o: In function `sk_refcnt_debug_release\u0027:\ninclude/net/sock.h:1025: multiple definition of `sk_refcnt_debug_release\u0027\nkernel/sysctl.o:include/net/sock.h:1025: first defined here\nkernel/audit.o: In function `sk_refcnt_debug_release\u0027:\ninclude/net/sock.h:1025: multiple definition of `sk_refcnt_debug_release\u0027\nkernel/sysctl.o:include/net/sock.h:1025: first defined here\nmake[1]: *** [kernel/built-in.o] Error 1\nmake: *** [kernel] Error 2\n\nSo we decide to make sk_refcnt_debug_release static to eliminate\nthe error.\n\nSigned-off-by: Ying Xue \u003cying.xue@windriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e36cbb344575e481167e090f0926701f83207d6",
      "tree": "c451ec51b9197d5ad9fe64718e9fb1ae1f12049f",
      "parents": [
        "cec771d646d6c9a6f123b50e132ab142342dcb97"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Tue Jan 22 21:09:51 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 00:15:28 2013 -0500"
      },
      "message": "net: add RCU annotation to sk_dst_cache field\n\nsock-\u003esk_dst_cache is protected by RCU.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "055dc21a1d1d219608cd4baac7d0683fb2cbbe8a",
      "tree": "23e66bde4668a92585f62d15c759c53fd4d0892f",
      "parents": [
        "4a633a602c26497b8285a202830829d3be007c7b"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Tue Jan 22 09:49:50 2013 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 23 13:44:00 2013 -0500"
      },
      "message": "soreuseport: infrastructure\n\nDefinitions and macros for implementing soreusport.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d59577b6ffd313d0ab3be39cb1ab47e29bdc9182",
      "tree": "8e3e40ac4fd723778af191af78e8f40519338709",
      "parents": [
        "5bd30d398792eb6351da2087fe81bbf755900991"
      ],
      "author": {
        "name": "Vincent Bernat",
        "email": "bernat@luffy.cx",
        "time": "Wed Jan 16 22:55:49 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 17 03:21:25 2013 -0500"
      },
      "message": "sk-filter: Add ability to lock a socket filter program\n\nWhile a privileged program can open a raw socket, attach some\nrestrictive filter and drop its privileges (or send the socket to an\nunprivileged program through some Unix socket), the filter can still\nbe removed or modified by the unprivileged program. This commit adds a\nsocket option to lock the filter (SO_LOCK_FILTER) preventing any\nmodification of a socket filter program.\n\nThis is similar to OpenBSD BIOCLOCK ioctl on bpf sockets, except even\nroot is not allowed change/drop the filter.\n\nThe state of the lock can be read with getsockopt(). No error is\ntriggered if the state is not changed. -EPERM is returned when a user\ntries to remove the lock or to change/remove the filter while the lock\nis active. The check is done directly in sk_attach_filter() and\nsk_detach_filter() and does not affect only setsockopt() syscall.\n\nSigned-off-by: Vincent Bernat \u003cbernat@luffy.cx\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3d0dcfbd8fa2a1e63fabb5f8edac8b8a27860d98",
      "tree": "2f318c33150ddbf86580e7128c1905b232aef6ac",
      "parents": [
        "ccb6e984a1f0ee03c3e2607809fe3809fa872a2e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizefan@huawei.com",
        "time": "Tue Dec 25 20:48:24 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 26 14:16:23 2012 -0800"
      },
      "message": "netprio_cgroup: define sk_cgrp_prioidx only if NETPRIO_CGROUP is enabled\n\nsock-\u003esk_cgrp_prioidx won\u0027t be used at all if CONFIG_NETPRIO_CGROUP\u003dn.\n\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2013a13e68354e0c8f3696b69701803e13fb737",
      "tree": "a7e1da6bfad1aa2afd83f401874d606269ce90b4",
      "parents": [
        "dadfab4873256d2145640c0ce468fcbfb48977fe",
        "106f9d9337f65bd428c0c79f650e3489e458d771"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 13 12:00:02 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial branch from Jiri Kosina:\n \"Usual stuff -- comment/printk typo fixes, documentation updates, dead\n  code elimination.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  HOWTO: fix double words typo\n  x86 mtrr: fix comment typo in mtrr_bp_init\n  propagate name change to comments in kernel source\n  doc: Update the name of profiling based on sysfs\n  treewide: Fix typos in various drivers\n  treewide: Fix typos in various Kconfig\n  wireless: mwifiex: Fix typo in wireless/mwifiex driver\n  messages: i2o: Fix typo in messages/i2o\n  scripts/kernel-doc: check that non-void fcts describe their return value\n  Kernel-doc: Convention: Use a \"Return\" section to describe return values\n  radeon: Fix typo and copy/paste error in comments\n  doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c\n  various: Fix spelling of \"asynchronous\" in comments.\n  Fix misspellings of \"whether\" in comments.\n  eisa: Fix spelling of \"asynchronous\".\n  various: Fix spelling of \"registered\" in comments.\n  doc: fix quite a few typos within Documentation\n  target: iscsi: fix comment typos in target/iscsi drivers\n  treewide: fix typo of \"suport\" in various comments and Kconfig\n  treewide: fix typo of \"suppport\" in various comments\n  ...\n"
    },
    {
      "commit": "077b393d05915f04e2629bfc47c6fce95cae7d3f",
      "tree": "5eac1986bc8d1d8dd4cef0b0c07909773ecc3ebf",
      "parents": [
        "049b467d7a57e7b978ce063ee3639670f383fb5c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Dec 02 07:33:10 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 02 20:23:01 2012 -0500"
      },
      "message": "net: fix sparse endianness warnings on sock_common\n\n# make C\u003d2 CF\u003d-D__CHECK_ENDIAN__ net/ipv4/inet_hashtables.o\n...\nnet/ipv4/inet_hashtables.c:242:7: warning: restricted __portpair degrades to integer\nnet/ipv4/inet_hashtables.c:242:7: warning: restricted __addrpair degrades to integer\n...\n\nMove __portpair/__addrpair from include/net/inet_hashtables.h\nto include/net/sock.h where we need them in struct sock_common\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Ling Ma \u003cling.ma.program@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce43b03e8889475817d427b1f3724c7e294b76eb",
      "tree": "0cd6679992bd810371620fcab52c24ce39a89aa8",
      "parents": [
        "b02a80674ea3905926c1a942426008d732c47339"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Nov 30 09:49:27 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 30 15:02:56 2012 -0500"
      },
      "message": "net: move inet_dport/inet_num in sock_common\n\ncommit 68835aba4d9b (net: optimize INET input path further)\nmoved some fields used for tcp/udp sockets lookup in the first cache\nline of struct sock_common.\n\nThis patch moves inet_dport/inet_num as well, filling a 32bit hole\non 64 bit arches and reducing number of cache line misses in lookups.\n\nAlso change INET_MATCH()/INET_TW_MATCH() to perform the ports match\nbefore addresses match, as this check is more discriminant.\n\nRemove the hash check from MATCH() macros because we dont need to\nre validate the hash value after taking a refcount on socket, and\nuse likely/unlikely compiler hints, as the sk_hash/hash check\nmakes the following conditional tests 100% predicted by cpu.\n\nIntroduce skc_addrpair/skc_portpair pair values to better\ndocument the alignment requirements of the port/addr pairs\nused in the various MATCH() macros, and remove some casts.\n\nThe namespace check can also be done at last.\n\nThis slightly improves TCP/UDP lookup times.\n\nIP/TCP early demux needs inet-\u003erx_dst_ifindex and\nTCP needs inet-\u003emin_ttl, lets group them together in same cache line.\n\nWith help from Ben Hutchings \u0026 Joe Perches.\n\nIdea of this patch came after Ling Ma proposal to move skc_hash\nto the beginning of struct sock_common, and should allow him\nto submit a final version of his patch. My tests show an improvement\ndoing so.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Ling Ma \u003cling.ma.program@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "48fc7f7e787dd65ffe88521bce31f4062ba273eb",
      "tree": "0ee37107cf965a6b2d6d85ed3686ef1d6a622bef",
      "parents": [
        "53f698cdeb0e1af2799a515b578a779943c43482"
      ],
      "author": {
        "name": "Adam Buchbinder",
        "email": "adam.buchbinder@gmail.com",
        "time": "Wed Sep 19 21:48:00 2012 -0400"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Nov 19 14:31:35 2012 +0100"
      },
      "message": "Fix misspellings of \"whether\" in comments.\n\n\"Whether\" is misspelled in various comments across the tree; this\nfixes them. No code changes.\n\nSigned-off-by: Adam Buchbinder \u003cadam.buchbinder@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "aecdc33e111b2c447b622e287c6003726daa1426",
      "tree": "3e7657eae4b785e1a1fb5dfb225dbae0b2f0cfc6",
      "parents": [
        "a20acf99f75e49271381d65db097c9763060a1e8",
        "a3a6cab5ea10cca64d036851fe0d932448f2fe4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking changes from David Miller:\n\n 1) GRE now works over ipv6, from Dmitry Kozlov.\n\n 2) Make SCTP more network namespace aware, from Eric Biederman.\n\n 3) TEAM driver now works with non-ethernet devices, from Jiri Pirko.\n\n 4) Make openvswitch network namespace aware, from Pravin B Shelar.\n\n 5) IPV6 NAT implementation, from Patrick McHardy.\n\n 6) Server side support for TCP Fast Open, from Jerry Chu and others.\n\n 7) Packet BPF filter supports MOD and XOR, from Eric Dumazet and Daniel\n    Borkmann.\n\n 8) Increate the loopback default MTU to 64K, from Eric Dumazet.\n\n 9) Use a per-task rather than per-socket page fragment allocator for\n    outgoing networking traffic.  This benefits processes that have very\n    many mostly idle sockets, which is quite common.\n\n    From Eric Dumazet.\n\n10) Use up to 32K for page fragment allocations, with fallbacks to\n    smaller sizes when higher order page allocations fail.  Benefits are\n    a) less segments for driver to process b) less calls to page\n    allocator c) less waste of space.\n\n    From Eric Dumazet.\n\n11) Allow GRO to be used on GRE tunnels, from Eric Dumazet.\n\n12) VXLAN device driver, one way to handle VLAN issues such as the\n    limitation of 4096 VLAN IDs yet still have some level of isolation.\n    From Stephen Hemminger.\n\n13) As usual there is a large boatload of driver changes, with the scale\n    perhaps tilted towards the wireless side this time around.\n\nFix up various fairly trivial conflicts, mostly caused by the user\nnamespace changes.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1012 commits)\n  hyperv: Add buffer for extended info after the RNDIS response message.\n  hyperv: Report actual status in receive completion packet\n  hyperv: Remove extra allocated space for recv_pkt_list elements\n  hyperv: Fix page buffer handling in rndis_filter_send_request()\n  hyperv: Fix the missing return value in rndis_filter_set_packet_filter()\n  hyperv: Fix the max_xfer_size in RNDIS initialization\n  vxlan: put UDP socket in correct namespace\n  vxlan: Depend on CONFIG_INET\n  sfc: Fix the reported priorities of different filter types\n  sfc: Remove EFX_FILTER_FLAG_RX_OVERRIDE_IP\n  sfc: Fix loopback self-test with separate_tx_channels\u003d1\n  sfc: Fix MCDI structure field lookup\n  sfc: Add parentheses around use of bitfield macro arguments\n  sfc: Fix null function pointer in efx_sriov_channel_type\n  vxlan: virtual extensible lan\n  igmp: export symbol ip_mc_leave_group\n  netlink: add attributes to fdb interface\n  tg3: unconditionally select HWMON support when tg3 is enabled.\n  Revert \"net: ti cpsw ethernet: allow reading phy interface mode from DT\"\n  gre: fix sparse warning\n  ...\n"
    },
    {
      "commit": "437589a74b6a590d175f86cf9f7b2efcee7765e7",
      "tree": "37bf8635b1356d80ef002b00e84f3faf3d555a63",
      "parents": [
        "68d47a137c3bef754923bccf73fb639c9b0bbd5e",
        "72235465864d84cedb2d9f26f8e1de824ee20339"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 11:11:09 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nPull user namespace changes from Eric Biederman:\n \"This is a mostly modest set of changes to enable basic user namespace\n  support.  This allows the code to code to compile with user namespaces\n  enabled and removes the assumption there is only the initial user\n  namespace.  Everything is converted except for the most complex of the\n  filesystems: autofs4, 9p, afs, ceph, cifs, coda, fuse, gfs2, ncpfs,\n  nfs, ocfs2 and xfs as those patches need a bit more review.\n\n  The strategy is to push kuid_t and kgid_t values are far down into\n  subsystems and filesystems as reasonable.  Leaving the make_kuid and\n  from_kuid operations to happen at the edge of userspace, as the values\n  come off the disk, and as the values come in from the network.\n  Letting compile type incompatible compile errors (present when user\n  namespaces are enabled) guide me to find the issues.\n\n  The most tricky areas have been the places where we had an implicit\n  union of uid and gid values and were storing them in an unsigned int.\n  Those places were converted into explicit unions.  I made certain to\n  handle those places with simple trivial patches.\n\n  Out of that work I discovered we have generic interfaces for storing\n  quota by projid.  I had never heard of the project identifiers before.\n  Adding full user namespace support for project identifiers accounts\n  for most of the code size growth in my git tree.\n\n  Ultimately there will be work to relax privlige checks from\n  \"capable(FOO)\" to \"ns_capable(user_ns, FOO)\" where it is safe allowing\n  root in a user names to do those things that today we only forbid to\n  non-root users because it will confuse suid root applications.\n\n  While I was pushing kuid_t and kgid_t changes deep into the audit code\n  I made a few other cleanups.  I capitalized on the fact we process\n  netlink messages in the context of the message sender.  I removed\n  usage of NETLINK_CRED, and started directly using current-\u003etty.\n\n  Some of these patches have also made it into maintainer trees, with no\n  problems from identical code from different trees showing up in\n  linux-next.\n\n  After reading through all of this code I feel like I might be able to\n  win a game of kernel trivial pursuit.\"\n\nFix up some fairly trivial conflicts in netfilter uid/git logging code.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (107 commits)\n  userns: Convert the ufs filesystem to use kuid/kgid where appropriate\n  userns: Convert the udf filesystem to use kuid/kgid where appropriate\n  userns: Convert ubifs to use kuid/kgid\n  userns: Convert squashfs to use kuid/kgid where appropriate\n  userns: Convert reiserfs to use kuid and kgid where appropriate\n  userns: Convert jfs to use kuid/kgid where appropriate\n  userns: Convert jffs2 to use kuid and kgid where appropriate\n  userns: Convert hpfs to use kuid and kgid where appropriate\n  userns: Convert btrfs to use kuid/kgid where appropriate\n  userns: Convert bfs to use kuid/kgid where appropriate\n  userns: Convert affs to use kuid/kgid wherwe appropriate\n  userns: On alpha modify linux_to_osf_stat to use convert from kuids and kgids\n  userns: On ia64 deal with current_uid and current_gid being kuid and kgid\n  userns: On ppc convert current_uid from a kuid before printing.\n  userns: Convert s390 getting uid and gid system calls to use kuid and kgid\n  userns: Convert s390 hypfs to use kuid and kgid where appropriate\n  userns: Convert binder ipc to use kuids\n  userns: Teach security_path_chown to take kuids and kgids\n  userns: Add user namespace support to IMA\n  userns: Convert EVM to deal with kuids and kgids in it\u0027s hmac computation\n  ...\n"
    },
    {
      "commit": "c0e8a139a5bb8add02b4111e9e1957d810d7285e",
      "tree": "f5f0695c7553c0f651ea3c714191dedf76e06c78",
      "parents": [
        "033d9959ed2dc1029217d4165f80a71702dc578e",
        "a6f00298b2ceaf50b4ab00e6ee3eb0206ac72fac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 10:50:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 10:50:47 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup updates from Tejun Heo:\n\n - xattr support added.  The implementation is shared with tmpfs.  The\n   usage is restricted and intended to be used to manage per-cgroup\n   metadata by system software.  tmpfs changes are routed through this\n   branch with Hugh\u0027s permission.\n\n - cgroup subsystem ID handling simplified.\n\n* \u0027for-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: Define CGROUP_SUBSYS_COUNT according the configuration\n  cgroup: Assign subsystem IDs during compile time\n  cgroup: Do not depend on a given order when populating the subsys array\n  cgroup: Wrap subsystem selection macro\n  cgroup: Remove CGROUP_BUILTIN_SUBSYS_COUNT\n  cgroup: net_prio: Do not define task_netpioidx() when not selected\n  cgroup: net_cls: Do not define task_cls_classid() when not selected\n  cgroup: net_cls: Move sock_update_classid() declaration to cls_cgroup.h\n  cgroup: trivial fixes for Documentation/cgroups/cgroups.txt\n  xattr: mark variable as uninitialized to make both gcc and smatch happy\n  fs: add missing documentation to simple_xattr functions\n  cgroup: add documentation on extended attributes usage\n  cgroup: rename subsys_bits to subsys_mask\n  cgroup: add xattr support\n  cgroup: revise how we re-populate root directory\n  xattr: extract simple_xattr code from tmpfs\n"
    },
    {
      "commit": "6a06e5e1bb217be077e1f8ee2745b4c5b1aa02db",
      "tree": "8faea23112a11f52524eb413f71b7b02712d8b53",
      "parents": [
        "d9f72f359e00a45a6cd7cc2d5121b04b9dc927e1",
        "6672d90fe779dc0dfffe027c3ede12609df091c2"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 28 14:40:49 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Sep 28 14:40:49 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/team/team.c\n\tdrivers/net/usb/qmi_wwan.c\n\tnet/batman-adv/bat_iv_ogm.c\n\tnet/ipv4/fib_frontend.c\n\tnet/ipv4/route.c\n\tnet/l2tp/l2tp_netlink.c\n\nThe team, fib_frontend, route, and l2tp_netlink conflicts were simply\noverlapping changes.\n\nqmi_wwan and bat_iv_ogm were of the \"use HEAD\" variety.\n\nWith help from Antonio Quartulli.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e2bcabec6ea5ba30dd2097dc1566e9957d14117c",
      "tree": "73c09343cd7302aea199bd1e991b81897f8ca5d7",
      "parents": [
        "f54ba7798848ce1385a71b36a2c997422c82220a"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Sep 25 11:32:13 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 27 18:42:00 2012 -0400"
      },
      "message": "net: remove sk_init() helper\n\nIt seems sk_init() has no value today and even does strange things :\n\n# grep . /proc/sys/net/core/?mem_*\n/proc/sys/net/core/rmem_default:212992\n/proc/sys/net/core/rmem_max:131071\n/proc/sys/net/core/wmem_default:212992\n/proc/sys/net/core/wmem_max:131071\n\nWe can remove it completely.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nReviewed-by: Shan Wei \u003cdavidshan@tencent.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5640f7685831e088fe6c2e1f863a6805962f8e81",
      "tree": "fb7660173338a45c27d610eb59ba20cf5c2b91b8",
      "parents": [
        "b98b8babd6e3370fadb7c6eaacb00eb2f6344a6c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Sep 23 23:04:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 24 16:31:37 2012 -0400"
      },
      "message": "net: use a per task frag allocator\n\nWe currently use a per socket order-0 page cache for tcp_sendmsg()\noperations.\n\nThis page is used to build fragments for skbs.\n\nIts done to increase probability of coalescing small write() into\nsingle segments in skbs still in write queue (not yet sent)\n\nBut it wastes a lot of memory for applications handling many mostly\nidle sockets, since each socket holds one page in sk-\u003esk_sndmsg_page\n\nIts also quite inefficient to build TSO 64KB packets, because we need\nabout 16 pages per skb on arches where PAGE_SIZE \u003d 4096, so we hit\npage allocator more than wanted.\n\nThis patch adds a per task frag allocator and uses bigger pages,\nif available. An automatic fallback is done in case of memory pressure.\n\n(up to 32768 bytes per frag, thats order-3 pages on x86)\n\nThis increases TCP stream performance by 20% on loopback device,\nbut also benefits on other network devices, since 8x less frags are\nmapped on transmit and unmapped on tx completion. Alexander Duyck\nmentioned a probable performance win on systems with IOMMU enabled.\n\nIts possible some SG enabled hardware cant cope with bigger fragments,\nbut their ndo_start_xmit() should already handle this, splitting a\nfragment in sub fragments, since some arches have PAGE_SIZE\u003d65536\n\nSuccessfully tested on various ethernet devices.\n(ixgbe, igb, bnx2x, tg3, mellanox mlx4)\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nCc: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\nCc: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nTested-by: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "35c448a8a3471b95ebc0ebcf91eb1183401b4274",
      "tree": "be99b30b7ad761c1bf77e8b6132a98b1959b3c5c",
      "parents": [
        "8ba00bb68a067c221cc3ea3a0293e8fcbdcb7ba1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Sep 17 14:09:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 17 15:00:38 2012 -0700"
      },
      "message": "include/net/sock.h: squelch compiler warning in sk_rmem_schedule()\n\nThis warning:\n\n  In file included from linux/include/linux/tcp.h:227:0,\n                   from linux/include/linux/ipv6.h:221,\n                   from linux/include/net/ipv6.h:16,\n                   from linux/include/linux/sunrpc/clnt.h:26,\n                   from linux/net/sunrpc/stats.c:22:\n  linux/include/net/sock.h: In function `sk_rmem_schedule\u0027:\n  linux/nfs-2.6/include/net/sock.h:1339:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]\n\nis seen with gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) using the\n-Wextra option.\n\nCommit c76562b6709f (\"netvm: prevent a stream-specific deadlock\")\naccidentally replaced the \"size\" parameter of sk_rmem_schedule() with an\nunsigned int.  This changes the semantics of the comparison in the\nreturn statement.\n\nIn sk_wmem_schedule we have syntactically the same comparison, but\n\"size\" is a signed integer.  In addition, __sk_mem_schedule() takes a\nsigned integer for its \"size\" parameter, so there is an implicit type\nconversion in sk_rmem_schedule() anyway.\n\nRevert the \"size\" parameter back to a signed integer so that the\nsemantics of the expressions in both sk_[rw]mem_schedule() are exactly\nthe same.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3419807716be503c06f399b2bcbc68823be3a78",
      "tree": "2915c206cfd338883247d0a70b1867b5d57d8bd0",
      "parents": [
        "83b061fc09489fb1b827f65cdca014c37ed224bb"
      ],
      "author": {
        "name": "Daniel Wagner",
        "email": "daniel.wagner@bmw-carit.de",
        "time": "Wed Sep 12 16:12:01 2012 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 14 09:55:57 2012 -0700"
      },
      "message": "cgroup: net_cls: Move sock_update_classid() declaration to cls_cgroup.h\n\nThe only user of sock_update_classid() is net/socket.c which happens\nto include cls_cgroup.h directly.\n\ntj: Fix build breakage due to missing cls_cgroup.h inclusion in\n    drivers/net/tun.c reported in linux-next by Stephen.\n\nSigned-off-by: Daniel Wagner \u003cdaniel.wagner@bmw-carit.de\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nCc: Jamal Hadi Salim \u003cjhs@mojatatu.com\u003e\nCc: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nCc: netdev@vger.kernel.org\nCc: cgroups@vger.kernel.org\n"
    },
    {
      "commit": "e6acb384807406c1a6ad3ddc91191f7658e63b7a",
      "tree": "7906d1bb402ac30e4efaa1bc6451b1c7a4b6e768",
      "parents": [
        "255e87657a84e21986e5d9070f3dee4aa8d1d531",
        "898132ae76d1aeb52301f10e8795c34fbb54e853"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 24 18:54:37 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Aug 24 18:54:37 2012 -0400"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace\n\nThis is an initial merge in of Eric Biederman\u0027s work to start adding\nuser namespace support to the networking.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c336d148adc4181f31741ae066df41429be64b67",
      "tree": "b1393fa0bd2782c4f41f14c6d1d4390b480057cf",
      "parents": [
        "3fbc290540a1ed1a8a076ed8f53bee7a38a9f408"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu May 24 17:56:43 2012 -0600"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Aug 14 21:49:56 2012 -0700"
      },
      "message": "userns: Implement sk_user_ns\n\nAdd a helper sk_user_ns to make it easy to find the user namespace\nof the process that opened a socket.\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "976d020150456fccbd34103fd117fab910eed09c",
      "tree": "742f67a59f97d5cfdfef2d71094d2b2145553f3d",
      "parents": [
        "d04a48b06d63b6d6e9289ca8a5e6e84ebfe39bfd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 23 17:16:53 2012 -0600"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Aug 14 21:47:34 2012 -0700"
      },
      "message": "userns: Convert sock_i_uid to return a kuid_t\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "1485348d2424e1131ea42efc033cbd9366462b01",
      "tree": "706d69b398cbd109fd3a9806fa485150d043cc52",
      "parents": [
        "7e6d06f0de3f74ca929441add094518ae332257c"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Mon Jul 30 16:11:42 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Aug 02 00:19:17 2012 -0700"
      },
      "message": "tcp: Apply device TSO segment limit earlier\n\nCache the device gso_max_segs in sock::sk_gso_max_segs and use it to\nlimit the size of TSO skbs.  This avoids the need to fall back to\nsoftware GSO for local TCP senders.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c76562b6709fee5eff8a6a779be41c0bce661fd7",
      "tree": "18e4a3c71b6d859cc58b7d1156bd1d7bfd1d6a5c",
      "parents": [
        "68243e76ee343d63c6cf76978588a885951e2818"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "netvm: prevent a stream-specific deadlock\n\nThis patch series is based on top of \"Swap-over-NBD without deadlocking\nv15\" as it depends on the same reservation of PF_MEMALLOC reserves logic.\n\nWhen a user or administrator requires swap for their application, they\ncreate a swap partition and file, format it with mkswap and activate it\nwith swapon.  In diskless systems this is not an option so if swap if\nrequired then swapping over the network is considered.  The two likely\nscenarios are when blade servers are used as part of a cluster where the\nform factor or maintenance costs do not allow the use of disks and thin\nclients.\n\nThe Linux Terminal Server Project recommends the use of the Network Block\nDevice (NBD) for swap but this is not always an option.  There is no\nguarantee that the network attached storage (NAS) device is running Linux\nor supports NBD.  However, it is likely that it supports NFS so there are\nusers that want support for swapping over NFS despite any performance\nconcern.  Some distributions currently carry patches that support swapping\nover NFS but it would be preferable to support it in the mainline kernel.\n\nPatch 1 avoids a stream-specific deadlock that potentially affects TCP.\n\nPatch 2 is a small modification to SELinux to avoid using PFMEMALLOC\n\treserves.\n\nPatch 3 adds three helpers for filesystems to handle swap cache pages.\n\tFor example, page_file_mapping() returns page-\u003emapping for\n\tfile-backed pages and the address_space of the underlying\n\tswap file for swap cache pages.\n\nPatch 4 adds two address_space_operations to allow a filesystem\n\tto pin all metadata relevant to a swapfile in memory. Upon\n\tsuccessful activation, the swapfile is marked SWP_FILE and\n\tthe address space operation -\u003edirect_IO is used for writing\n\tand -\u003ereadpage for reading in swap pages.\n\nPatch 5 notes that patch 3 is bolting\n\tfilesystem-specific-swapfile-support onto the side and that\n\tthe default handlers have different information to what\n\tis available to the filesystem. This patch refactors the\n\tcode so that there are generic handlers for each of the new\n\taddress_space operations.\n\nPatch 6 adds an API to allow a vector of kernel addresses to be\n\ttranslated to struct pages and pinned for IO.\n\nPatch 7 adds support for using highmem pages for swap by kmapping\n\tthe pages before calling the direct_IO handler.\n\nPatch 8 updates NFS to use the helpers from patch 3 where necessary.\n\nPatch 9 avoids setting PF_private on PG_swapcache pages within NFS.\n\nPatch 10 implements the new swapfile-related address_space operations\n\tfor NFS and teaches the direct IO handler how to manage\n\tkernel addresses.\n\nPatch 11 prevents page allocator recursions in NFS by using GFP_NOIO\n\twhere appropriate.\n\nPatch 12 fixes a NULL pointer dereference that occurs when using\n\tswap-over-NFS.\n\nWith the patches applied, it is possible to mount a swapfile that is on an\nNFS filesystem.  Swap performance is not great with a swap stress test\ntaking roughly twice as long to complete than if the swap device was\nbacked by NBD.\n\nThis patch: netvm: prevent a stream-specific deadlock\n\nIt could happen that all !SOCK_MEMALLOC sockets have buffered so much data\nthat we\u0027re over the global rmem limit.  This will prevent SOCK_MEMALLOC\nbuffers from receiving data, which will prevent userspace from running,\nwhich is needed to reduce the buffered data.\n\nFix this by exempting the SOCK_MEMALLOC sockets from the rmem limit.  Once\nthis change it applied, it is important that sockets that set\nSOCK_MEMALLOC do not clear the flag until the socket is being torn down.\nIf this happens, a warning is generated and the tokens reclaimed to avoid\naccounting errors until the bug is fixed.\n\n[davem@davemloft.net: Warning about clearing SOCK_MEMALLOC]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4b9e3558508980fc0cd161a545ffb55a1f13ee9",
      "tree": "abb2ab54f4b201b1cbdaf181ec16912c3dd889eb",
      "parents": [
        "0614002bb5f7411e61ffa0dfe5be1f2c84df3da3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: set PF_MEMALLOC as appropriate during SKB processing\n\nIn order to make sure pfmemalloc packets receive all memory needed to\nproceed, ensure processing of pfmemalloc SKBs happens under PF_MEMALLOC.\nThis is limited to a subset of protocols that are expected to be used for\nwriting to swap.  Taps are not allowed to use PF_MEMALLOC as these are\nexpected to communicate with userspace processes which could be paged out.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[jslaby@suse.cz: Lock imbalance fix]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c93bdd0e03e848555d144eb44a1f275b871a8dd5",
      "tree": "8aff3bc2b9ff9f32e51040a7652bfb31257db626",
      "parents": [
        "7cb0240492caea2f6467f827313478f41877e6ef"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow skb allocation to use PFMEMALLOC reserves\n\nChange the skb allocation API to indicate RX usage and use this to fall\nback to the PFMEMALLOC reserve when needed.  SKBs allocated from the\nreserve are tagged in skb-\u003epfmemalloc.  If an SKB is allocated from the\nreserve and the socket is later found to be unrelated to page reclaim, the\npacket is dropped so that the memory remains available for page reclaim.\nNetwork protocols are expected to recover from this packet loss.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[davem@davemloft.net: Use static branches, coding style corrections]\n[sebastian@breakpoint.cc: Avoid unnecessary cast, fix !CONFIG_NET build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7cb0240492caea2f6467f827313478f41877e6ef",
      "tree": "4836f7c2c07ed199e3122ea70bedf34f048ecd81",
      "parents": [
        "99a1dec70d5acbd8c6b3928cdebb4a2d1da676c8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow the use of __GFP_MEMALLOC by specific sockets\n\nAllow specific sockets to be tagged SOCK_MEMALLOC and use __GFP_MEMALLOC\nfor their allocations.  These sockets will be able to go below watermarks\nand allocate from the emergency reserve.  Such sockets are to be used to\nservice the VM (iow.  to swap over).  They must be handled kernel side,\nexposing such a socket to user-space is a bug.\n\nThere is a risk that the reserves be depleted so for now, the\nadministrator is responsible for increasing min_free_kbytes as necessary\nto prevent deadlock for their workloads.\n\n[a.p.zijlstra@chello.nl: Original patches]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99a1dec70d5acbd8c6b3928cdebb4a2d1da676c8",
      "tree": "ac61a8b479065fa3ed3fdddf17e91366dcddcea5",
      "parents": [
        "183f6371aac2a5496a8ef2b0b0a68562652c3cdb"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "net: introduce sk_gfp_atomic() to allow addition of GFP flags depending on the individual socket\n\nIntroduce sk_gfp_atomic(), this function allows to inject sock specific\nflags to each sock related allocation.  It is only used on allocation\npaths that may be required for writing pages back to network storage.\n\n[davem@davemloft.net: Use sk_gfp_atomic only when necessary]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c255a458055e459f65eb7b7f51dc5dbdd0caf1d8",
      "tree": "b143b1914eeb6f27f53e30f9f0275d0f1ca5480b",
      "parents": [
        "80934513b230bfcf70265f2ef0fdae89fb391633"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 31 16:43:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "memcg: rename config variables\n\nSanity:\n\nCONFIG_CGROUP_MEM_RES_CTLR -\u003e CONFIG_MEMCG\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP -\u003e CONFIG_MEMCG_SWAP\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED -\u003e CONFIG_MEMCG_SWAP_ENABLED\nCONFIG_CGROUP_MEM_RES_CTLR_KMEM -\u003e CONFIG_MEMCG_KMEM\n\n[mhocko@suse.cz: fix missed bits]\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "563d34d05786263893ba4a1042eb9b9374127cf5",
      "tree": "e9ce502c1f32bea966c81d5597d0a29eb4b9d244",
      "parents": [
        "c3def943c7117d42caaed3478731ea7c3c87190e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jul 23 09:48:52 2012 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 00:58:46 2012 -0700"
      },
      "message": "tcp: dont drop MTU reduction indications\n\nICMP messages generated in output path if frame length is bigger than\nmtu are actually lost because socket is owned by user (doing the xmit)\n\nOne example is the ipgre_tunnel_xmit() calling\nicmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu));\n\nWe had a similar case fixed in commit a34a101e1e6 (ipv6: disable GSO on\nsockets hitting dst_allfrag).\n\nProblem of such fix is that it relied on retransmit timers, so short tcp\nsessions paid a too big latency increase price.\n\nThis patch uses the tcp_release_cb() infrastructure so that MTU\nreduction messages (ICMP messages) are not lost, and no extra delay\nis added in TCP transmits.\n\nReported-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nDiagnosed-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Nandita Dukkipati \u003cnanditad@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Tore Anderson \u003ctore@fud.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46d3ceabd8d98ed0ad10f20c595ca784e34786c5",
      "tree": "771200292431be56c6ebcb23af9206bc03d40e65",
      "parents": [
        "2100844ca9d7055d5cddce2f8ed13af94c01f85b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jul 11 05:50:31 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 11 18:12:59 2012 -0700"
      },
      "message": "tcp: TCP Small Queues\n\nThis introduce TSQ (TCP Small Queues)\n\nTSQ goal is to reduce number of TCP packets in xmit queues (qdisc \u0026\ndevice queues), to reduce RTT and cwnd bias, part of the bufferbloat\nproblem.\n\nsk-\u003esk_wmem_alloc not allowed to grow above a given limit,\nallowing no more than ~128KB [1] per tcp socket in qdisc/dev layers at a\ngiven time.\n\nTSO packets are sized/capped to half the limit, so that we have two\nTSO packets in flight, allowing better bandwidth use.\n\nAs a side effect, setting the limit to 40000 automatically reduces the\nstandard gso max limit (65536) to 40000/2 : It can help to reduce\nlatencies of high prio packets, having smaller TSO packets.\n\nThis means we divert sock_wfree() to a tcp_wfree() handler, to\nqueue/send following frames when skb_orphan() [2] is called for the\nalready queued skbs.\n\nResults on my dev machines (tg3/ixgbe nics) are really impressive,\nusing standard pfifo_fast, and with or without TSO/GSO.\n\nWithout reduction of nominal bandwidth, we have reduction of buffering\nper bulk sender :\n\u003c 1ms on Gbit (instead of 50ms with TSO)\n\u003c 8ms on 100Mbit (instead of 132 ms)\n\nI no longer have 4 MBytes backlogged in qdisc by a single netperf\nsession, and both side socket autotuning no longer use 4 Mbytes.\n\nAs skb destructor cannot restart xmit itself ( as qdisc lock might be\ntaken at this point ), we delegate the work to a tasklet. We use one\ntasklest per cpu for performance reasons.\n\nIf tasklet finds a socket owned by the user, it sets TSQ_OWNED flag.\nThis flag is tested in a new protocol method called from release_sock(),\nto eventually send new segments.\n\n[1] New /proc/sys/net/ipv4/tcp_limit_output_bytes tunable\n[2] skb_orphan() is usually called at TX completion time,\n  but some drivers call it in their start_xmit() handler.\n  These drivers should at least use BQL, or else a single TCP\n  session can still fill the whole NIC TX ring, since TSQ will\n  have no effect.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Dave Taht \u003cdave.taht@bufferbloat.net\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Matt Mathis \u003cmattmathis@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: Nandita Dukkipati \u003cnanditad@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "deaa58542b21d2b395db816952c202034319cbb4",
      "tree": "55d720f117845dda6f141490b0e4dde4b4c9127c",
      "parents": [
        "efc27f8ceebe5eb147fa31d6c995706d327ad855"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Jun 24 20:22:49 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 25 16:09:18 2012 -0700"
      },
      "message": "net: struct sock cleanups\n\nAdd missing kernel doc for sk_rx_dst\n\nMove sk_rx_dst to avoid two 32bit holes on 64bit arches\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "efc27f8ceebe5eb147fa31d6c995706d327ad855",
      "tree": "b1be53115d0986162941b8964dd3b642715c7681",
      "parents": [
        "e486463e82e4dca9e8f4413649088b21c9ff87e5"
      ],
      "author": {
        "name": "Vijay Subramanian",
        "email": "subramanian.vijay@gmail.com",
        "time": "Sun Jun 24 13:03:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 25 16:08:36 2012 -0700"
      },
      "message": "net: Remove \u0027unlikely\u0027 qualifier in skb_steal_sock()\n\nWith early demux enabled by default for TCP flows, there is high chance that\nskb-\u003esk will be non-null. \u0027unlikely()\u0027 was removed from __inet_lookup_skb() but\nmaybe it can be removed from skb_steal_sock() as well.\n\nNote: skb_steal_sock() is also called by __inet6_lookup_skb() and\n__udp4_lib_lookup_skb() but they are protected by their own \u0027unlikely\u0027 calls.\n\nSigned-off-by: Vijay Subramanian \u003csubramanian.vijay@gmail.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41063e9dd11956f2d285e12e4342e1d232ba0ea2",
      "tree": "d4df2f51044b4724a4767f0498c3df2f606b5ad7",
      "parents": [
        "f9242b6b28d61295f2bf7e8adfb1060b382e5381"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 19 21:22:05 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 19 21:22:05 2012 -0700"
      },
      "message": "ipv4: Early TCP socket demux.\n\nInput packet processing for local sockets involves two major demuxes.\nOne for the route and one for the socket.\n\nBut we can optimize this down to one demux for certain kinds of local\nsockets.\n\nCurrently we only do this for established TCP sockets, but it could\nat least in theory be expanded to other kinds of connections.\n\nIf a TCP socket is established then it\u0027s identity is fully specified.\n\nThis means that whatever input route was used during the three-way\nhandshake must work equally well for the rest of the connection since\nthe keys will not change.\n\nOnce we move to established state, we cache the receive packet\u0027s input\nroute to use later.\n\nLike the existing cached route in sk-\u003esk_dst_cache used for output\npackets, we have to check for route invalidations using dst-\u003eobsolete\nand dst-\u003eops-\u003echeck().\n\nEarly demux occurs outside of a socket locked section, so when a route\ninvalidation occurs we defer the fixup of sk-\u003esk_rx_dst until we are\nactually inside of established state packet processing and thus have\nthe socket locked.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f134619393cb6c6dfab7890a617d0ceca6d05d7",
      "tree": "39e05b42c99189cd4496e61a3e16107e065b0f04",
      "parents": [
        "3afe36b1fe7d1e3f66752bb9548a763942f3a104"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Tue May 29 15:07:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "memcg: decrement static keys at real destroy time\n\nWe call the destroy function when a cgroup starts to be removed, such as\nby a rmdir event.\n\nHowever, because of our reference counters, some objects are still\ninflight.  Right now, we are decrementing the static_keys at destroy()\ntime, meaning that if we get rid of the last static_key reference, some\nobjects will still have charges, but the code to properly uncharge them\nwon\u0027t be run.\n\nThis becomes a problem specially if it is ever enabled again, because now\nnew charges will be added to the staled charges making keeping it pretty\nmuch impossible.\n\nWe just need to be careful with the static branch activation: since there\nis no particular preferred order of their activation, we need to make sure\nthat we only start using it after all call sites are active.  This is\nachieved by having a per-memcg flag that is only updated after\nstatic_key_slow_inc() returns.  At this time, we are sure all sites are\nactive.\n\nThis is made per-memcg, not global, for a reason: it also has the effect\nof making socket accounting more consistent.  The first memcg to be\nlimited will trigger static_key() activation, therefore, accounting.  But\nall the others will then be accounted no matter what.  After this patch,\nonly limited memcgs will have its sockets accounted.\n\n[akpm@linux-foundation.org: move enum sock_flag_bits into sock.h,\n                            document enum sock_flag_bits,\n                            convert memcg_proto_active() and memcg_proto_activated() to test_bit(),\n                            redo tcp_update_limit() comment to 80 cols]\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88d6ae8dc33af12fe1c7941b1fae2767374046fd",
      "tree": "8f17415c0722b0a4d7511ac170cfb4e3802e1ad2",
      "parents": [
        "f5c101892fbd3d2f6d2729bc7eb7b3f6c31dbddd",
        "0d4dde1ac9a5af74ac76c6ab90557d1ae7b8f5d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 17:40:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 17:40:19 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup updates from Tejun Heo:\n \"cgroup file type addition / removal is updated so that file types are\n  added and removed instead of individual files so that dynamic file\n  type addition / removal can be implemented by cgroup and used by\n  controllers.  blkio controller changes which will come through block\n  tree are dependent on this.  Other changes include res_counter cleanup\n  and disallowing kthread / PF_THREAD_BOUND threads to be attached to\n  non-root cgroups.\n\n  There\u0027s a reported bug with the file type addition / removal handling\n  which can lead to oops on cgroup umount.  The issue is being looked\n  into.  It shouldn\u0027t cause problems for most setups and isn\u0027t a\n  security concern.\"\n\nFix up trivial conflict in Documentation/feature-removal-schedule.txt\n\n* \u0027for-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)\n  res_counter: Account max_usage when calling res_counter_charge_nofail()\n  res_counter: Merge res_counter_charge and res_counter_charge_nofail\n  cgroups: disallow attaching kthreadd or PF_THREAD_BOUND threads\n  cgroup: remove cgroup_subsys-\u003epopulate()\n  cgroup: get rid of populate for memcg\n  cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg\n  cgroup: make css-\u003erefcnt clearing on cgroup removal optional\n  cgroup: use negative bias on css-\u003erefcnt to block css_tryget()\n  cgroup: implement cgroup_rm_cftypes()\n  cgroup: introduce struct cfent\n  cgroup: relocate __d_cgrp() and __d_cft()\n  cgroup: remove cgroup_add_file[s]()\n  cgroup: convert memcg controller to the new cftype interface\n  memcg: always create memsw files if CONFIG_CGROUP_MEM_RES_CTLR_SWAP\n  cgroup: convert all non-memcg controllers to the new cftype interface\n  cgroup: relocate cftype and cgroup_subsys definitions in controllers\n  cgroup: merge cft_release_agent cftype array into the base files array\n  cgroup: implement cgroup_add_cftypes() and friends\n  cgroup: build list of all cgroups under a given cgroupfs_root\n  cgroup: move cgroup_clear_directory() call out of cgroup_populate_dir()\n  ...\n"
    },
    {
      "commit": "dc6b9b78234fecdc6d2ca5e1629185718202bcf5",
      "tree": "81faf65c9cd9747d8dfe2828ff624507459bdf24",
      "parents": [
        "1f352920b908247273a7c1937fd8c341cc1cedb1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 16 22:48:15 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 17 04:50:21 2012 -0400"
      },
      "message": "net: include/net/sock.h cleanup\n\nbool/const conversions where possible\n\n__inline__ -\u003e inline\n\nspace cleanups\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1b23a5dfc20469d4a4bb8a552dd224ac693c407c",
      "tree": "304bbd5a49eb33a0fa4e8ca103811c0f936037c7",
      "parents": [
        "865ec5523dadbedefbc5710a68969f686a28d928"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed May 16 05:57:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 16 15:30:26 2012 -0400"
      },
      "message": "net: sock_flag() cleanup\n\n- sock_flag() accepts a const pointer\n\n- sock_flag() returns a boolean\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d6c4a2e4641bbc556dd74d3aa158c413a972492",
      "tree": "da944af17682659bb433dc2282dcb48380c14cd1",
      "parents": [
        "6e06c0e2347ec79d0bd5702b2438fe883f784545",
        "1c430a727fa512500a422ffe4712166c550ea06a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 23:35:40 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 07 23:35:40 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tdrivers/net/ethernet/intel/e1000e/param.c\n\tdrivers/net/wireless/iwlwifi/iwl-agn-rx.c\n\tdrivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c\n\tdrivers/net/wireless/iwlwifi/iwl-trans.h\n\nResolved the iwlwifi conflict with mainline using 3-way diff posted\nby John Linville and Stephen Rothwell.  In \u0027net\u0027 we added a bug\nfix to make iwlwifi report a more accurate skb-\u003etruesize but this\nconflicted with RX path changes that happened meanwhile in net-next.\n\nIn e1000e a conflict arose in the validation code for settings of\nadapter-\u003eitr.  \u0027net-next\u0027 had more sophisticated logic so that\nlogic was used.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "518fbf9cdf17875d808596afd77fc115a6f942ca",
      "tree": "608d2b518feafdfeade863774e14fc6e37ca31dd",
      "parents": [
        "5414fc12e32a0e0833ec61ba8be864c46cd19966"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sat Apr 28 23:21:56 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 30 13:37:59 2012 -0400"
      },
      "message": "net: fix sk_sockets_allocated_read_positive\n\nDenys Fedoryshchenko reported frequent crashes on a proxy server and kindly\nprovided a lockdep report that explains it all :\n\n  [  762.903868]\n  [  762.903880] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [  762.903890] [ INFO: inconsistent lock state ]\n  [  762.903903] 3.3.4-build-0061 #8 Not tainted\n  [  762.904133] ---------------------------------\n  [  762.904344] inconsistent {IN-SOFTIRQ-W} -\u003e {SOFTIRQ-ON-W} usage.\n  [  762.904542] squid/1603 [HC0[0]:SC0[0]:HE1:SE1] takes:\n  [  762.904542]  (key#3){+.?...}, at: [\u003cc0232cc4\u003e]\n__percpu_counter_sum+0xd/0x58\n  [  762.904542] {IN-SOFTIRQ-W} state was registered at:\n  [  762.904542]   [\u003cc0158b84\u003e] __lock_acquire+0x284/0xc26\n  [  762.904542]   [\u003cc01598e8\u003e] lock_acquire+0x71/0x85\n  [  762.904542]   [\u003cc0349765\u003e] _raw_spin_lock+0x33/0x40\n  [  762.904542]   [\u003cc0232c93\u003e] __percpu_counter_add+0x58/0x7c\n  [  762.904542]   [\u003cc02cfde1\u003e] sk_clone_lock+0x1e5/0x200\n  [  762.904542]   [\u003cc0303ee4\u003e] inet_csk_clone_lock+0xe/0x78\n  [  762.904542]   [\u003cc0315778\u003e] tcp_create_openreq_child+0x1b/0x404\n  [  762.904542]   [\u003cc031339c\u003e] tcp_v4_syn_recv_sock+0x32/0x1c1\n  [  762.904542]   [\u003cc031615a\u003e] tcp_check_req+0x1fd/0x2d7\n  [  762.904542]   [\u003cc0313f77\u003e] tcp_v4_do_rcv+0xab/0x194\n  [  762.904542]   [\u003cc03153bb\u003e] tcp_v4_rcv+0x3b3/0x5cc\n  [  762.904542]   [\u003cc02fc0c4\u003e] ip_local_deliver_finish+0x13a/0x1e9\n  [  762.904542]   [\u003cc02fc539\u003e] NF_HOOK.clone.11+0x46/0x4d\n  [  762.904542]   [\u003cc02fc652\u003e] ip_local_deliver+0x41/0x45\n  [  762.904542]   [\u003cc02fc4d1\u003e] ip_rcv_finish+0x31a/0x33c\n  [  762.904542]   [\u003cc02fc539\u003e] NF_HOOK.clone.11+0x46/0x4d\n  [  762.904542]   [\u003cc02fc857\u003e] ip_rcv+0x201/0x23e\n  [  762.904542]   [\u003cc02daa3a\u003e] __netif_receive_skb+0x319/0x368\n  [  762.904542]   [\u003cc02dac07\u003e] netif_receive_skb+0x4e/0x7d\n  [  762.904542]   [\u003cc02dacf6\u003e] napi_skb_finish+0x1e/0x34\n  [  762.904542]   [\u003cc02db122\u003e] napi_gro_receive+0x20/0x24\n  [  762.904542]   [\u003cf85d1743\u003e] e1000_receive_skb+0x3f/0x45 [e1000e]\n  [  762.904542]   [\u003cf85d3464\u003e] e1000_clean_rx_irq+0x1f9/0x284 [e1000e]\n  [  762.904542]   [\u003cf85d3926\u003e] e1000_clean+0x62/0x1f4 [e1000e]\n  [  762.904542]   [\u003cc02db228\u003e] net_rx_action+0x90/0x160\n  [  762.904542]   [\u003cc012a445\u003e] __do_softirq+0x7b/0x118\n  [  762.904542] irq event stamp: 156915469\n  [  762.904542] hardirqs last  enabled at (156915469): [\u003cc019b4f4\u003e]\n__slab_alloc.clone.58.clone.63+0xc4/0x2de\n  [  762.904542] hardirqs last disabled at (156915468): [\u003cc019b452\u003e]\n__slab_alloc.clone.58.clone.63+0x22/0x2de\n  [  762.904542] softirqs last  enabled at (156915466): [\u003cc02ce677\u003e]\nlock_sock_nested+0x64/0x6c\n  [  762.904542] softirqs last disabled at (156915464): [\u003cc0349914\u003e]\n_raw_spin_lock_bh+0xe/0x45\n  [  762.904542]\n  [  762.904542] other info that might help us debug this:\n  [  762.904542]  Possible unsafe locking scenario:\n  [  762.904542]\n  [  762.904542]        CPU0\n  [  762.904542]        ----\n  [  762.904542]   lock(key#3);\n  [  762.904542]   \u003cInterrupt\u003e\n  [  762.904542]     lock(key#3);\n  [  762.904542]\n  [  762.904542]  *** DEADLOCK ***\n  [  762.904542]\n  [  762.904542] 1 lock held by squid/1603:\n  [  762.904542]  #0:  (sk_lock-AF_INET){+.+.+.}, at: [\u003cc03055c0\u003e]\nlock_sock+0xa/0xc\n  [  762.904542]\n  [  762.904542] stack backtrace:\n  [  762.904542] Pid: 1603, comm: squid Not tainted 3.3.4-build-0061 #8\n  [  762.904542] Call Trace:\n  [  762.904542]  [\u003cc0347b73\u003e] ? printk+0x18/0x1d\n  [  762.904542]  [\u003cc015873a\u003e] valid_state+0x1f6/0x201\n  [  762.904542]  [\u003cc0158816\u003e] mark_lock+0xd1/0x1bb\n  [  762.904542]  [\u003cc015876b\u003e] ? mark_lock+0x26/0x1bb\n  [  762.904542]  [\u003cc015805d\u003e] ? check_usage_forwards+0x77/0x77\n  [  762.904542]  [\u003cc0158bf8\u003e] __lock_acquire+0x2f8/0xc26\n  [  762.904542]  [\u003cc0159b8e\u003e] ? mark_held_locks+0x5d/0x7b\n  [  762.904542]  [\u003cc0159cf6\u003e] ? trace_hardirqs_on+0xb/0xd\n  [  762.904542]  [\u003cc0158dd4\u003e] ? __lock_acquire+0x4d4/0xc26\n  [  762.904542]  [\u003cc01598e8\u003e] lock_acquire+0x71/0x85\n  [  762.904542]  [\u003cc0232cc4\u003e] ? __percpu_counter_sum+0xd/0x58\n  [  762.904542]  [\u003cc0349765\u003e] _raw_spin_lock+0x33/0x40\n  [  762.904542]  [\u003cc0232cc4\u003e] ? __percpu_counter_sum+0xd/0x58\n  [  762.904542]  [\u003cc0232cc4\u003e] __percpu_counter_sum+0xd/0x58\n  [  762.904542]  [\u003cc02cebc4\u003e] __sk_mem_schedule+0xdd/0x1c7\n  [  762.904542]  [\u003cc02d178d\u003e] ? __alloc_skb+0x76/0x100\n  [  762.904542]  [\u003cc0305e8e\u003e] sk_wmem_schedule+0x21/0x2d\n  [  762.904542]  [\u003cc0306370\u003e] sk_stream_alloc_skb+0x42/0xaa\n  [  762.904542]  [\u003cc0306567\u003e] tcp_sendmsg+0x18f/0x68b\n  [  762.904542]  [\u003cc031f3dc\u003e] ? ip_fast_csum+0x30/0x30\n  [  762.904542]  [\u003cc0320193\u003e] inet_sendmsg+0x53/0x5a\n  [  762.904542]  [\u003cc02cb633\u003e] sock_aio_write+0xd2/0xda\n  [  762.904542]  [\u003cc015876b\u003e] ? mark_lock+0x26/0x1bb\n  [  762.904542]  [\u003cc01a1017\u003e] do_sync_write+0x9f/0xd9\n  [  762.904542]  [\u003cc01a2111\u003e] ? file_free_rcu+0x2f/0x2f\n  [  762.904542]  [\u003cc01a17a1\u003e] vfs_write+0x8f/0xab\n  [  762.904542]  [\u003cc01a284d\u003e] ? fget_light+0x75/0x7c\n  [  762.904542]  [\u003cc01a1900\u003e] sys_write+0x3d/0x5e\n  [  762.904542]  [\u003cc0349ec9\u003e] syscall_call+0x7/0xb\n  [  762.904542]  [\u003cc0340000\u003e] ? rp_sidt+0x41/0x83\n\nBug is that sk_sockets_allocated_read_positive() calls\npercpu_counter_sum_positive() without BH being disabled.\n\nThis bug was added in commit 180d8cd942ce33\n(foundations of per-cgroup memory pressure controlling.), since previous\ncode was using percpu_counter_read_positive() which is IRQ safe.\n\nIn __sk_mem_schedule() we dont need the precise count of allocated\nsockets and can revert to previous behavior.\n\nReported-by: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nSined-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Neal Cardwell \u003cncardwell@google.com\u003e\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f24001941c99776f41bd3f09c07d91205c2ad9d4",
      "tree": "0ab31480ccdf343b61db045e195d096068ef7c73",
      "parents": [
        "a108d5f35adc5c5d5cdc882dc0bb920565551bff",
        "4d634ca35a8b38530b134ae92bc9e3cc9c23c030"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:14:36 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 23:15:17 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nFix merge between commit 3adadc08cc1e (\"net ax25: Reorder ax25_exit to\nremove races\") and commit 0ca7a4c87d27 (\"net ax25: Simplify and\ncleanup the ax25 sysctl handling\")\n\nThe former moved around the sysctl register/unregister calls, the\nlater simply removed them.\n\nWith help from Stephen Rothwell.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f545a38f74584cc7424cb74f792a00c6d2589485",
      "tree": "b272cbfed3267a7750f55f23989e1b070ae6ac3e",
      "parents": [
        "b98985073bc5403ef1320866e4ef8bbc5d587ceb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Apr 22 23:34:26 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 23 22:28:28 2012 -0400"
      },
      "message": "net: add a limit parameter to sk_add_backlog()\n\nsk_add_backlog() \u0026 sk_rcvqueues_full() hard coded sk_rcvbuf as the\nmemory limit. We need to make this limit a parameter for TCP use.\n\nNo functional change expected in this patch, all callers still using the\nold sk_rcvbuf limit.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Maciej Żenczykowski \u003cmaze@google.com\u003e\nCc: Yuchung Cheng \u003cycheng@google.com\u003e\nCc: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nCc: Rick Jones \u003crick.jones2@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a17fd5229c1b6066aa478f6b690f8293ce811a1",
      "tree": "f6acd00935d2d7a990befb4c77f57fdf39f46689",
      "parents": [
        "59c55bdde856c4000bbeb33ba212c3df6f1997a4"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Thu Apr 19 03:39:36 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 21 15:52:25 2012 -0400"
      },
      "message": "sock: Introduce named constants for sk_reuse\n\nName them in a \"backward compatible\" manner, i.e. reuse or not\nare still 1 and 0 respectively. The reuse value of 2 means that\nthe socket with it will forcibly reuse everyone else\u0027s port.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3d4f0a025e621b82da08a76df4036d4267739dd",
      "tree": "0c4d40f6df2b919ccd8cbc596c440000b7d13b9a",
      "parents": [
        "4d846f02392a710f9604892ac3329e628e60a230"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Apr 17 14:03:53 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 17 22:32:00 2012 -0400"
      },
      "message": "net/sock.h: fix sk_peek_off kernel-doc warning\n\nFix kernel-doc warning in net/sock.h:\n\nWarning(include/net/sock.h:377): No description found for parameter \u0027sk_peek_off\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d62e43657c63a858560c98069706c705d20505d",
      "tree": "8b55403e0cf1efaab0c0fd7a2e53751dd21f1ebd",
      "parents": [
        "48ddbe194623ae089cc0576e60363f2d2e85662a"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Mon Apr 09 19:36:33 2012 -0300"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 10 10:04:07 2012 -0700"
      },
      "message": "cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg\n\nThe only reason cgroup was used, was to be consistent with the populate()\ninterface. Now that we\u0027re getting rid of it, not only we no longer need\nit, but we also *can\u0027t* call it this way.\n\nSince we will no longer rely on populate(), this will be called from\ncreate(). During create, the association between struct mem_cgroup\nand struct cgroup does not yet exist, since cgroup internals hasn\u0027t\nyet initialized its bookkeeping. This means we would not be able\nto draw the memcg pointer from the cgroup pointer in these\nfunctions, which is highly undesirable.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCC: Li Zefan \u003clizefan@huawei.com\u003e\nCC: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCC: Michal Hocko \u003cmhocko@suse.cz\u003e\n"
    },
    {
      "commit": "626cf236608505d376e4799adb4f7eb00a8594af",
      "tree": "eb0421fec1a7fed05cd9ea785bd18b5f40c80971",
      "parents": [
        "5cde7656d0dd222170eb0250bd1f70c9018fd438"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Mar 23 15:02:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "poll: add poll_requested_events() and poll_does_not_wait() functions\n\nIn some cases the poll() implementation in a driver has to do different\nthings depending on the events the caller wants to poll for.  An example\nis when a driver needs to start a DMA engine if the caller polls for\nPOLLIN, but doesn\u0027t want to do that if POLLIN is not requested but instead\nonly POLLOUT or POLLPRI is requested.  This is something that can happen\nin the video4linux subsystem among others.\n\nUnfortunately, the current epoll/poll/select implementation doesn\u0027t\nprovide that information reliably.  The poll_table_struct does have it: it\nhas a key field with the event mask.  But once a poll() call matches one\nor more bits of that mask any following poll() calls are passed a NULL\npoll_table pointer.\n\nAlso, the eventpoll implementation always left the key field at ~0 instead\nof using the requested events mask.\n\nThis was changed in eventpoll.c so the key field now contains the actual\nevents that should be polled for as set by the caller.\n\nThe solution to the NULL poll_table pointer is to set the qproc field to\nNULL in poll_table once poll() matches the events, not the poll_table\npointer itself.  That way drivers can obtain the mask through a new\npoll_requested_events inline.\n\nThe poll_table_struct can still be NULL since some kernel code calls it\ninternally (netfs_state_poll() in ./drivers/staging/pohmelfs/netfs.h).  In\nthat case poll_requested_events() returns ~0 (i.e.  all events).\n\nVery rarely drivers might want to know whether poll_wait will actually\nwait.  If another earlier file descriptor in the set already matched the\nevents the caller wanted to wait for, then the kernel will return from the\nselect() call without waiting.  This might be useful information in order\nto avoid doing expensive work.\n\nA new helper function poll_does_not_wait() is added that drivers can use\nto detect this situation.  This is now used in sock_poll_wait() in\ninclude/net/sock.h.  This was the only place in the kernel that needed\nthis information.\n\nDrivers should no longer access any of the poll_table internals, but use\nthe poll_requested_events() and poll_does_not_wait() access functions\ninstead.  In order to enforce that the poll_table fields are now prepended\nwith an underscore and a comment was added warning against using them\ndirectly.\n\nThis required a change in unix_dgram_poll() in unix/af_unix.c which used\nthe key field to get the requested events.  It\u0027s been replaced by a call\nto poll_requested_events().\n\nFor qproc it was especially important to change its name since the\nbehavior of that field changes with this patch since this function pointer\ncan now be NULL when that wasn\u0027t possible in the past.\n\nAny driver accessing the qproc or key fields directly will now fail to compile.\n\nSome notes regarding the correctness of this patch: the driver\u0027s poll()\nfunction is called with a \u0027struct poll_table_struct *wait\u0027 argument.  This\npointer may or may not be NULL, drivers can never rely on it being one or\nthe other as that depends on whether or not an earlier file descriptor in\nthe select()\u0027s fdset matched the requested events.\n\nThere are only three things a driver can do with the wait argument:\n\n1) obtain the key field:\n\n\tevents \u003d wait ? wait-\u003ekey : ~0;\n\n   This will still work although it should be replaced with the new\n   poll_requested_events() function (which does exactly the same).\n   This will now even work better, since wait is no longer set to NULL\n   unnecessarily.\n\n2) use the qproc callback. This could be deadly since qproc can now be\n   NULL. Renaming qproc should prevent this from happening. There are no\n   kernel drivers that actually access this callback directly, BTW.\n\n3) test whether wait \u003d\u003d NULL to determine whether poll would return without\n   waiting. This is no longer sufficient as the correct test is now\n   wait \u003d\u003d NULL || wait-\u003e_qproc \u003d\u003d NULL.\n\n   However, the worst that can happen here is a slight performance hit in\n   the case where wait !\u003d NULL and wait-\u003e_qproc \u003d\u003d NULL. In that case the\n   driver will assume that poll_wait() will actually add the fd to the set\n   of waiting file descriptors. Of course, poll_wait() will not do that\n   since it tests for wait-\u003e_qproc. This will not break anything, though.\n\n   There is only one place in the whole kernel where this happens\n   (sock_poll_wait() in include/net/sock.h) and that code will be replaced\n   by a call to poll_does_not_wait() in the next patch.\n\n   Note that even if wait-\u003e_qproc !\u003d NULL drivers cannot rely on poll_wait()\n   actually waiting. The next file descriptor from the set might match the\n   event mask and thus any possible waits will never happen.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nReviewed-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nReviewed-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3556485f1595e3964ba539e39ea682acbb835cee",
      "tree": "7f5ee254f425b1427ac0059b5f347a307f8538a1",
      "parents": [
        "b8716614a7cc2fc15ea2a518edd04755fb08d922",
        "09f61cdbb32a9d812c618d3922db533542736bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates for 3.4 from James Morris:\n \"The main addition here is the new Yama security module from Kees Cook,\n  which was discussed at the Linux Security Summit last year.  Its\n  purpose is to collect miscellaneous DAC security enhancements in one\n  place.  This also marks a departure in policy for LSM modules, which\n  were previously limited to being standalone access control systems.\n  Chromium OS is using Yama, and I believe there are plans for Ubuntu,\n  at least.\n\n  This patchset also includes maintenance updates for AppArmor, TOMOYO\n  and others.\"\n\nFix trivial conflict in \u003cnet/sock.h\u003e due to the jumo_label-\u003estatic_key\nrename.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)\n  AppArmor: Fix location of const qualifier on generated string tables\n  TOMOYO: Return error if fails to delete a domain\n  AppArmor: add const qualifiers to string arrays\n  AppArmor: Add ability to load extended policy\n  TOMOYO: Return appropriate value to poll().\n  AppArmor: Move path failure information into aa_get_name and rename\n  AppArmor: Update dfa matching routines.\n  AppArmor: Minor cleanup of d_namespace_path to consolidate error handling\n  AppArmor: Retrieve the dentry_path for error reporting when path lookup fails\n  AppArmor: Add const qualifiers to generated string tables\n  AppArmor: Fix oops in policy unpack auditing\n  AppArmor: Fix error returned when a path lookup is disconnected\n  KEYS: testing wrong bit for KEY_FLAG_REVOKED\n  TOMOYO: Fix mount flags checking order.\n  security: fix ima kconfig warning\n  AppArmor: Fix the error case for chroot relative path name lookup\n  AppArmor: fix mapping of META_READ to audit and quiet flags\n  AppArmor: Fix underflow in xindex calculation\n  AppArmor: Fix dropping of allowed operations that are force audited\n  AppArmor: Add mising end of structure test to caps unpacking\n  ...\n"
    },
    {
      "commit": "3b59bf081622b6446db77ad06c93fe23677bc533",
      "tree": "3f4bb5a27c90cc86994a1f6d3c53fbf9208003cb",
      "parents": [
        "e45836fafe157df137a837093037f741ad8f4c90",
        "bbdb32cb5b73597386913d052165423b9d736145"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:04:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:04:47 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking merge from David Miller:\n \"1) Move ixgbe driver over to purely page based buffering on receive.\n     From Alexander Duyck.\n\n  2) Add receive packet steering support to e1000e, from Bruce Allan.\n\n  3) Convert TCP MD5 support over to RCU, from Eric Dumazet.\n\n  4) Reduce cpu usage in handling out-of-order TCP packets on modern\n     systems, also from Eric Dumazet.\n\n  5) Support the IP{,V6}_UNICAST_IF socket options, making the wine\n     folks happy, from Erich Hoover.\n\n  6) Support VLAN trunking from guests in hyperv driver, from Haiyang\n     Zhang.\n\n  7) Support byte-queue-limtis in r8169, from Igor Maravic.\n\n  8) Outline code intended for IP_RECVTOS in IP_PKTOPTIONS existed but\n     was never properly implemented, Jiri Benc fixed that.\n\n  9) 64-bit statistics support in r8169 and 8139too, from Junchang Wang.\n\n  10) Support kernel side dump filtering by ctmark in netfilter\n      ctnetlink, from Pablo Neira Ayuso.\n\n  11) Support byte-queue-limits in gianfar driver, from Paul Gortmaker.\n\n  12) Add new peek socket options to assist with socket migration, from\n      Pavel Emelyanov.\n\n  13) Add sch_plug packet scheduler whose queue is controlled by\n      userland daemons using explicit freeze and release commands.  From\n      Shriram Rajagopalan.\n\n  14) Fix FCOE checksum offload handling on transmit, from Yi Zou.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1846 commits)\n  Fix pppol2tp getsockname()\n  Remove printk from rds_sendmsg\n  ipv6: fix incorrent ipv6 ipsec packet fragment\n  cpsw: Hook up default ndo_change_mtu.\n  net: qmi_wwan: fix build error due to cdc-wdm dependecy\n  netdev: driver: ethernet: Add TI CPSW driver\n  netdev: driver: ethernet: add cpsw address lookup engine support\n  phy: add am79c874 PHY support\n  mlx4_core: fix race on comm channel\n  bonding: send igmp report for its master\n  fs_enet: Add MPC5125 FEC support and PHY interface selection\n  net: bpf_jit: fix BPF_S_LDX_B_MSH compilation\n  net: update the usage of CHECKSUM_UNNECESSARY\n  fcoe: use CHECKSUM_UNNECESSARY instead of CHECKSUM_PARTIAL on tx\n  net: do not do gso for CHECKSUM_UNNECESSARY in netif_needs_gso\n  ixgbe: Fix issues with SR-IOV loopback when flow control is disabled\n  net/hyperv: Fix the code handling tx busy\n  ixgbe: fix namespace issues when FCoE/DCB is not enabled\n  rtlwifi: Remove unused ETH_ADDR_LEN defines\n  igbvf: Use ETH_ALEN\n  ...\n\nFix up fairly trivial conflicts in drivers/isdn/gigaset/interface.c and\ndrivers/net/usb/{Kconfig,qmi_wwan.c} as per David.\n"
    },
    {
      "commit": "0d9cabdccedb79ee5f27b77ff51f29a9e7d23275",
      "tree": "8bfb64c3672d058eb90aec3c3a9c4f61cef9097c",
      "parents": [
        "701085b219016d38f105b031381b9cee6200253a",
        "3ce3230a0cff484e5130153f244d4fb8a56b3a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 18:11:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 18:11:21 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"Out of the 8 commits, one fixes a long-standing locking issue around\n  tasklist walking and others are cleanups.\"\n\n* \u0027for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: Walk task list under tasklist_lock in cgroup_enable_task_cg_list\n  cgroup: Remove wrong comment on cgroup_enable_task_cg_list()\n  cgroup: remove cgroup_subsys argument from callbacks\n  cgroup: remove extra calls to find_existing_css_set\n  cgroup: replace tasklist_lock with rcu_read_lock\n  cgroup: simplify double-check locking in cgroup_attach_proc\n  cgroup: move struct cgroup_pidlist out from the header file\n  cgroup: remove cgroup_attach_task_current_cg()\n"
    },
    {
      "commit": "3bdc0eba0b8b47797f4a76e377dd8360f317450f",
      "tree": "da6bd907f599402bc8db0a2484997fd4d3e06f7b",
      "parents": [
        "0184039a4b6727d6efd545919c773ef141090ae7"
      ],
      "author": {
        "name": "Ben Greear",
        "email": "greearb@candelatech.com",
        "time": "Sat Feb 11 15:39:30 2012 +0000"
      },
      "committer": {
        "name": "Jeff Kirsher",
        "email": "jeffrey.t.kirsher@intel.com",
        "time": "Fri Feb 24 01:37:35 2012 -0800"
      },
      "message": "net: Add framework to allow sending packets with customized CRC.\n\nThis is useful for testing RX handling of frames with bad\nCRCs.\n\nRequires driver support to actually put the packet on the\nwire properly.\n\nSigned-off-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nTested-by: Aaron Brown \u003caaron.f.brown@intel.com\u003e\nSigned-off-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\n"
    },
    {
      "commit": "c5905afb0ee6550b42c49213da1c22d67316c194",
      "tree": "253fdb322e6e5b257ffda3b9b66bce90a473a6f7",
      "parents": [
        "1cfa60dc7d7c7cc774a44eee47ff135a644a1f31"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 24 08:31:31 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 24 10:05:59 2012 +0100"
      },
      "message": "static keys: Introduce \u0027struct static_key\u0027, static_key_true()/false() and static_key_slow_[inc|dec]()\n\nSo here\u0027s a boot tested patch on top of Jason\u0027s series that does\nall the cleanups I talked about and turns jump labels into a\nmore intuitive to use facility. It should also address the\nvarious misconceptions and confusions that surround jump labels.\n\nTypical usage scenarios:\n\n        #include \u003clinux/static_key.h\u003e\n\n        struct static_key key \u003d STATIC_KEY_INIT_TRUE;\n\n        if (static_key_false(\u0026key))\n                do unlikely code\n        else\n                do likely code\n\nOr:\n\n        if (static_key_true(\u0026key))\n                do likely code\n        else\n                do unlikely code\n\nThe static key is modified via:\n\n        static_key_slow_inc(\u0026key);\n        ...\n        static_key_slow_dec(\u0026key);\n\nThe \u0027slow\u0027 prefix makes it abundantly clear that this is an\nexpensive operation.\n\nI\u0027ve updated all in-kernel code to use this everywhere. Note\nthat I (intentionally) have not pushed through the rename\nblindly through to the lowest levels: the actual jump-label\npatching arch facility should be named like that, so we want to\ndecouple jump labels from the static-key facility a bit.\n\nOn non-jump-label enabled architectures static keys default to\nlikely()/unlikely() branches.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: a.p.zijlstra@chello.nl\nCc: mathieu.desnoyers@efficios.com\nCc: davem@davemloft.net\nCc: ddaney.cavm@gmail.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20120222085809.GA26397@elte.hu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef64a54f6e558155b4f149bb10666b9e914b6c54",
      "tree": "bd7adba8d802aff2aaec0f5f2a9e2ba5431cafcc",
      "parents": [
        "da5ef6e51b327b41180b5d1000c06e8d3595a936"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Feb 21 07:31:34 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 21 15:03:48 2012 -0500"
      },
      "message": "sock: Introduce the SO_PEEK_OFF sock option\n\nThis one specifies where to start MSG_PEEK-ing queue data from. When\nset to negative value means that MSG_PEEK works as ususally -- peeks\nfrom the head of the queue always.\n\nWhen some bytes are peeked from queue and the peeking offset is non\nnegative it is moved forward so that the next peek will return next\nportion of data.\n\nWhen non-peeking recvmsg occurs and the peeking offset is non negative\nis is moved backward so that the next peek will still peek the proper\ndata (i.e. the one that would have been picked if there were no non\npeeking recv in between).\n\nThe offset is set using per-proto opteration to let the protocol handle\nthe locking issues and to check whether the peeking offset feature is\nsupported by the protocol the socket belongs to.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4040153087478993cbf0809f444400a3c808074c",
      "tree": "2dc7af85b0cf930f1656553bd38410b8c16601a6",
      "parents": [
        "191c542442fdf53cc3c496c00be13367fd9cd42d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:42 2012 +1100"
      },
      "message": "security: trim security.h\n\nTrim security.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "761b3ef50e1c2649cffbfa67a4dcb2dcdb7982ed",
      "tree": "67ab6a9a2520811c9c0b4d70d1c19b4bfca16237",
      "parents": [
        "61d1d219c4c0761059236a46867bc49943c4d29d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jan 31 13:47:36 2012 +0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 02 09:20:22 2012 -0800"
      },
      "message": "cgroup: remove cgroup_subsys argument from callbacks\n\nThe argument is not used at all, and it\u0027s not necessary, because\na specific callback handler of course knows which subsys it\nbelongs to.\n\nNow only -\u003epupulate() takes this argument, because the handlers of\nthis callback always call cgroup_add_file()/cgroup_add_files().\n\nSo we reduce a few lines of code, though the shrinking of object size\nis minimal.\n\n 16 files changed, 113 insertions(+), 162 deletions(-)\n\n   text    data     bss     dec     hex filename\n5486240  656987 7039960 13183187         c928d3 vmlinux.o.orig\n5486170  656987 7039960 13183117         c9288d vmlinux.o\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "9018e93948c6f8f95fbcc9fa05f6c403d6adb406",
      "tree": "491bb99eb3633a54a1d1f03e671ce16c922b6e74",
      "parents": [
        "f18da14565819ba43b8321237e2426a2914cc2ef"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Thu Jan 26 12:09:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 26 17:13:26 2012 -0500"
      },
      "message": "net: explicitly add jump_label.h header to sock.h\n\nCommit 36a1211970193ce215de50ed1e4e1272bc814df1 removed linux/module.h\ninclude statement from one of the headers that end up in net/sock.h.\nIt was providing us with static_branch() definition implicitly, so\nafter its removal the build got broken.\n\nTo fix this, and avoid having this happening in the future,\nlet me do the right thing and include linux/jump_label.h\nexplicitly in sock.h.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e90b31f4ba77027a7c21cbfc66404df0851ca21",
      "tree": "10dc6c443e2f058869d3953a90e6d48fb53f83ae",
      "parents": [
        "8cfd14ad1eb52e44cb1fe7b47a68126e45e04026"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Fri Jan 20 04:57:16 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 22 15:08:46 2012 -0500"
      },
      "message": "net: introduce res_counter_charge_nofail() for socket allocations\n\nThere is a case in __sk_mem_schedule(), where an allocation\nis beyond the maximum, but yet we are allowed to proceed.\nIt happens under the following condition:\n\n\tsk-\u003esk_wmem_queued + size \u003e\u003d sk-\u003esk_sndbuf\n\nThe network code won\u0027t revert the allocation in this case,\nmeaning that at some point later it\u0027ll try to do it. Since\nthis is never communicated to the underlying res_counter\ncode, there is an inbalance in res_counter uncharge operation.\n\nI see two ways of fixing this:\n\n1) storing the information about those allocations somewhere\n   in memcg, and then deducting from that first, before\n   we start draining the res_counter,\n2) providing a slightly different allocation function for\n   the res_counter, that matches the original behavior of\n   the network code more closely.\n\nI decided to go for #2 here, believing it to be more elegant,\nsince #1 would require us to do basically that, but in a more\nobscure way.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCC: Tejun Heo \u003ctj@kernel.org\u003e\nCC: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCC: Laurent Chavey \u003cchavey@google.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "376be5ff8a6a36efadd131860cf26841f366d44c",
      "tree": "af7c37842eeb37c4a79195c46fc1dabbaf84be6f",
      "parents": [
        "1a3bc369ba547c11ca8b3ed079d7584f27499e70"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Fri Jan 20 04:57:14 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 22 15:08:45 2012 -0500"
      },
      "message": "net: fix socket memcg build with !CONFIG_NET\n\nThere is still a build bug with the sock memcg code, that triggers\nwith !CONFIG_NET, that survived my series of randconfig builds.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCC: Hiroyouki Kamezawa \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1a3bc369ba547c11ca8b3ed079d7584f27499e70",
      "tree": "6de8906d5345da3eb8b3b34489f8437b653b3b19",
      "parents": [
        "af58f1d62853cd883c1fa26556fb470f05878f21"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sat Jan 21 09:03:10 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 22 15:08:45 2012 -0500"
      },
      "message": "kernel-doc: fix new warning in net/sock.h\n\nFix new kernel-doc warning:\n\nWarning(include/net/sock.h:372): No description found for parameter \u0027sk_cgrp_prioidx\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "abb434cb0539fb355c1c921f8fd761efbbac3462",
      "tree": "24a7d99ec161f8fd4dc9ff03c9c4cc93be883ce6",
      "parents": [
        "2494654d4890316e7340fb8b3458daad0474a1b9",
        "6350323ad8def2ac00d77cdee3b79c9b9fba75c4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 17:13:56 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 17:13:56 2011 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nConflicts:\n\tnet/bluetooth/l2cap_core.c\n\nJust two overlapping changes, one added an initialization of\na local variable, and another change added a new local variable.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0fd7bac6b6157eed6cf0cb86a1e88ba29e57c033",
      "tree": "bcc24e9c63587bc1e8e15ad60654de9c6f72883e",
      "parents": [
        "a0a129f8b6cff54ab479324a54aefdab5db4f240"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Dec 21 07:11:44 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 02:15:14 2011 -0500"
      },
      "message": "net: relax rcvbuf limits\n\nskb-\u003etruesize might be big even for a small packet.\n\nIts even bigger after commit 87fb4b7b533 (net: more accurate skb\ntruesize) and big MTU.\n\nWe should allow queueing at least one packet per receiver, even with a\nlow RCVBUF setting.\n\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c607b2ed84929e143d9fb5653c4b5d0109147cde",
      "tree": "6bb881df1115cb7fa045b94045cde43bd0684bf1",
      "parents": [
        "36b77a52087a9fca4228c06e0730750f9b6468f0"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Fri Dec 16 00:52:00 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 16 15:35:17 2011 -0500"
      },
      "message": "net: fix compilation with !CONFIG_NET\n\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCC: Hiroyouki Kamezawa \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9f048bfba15a22d1d1ce0c1f44567fa16bed4d25",
      "tree": "981459c56d97324d652a81284100f803cec6d69b",
      "parents": [
        "11ac75ed1eb9d8f5ff067fa9a82ebf5075989281"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Dec 13 03:59:08 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 13:45:17 2011 -0500"
      },
      "message": "net: fix build error if CONFIG_CGROUPS\u003dn\n\nReported-by: Christoph Paasch \u003cchristoph.paasch@uclouvain.be\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d1a4c0b37c296e600ffe08edb0db2dc1b8f550d7",
      "tree": "5c3675582cbbdc99f720aa1dcc1821e26c2be1ab",
      "parents": [
        "e1aab161e0135aafcd439be20b4f35e4b0922d95"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Sun Dec 11 21:47:04 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 12 19:04:10 2011 -0500"
      },
      "message": "tcp memory pressure controls\n\nThis patch introduces memory pressure controls for the tcp\nprotocol. It uses the generic socket memory pressure code\nintroduced in earlier patches, and fills in the\nnecessary data in cg_proto struct.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujtisu.com\u003e\nCC: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e1aab161e0135aafcd439be20b4f35e4b0922d95",
      "tree": "d0bcdf7a34a34020079238027b431ffc6dece307",
      "parents": [
        "180d8cd942ce336b2c869d324855c40c5db478ad"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Sun Dec 11 21:47:03 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 12 19:04:10 2011 -0500"
      },
      "message": "socket: initial cgroup code.\n\nThe goal of this work is to move the memory pressure tcp\ncontrols to a cgroup, instead of just relying on global\nconditions.\n\nTo avoid excessive overhead in the network fast paths,\nthe code that accounts allocated memory to a cgroup is\nhidden inside a static_branch(). This branch is patched out\nuntil the first non-root cgroup is created. So when nobody\nis using cgroups, even if it is mounted, no significant performance\npenalty should be seen.\n\nThis patch handles the generic part of the code, and has nothing\ntcp-specific.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujtsu.com\u003e\nCC: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "180d8cd942ce336b2c869d324855c40c5db478ad",
      "tree": "2424d854345d81464d6030ef8090a8e22bd414b0",
      "parents": [
        "e5671dfae59b165e2adfd4dfbdeab11ac8db5bda"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Sun Dec 11 21:47:02 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 12 19:04:10 2011 -0500"
      },
      "message": "foundations of per-cgroup memory pressure controlling.\n\nThis patch replaces all uses of struct sock fields\u0027 memory_pressure,\nmemory_allocated, sockets_allocated, and sysctl_mem to acessor\nmacros. Those macros can either receive a socket argument, or a mem_cgroup\nargument, depending on the context they live in.\n\nSince we\u0027re only doing a macro wrapping here, no performance impact at all is\nexpected in the case where we don\u0027t have cgroups disabled.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nReviewed-by: Hiroyouki Kamezawa \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5bc1421e34ecfe0bd4b26dc3232b7d5e25179144",
      "tree": "783ed95187915c06757a260b637308919b35d5a0",
      "parents": [
        "202ff1c26c768efeead20b388556eda265dc8352"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Nov 22 05:10:51 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 22 15:22:23 2011 -0500"
      },
      "message": "net: add network priority cgroup infrastructure (v4)\n\nThis patch adds in the infrastructure code to create the network priority\ncgroup.  The cgroup, in addition to the standard processes file creates two\ncontrol files:\n\n1) prioidx - This is a read-only file that exports the index of this cgroup.\nThis is a value that is both arbitrary and unique to a cgroup in this subsystem,\nand is used to index the per-device priority map\n\n2) priomap - This is a writeable file.  On read it reports a table of 2-tuples\n\u003cname:priority\u003e where name is the name of a network interface and priority is\nindicates the priority assigned to frames egresessing on the named interface and\noriginating from a pid in this cgroup\n\nThis cgroup allows for skb priority to be set prior to a root qdisc getting\nselected. This is benenficial for DCB enabled systems, in that it allows for any\napplication to use dcb configured priorities so without application modification\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nCC: Robert Love \u003crobert.w.love@intel.com\u003e\nCC: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e11c259f745889b55bc5596ca78271f2f5cf08d2",
      "tree": "5025f0bf9093e84d0643beb9097249c176dbbea7",
      "parents": [
        "8d26784cf0d04c1238e906efdd5de76439cb0a1e",
        "b4487c2d0edaf1332d7a9f11b5661044955ef5e2"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Thu Nov 17 13:11:43 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem\n\nConflicts:\n\tinclude/net/bluetooth/bluetooth.h\n"
    },
    {
      "commit": "c8f44affb7244f2ac3e703cab13d55ede27621bb",
      "tree": "62e7aea2916a8d7cab825fe500670c5113854c0f",
      "parents": [
        "a59e2ecb859f2ab03bb2e230709f8039472ad2c3"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Nov 15 15:29:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 16 17:43:10 2011 -0500"
      },
      "message": "net: introduce and use netdev_features_t for device features sets\n\nv2:\tadd couple missing conversions in drivers\n\tsplit unexporting netdev_fix_features()\n\timplemented %pNF\n\tconvert sock::sk_route_(no?)caps\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6e3e939f3b1bf8534b32ad09ff199d88800835a0",
      "tree": "78ec0638efbade2fdb0bebb7bad71410ded2e6c6",
      "parents": [
        "4fdbff0770bea059621bc4906fb7c7f5879f3ae1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Wed Nov 09 10:15:42 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Nov 09 16:01:02 2011 -0500"
      },
      "message": "net: add wireless TX status socket option\n\nThe 802.1X EAPOL handshake hostapd does requires\nknowing whether the frame was ack\u0027ed by the peer.\nCurrently, we fudge this pretty badly by not even\ntransmitting the frame as a normal data frame but\ninjecting it with radiotap and getting the status\nout of radiotap monitor as well. This is rather\ncomplex, confuses users (mon.wlan0 presence) and\ndoesn\u0027t work with all hardware.\n\nTo get rid of that hack, introduce a real wifi TX\nstatus option for data frame transmissions.\n\nThis works similar to the existing TX timestamping\nin that it reflects the SKB back to the socket\u0027s\nerror queue with a SCM_WIFI_STATUS cmsg that has\nan int indicating ACK status (0/1).\n\nSince it is possible that at some point we will\nwant to have TX timestamping and wifi status in a\nsingle errqueue SKB (there\u0027s little point in not\ndoing that), redefine SO_EE_ORIGIN_TIMESTAMPING\nto SO_EE_ORIGIN_TXSTATUS which can collect more\nthan just the timestamp; keep the old constant\nas an alias of course. Currently the internal APIs\ndon\u0027t make that possible, but it wouldn\u0027t be hard\nto split them up in a way that makes it possible.\n\nThanks to Neil Horman for helping me figure out\nthe functions that add the control messages.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "e56c57d0d3fdbbdf583d3af96bfb803b8dfa713e",
      "tree": "f415160c8fd39efebfc49d41493cc5b964503482",
      "parents": [
        "9ecd04bc04af7df98b3a93c571e31b6ef6a90681"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 08 17:07:07 2011 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 17:07:07 2011 -0500"
      },
      "message": "net: rename sk_clone to sk_clone_lock\n\nMake clear that sk_clone() and inet_csk_clone() return a locked socket.\n\nAdd _lock() prefix and kerneldoc.\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de47725421ad5627a5c905f4e40bb844ebc06d29",
      "tree": "bc23b0405d4a79dcc866a8b2877f128ee0ea9ffc",
      "parents": [
        "eb5589a8f0dab7e29021344228856339e6a1249c"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 13:46:22 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:32:32 2011 -0400"
      },
      "message": "include: replace linux/module.h with \"struct module\" wherever possible\n\nThe \u003clinux/module.h\u003e pretty much brings in the kitchen sink along\nwith it, so it should be avoided wherever reasonably possible in\nterms of being included from other commonly used \u003clinux/something.h\u003e\nfiles, as it results in a measureable increase on compile times.\n\nThe worst culprit was probably device.h since it is used everywhere.\nThis file also had an implicit dependency/usage of mutex.h which was\nmasked by module.h, and is also fixed here at the same time.\n\nThere are over a dozen other headers that simply declare the\nstruct instead of pulling in the whole file, so follow their lead\nand simply make it a few more.\n\nMost of the implicit dependencies on module.h being present by\nthese headers pulling it in have been now weeded out, so we can\nfinally make this change with hopefully minimal breakage.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "bdeab991918663aed38757904219e8398214334c",
      "tree": "bc6c02da7ed88e3e568677b4a35fb4e55de363de",
      "parents": [
        "792df22cd0499b4e662d4618b0008fdcfef8b04e"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Sun Aug 14 19:45:55 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Aug 17 20:06:03 2011 -0700"
      },
      "message": "rps: Add flag to skb to indicate rxhash is based on L4 tuple\n\nThe l4_rxhash flag was added to the skb structure to indicate\nthat the rxhash value was computed over the 4 tuple for the\npacket which includes the port information in the encapsulated\ntransport packet.  This is used by the stack to preserve the\nrxhash value in __skb_rx_tunnel.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d3ec4844d449cf7af9e749f73ba2052fb7b72fc2",
      "tree": "c515913e85f7e50878c83da2a88bc5a7269d087c",
      "parents": [
        "0003230e8200699860f0b10af524dc47bf8aecad",
        "df2e301fee3c2c2a87592151397ad7699bb14c37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  fs: Merge split strings\n  treewide: fix potentially dangerous trailing \u0027;\u0027 in #defined values/expressions\n  uwb: Fix misspelling of neighbourhood in comment\n  net, netfilter: Remove redundant goto in ebt_ulog_packet\n  trivial: don\u0027t touch files that are removed in the staging tree\n  lib/vsprintf: replace link to Draft by final RFC number\n  doc: Kconfig: `to be\u0027 -\u003e `be\u0027\n  doc: Kconfig: Typo: square -\u003e squared\n  doc: Konfig: Documentation/power/{pm \u003d\u003e apm-acpi}.txt\n  drivers/net: static should be at beginning of declaration\n  drivers/media: static should be at beginning of declaration\n  drivers/i2c: static should be at beginning of declaration\n  XTENSA: static should be at beginning of declaration\n  SH: static should be at beginning of declaration\n  MIPS: static should be at beginning of declaration\n  ARM: static should be at beginning of declaration\n  rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n  Update my e-mail address\n  PCIe ASPM: forcedly -\u003e forcibly\n  gma500: push through device driver tree\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-ep93xx/dma-m2p.c (deleted)\n - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)\n - drivers/net/r8169.c (just context changes)\n"
    },
    {
      "commit": "d8bf4ca9ca9576548628344c9725edd3786e90b1",
      "tree": "df338f50a5af6bc3651bd863b79fa91e6b1e9e20",
      "parents": [
        "eb032b9837a958e21ca000358a5bde5e17192ddb"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Fri Jul 08 14:39:41 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jul 08 22:21:58 2011 +0200"
      },
      "message": "rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n\nSince ca5ecddf (rcu: define __rcu address space modifier for sparse)\nrcu_dereference_check use rcu_read_lock_held as a part of condition\nautomatically so callers do not have to do that as well.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "1cdebb423202e255366a321814fc6df079802a0d",
      "tree": "9656b45cf71a24ad8b0ce743b8b9f975a2000b3e",
      "parents": [
        "380b153cf59a5610ca97319fdb9601b8c453ece0"
      ],
      "author": {
        "name": "Shirley Ma",
        "email": "mashirle@us.ibm.com",
        "time": "Wed Jul 06 12:17:30 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 07 04:40:21 2011 -0700"
      },
      "message": "sock.h: Add a new sock zero-copy flag\n\nSigned-off-by: Shirley Ma \u003cxma@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e12fe68ce34d60c04bb1ddb1d3cc5c3022388fe4",
      "tree": "83c0e192ccaa4752c80b6131a7d0aa8272b5d0d0",
      "parents": [
        "7329f0d58de01878d9ce4f0be7a76e136f223eef",
        "712ae51afd55b20c04c5383d02ba5d10233313b1"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 23:23:37 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 05 23:23:37 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "e1f91f82b8bb031fe1b7731fb3666fa68c97fd38",
      "tree": "aab680d81d5eb4892a50aabfa2bc6e854f2eaf42",
      "parents": [
        "d364b601163841c24287540ae3548d19a0d2932e"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jun 27 19:07:08 2011 +0300"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jun 28 10:48:34 2011 +0200"
      },
      "message": "treewide: fix kernel-doc warnings\n\nFix \u0027make htmldocs\u0027 warnings:\n\nWarning(/include/linux/hrtimer.h:153): No description found for\nparameter \u0027clockid\u0027\nWarning(/include/linux/device.h:604): Excess struct/union/enum/typedef\nmember \u0027of_match\u0027 description in \u0027device\u0027\nWarning(/include/net/sock.h:349): Excess struct/union/enum/typedef\nmember \u0027sk_rmem_alloc\u0027 description in \u0027sock\u0027\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4d258b25d947521c8b913154db61ec55198243f8",
      "tree": "4f74f744797e92a0555705dc121ac8aaa041e750",
      "parents": [
        "a64227b0855c42b5c037011afa80580ca3228527"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jun 27 19:07:08 2011 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 16:06:19 2011 -0700"
      },
      "message": "Fix some kernel-doc warnings\n\nFix \u0027make htmldocs\u0027 warnings:\n\n  Warning(/include/linux/hrtimer.h:153): No description found for parameter \u0027clockid\u0027\n  Warning(/include/linux/device.h:604): Excess struct/union/enum/typedef member \u0027of_match\u0027 description in \u0027device\u0027\n  Warning(/include/net/sock.h:349): Excess struct/union/enum/typedef member \u0027sk_rmem_alloc\u0027 description in \u0027sock\u0027\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6b7a407865aab9f849dd99a71072b7cd1175116",
      "tree": "42995f2e25b777e8930b5ac180599f8d4e655df6",
      "parents": [
        "aedfebbaa7a4883dc568d8d32b7b32a0f9833f41"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jun 06 10:43:46 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 06 22:55:11 2011 -0700"
      },
      "message": "net: remove interrupt.h inclusion from netdevice.h\n\n* remove interrupt.g inclusion from netdevice.h -- not needed\n* fixup fallout, add interrupt.h and hardirq.h back where needed.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c01a80cfec6f806246f31ff2680cd3639b30e67",
      "tree": "0b554aad2ec1da71ecf6339d4ba51617bfe1dc3c",
      "parents": [
        "c44d79950b2daa1025e62eede73e4e4a274d1ef3",
        "4a9f65f6304a00f6473e83b19c1e83caa1e42530"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 11 13:44:25 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 11 13:44:25 2011 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/smsc911x.c\n"
    },
    {
      "commit": "912d398d28b4359c2fb1f3763f1ce4f86de8350e",
      "tree": "5e5e0c4120ccff8b3885dc2660e37634115c8bac",
      "parents": [
        "7b1b3afadf33627e707c5038af991ae2ce9b5ac5"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Wed Apr 06 18:40:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 06 23:05:01 2011 -0700"
      },
      "message": "net: fix skb_add_data_nocache() to calc csum correctly\n\ncommit c6e1a0d12ca7b4f22c58e55a16beacfb7d3d8462 broken the calc\n (net: Allow no-cache copy from user on transmit)\nof checksum, which may cause some tcp packets be dropped because\nincorrect checksum. ssh does not work under today\u0027s net-next-2.6\ntree.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nAcked-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6e1a0d12ca7b4f22c58e55a16beacfb7d3d8462",
      "tree": "6955c20538050329d0bdffdf24a787507ae6fdf1",
      "parents": [
        "14f98f258f1936e0dba77474bd7eda63f61a9826"
      ],
      "author": {
        "name": "Tom Herbert",
        "email": "therbert@google.com",
        "time": "Mon Apr 04 22:30:30 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Apr 04 22:30:30 2011 -0700"
      },
      "message": "net: Allow no-cache copy from user on transmit\n\nThis patch uses __copy_from_user_nocache on transmit to bypass data\ncache for a performance improvement.  skb_add_data_nocache and\nskb_copy_to_page_nocache can be called by sendmsg functions to use\nthis feature, initial support is in tcp_sendmsg.  This functionality is\nconfigurable per device using ethtool.\n\nPresumably, this feature would only be useful when the driver does\nnot touch the data.  The feature is turned on by default if a device\nindicates that it does some form of checksum offload; it is off by\ndefault for devices that do no checksum offload or indicate no checksum\nis necessary.  For the former case copy-checksum is probably done\nanyway, in the latter case the device is likely loopback in which case\nthe no cache copy is probably not beneficial.\n\nThis patch was tested using 200 instances of netperf TCP_RR with\n1400 byte request and one byte reply.  Platform is 16 core AMD x86.\n\nNo-cache copy disabled:\n   672703 tps, 97.13% utilization\n   50/90/99% latency:244.31 484.205 1028.41\n\nNo-cache copy enabled:\n   702113 tps, 96.16% utilization,\n   50/90/99% latency 238.56 467.56 956.955\n\nUsing 14000 byte request and response sizes demonstrate the\neffects more dramatically:\n\nNo-cache copy disabled:\n   79571 tps, 34.34 %utlization\n   50/90/95% latency 1584.46 2319.59 5001.76\n\nNo-cache copy enabled:\n   83856 tps, 34.81% utilization\n   50/90/95% latency 2508.42 2622.62 2735.88\n\nNote especially the effect on latency tail (95th percentile).\n\nThis seems to provide a nice performance improvement and is\nconsistent in the tests I ran.  Presumably, this would provide\nthe greatest benfits in the presence of an application workload\nstressing the cache and a lot of transmit data happening.\n\nSigned-off-by: Tom Herbert \u003ctherbert@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "eaefd1105bc431ef329599e307a07f2a36ae7872",
      "tree": "658eeed417654c8f6015d4d5f957f5a1b5e9521f",
      "parents": [
        "04cfa852ff8dab923640500ee850d19e75bacabc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Feb 18 03:26:36 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 22 10:19:31 2011 -0800"
      },
      "message": "net: add __rcu annotations to sk_wq and wq\n\nAdd proper RCU annotations/verbs to sk_wq and wq members\n\nFix __sctp_write_space() sk_sleep() abuse (and sock-\u003ewq access)\n\nFix sunrpc sk_sleep() abuse too\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5403c8a29521a6eb02f9283dbbe0184527f8f42b",
      "tree": "4f1ca17feda4dfa88f53eceeaa39583ec840d27e",
      "parents": [
        "c79b9e4936142d5ed26073d58bdd4a5a0ac62f32",
        "c4c93106741bbf61ecd05a2a835af8e3bf31c1bd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 31 13:13:24 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 31 13:13:24 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "709b46e8d90badda1898caea50483c12af178e96",
      "tree": "799b57704dda3684777fb57a6e413dabac78858c",
      "parents": [
        "13ad17745c2cbd437d9e24b2d97393e0be11c439"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Jan 29 16:15:56 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 30 01:14:38 2011 -0800"
      },
      "message": "net: Add compat ioctl support for the ipv4 multicast ioctl SIOCGETSGCNT\n\nSIOCGETSGCNT is not a unique ioctl value as it it maps tio SIOCPROTOPRIVATE +1,\nwhich unfortunately means the existing infrastructure for compat networking\nioctls is insufficient.  A trivial compact ioctl implementation would conflict\nwith:\n\nSIOCAX25ADDUID\nSIOCAIPXPRISLT\nSIOCGETSGCNT_IN6\nSIOCGETSGCNT\nSIOCRSSCAUSE\nSIOCX25SSUBSCRIP\nSIOCX25SDTEFACILITIES\n\nTo make this work I have updated the compat_ioctl decode path to mirror the\nthe normal ioctl decode path.  I have added an ipv4 inet_compat_ioctl function\nso that I can have ipv4 specific compat ioctls.   I have added a compat_ioctl\nfunction into struct proto so I can break out ioctls by which kind of ip socket\nI am using.  I have added a compat_raw_ioctl function because SIOCGETSGCNT only\nworks on raw sockets.  I have added a ipmr_compat_ioctl that mirrors the normal\nipmr_ioctl.\n\nThis was necessary because unfortunately the struct layout for the SIOCGETSGCNT\nhas unsigned longs in it so changes between 32bit and 64bit kernels.\n\nThis change was sufficient to run a 32bit ip multicast routing daemon on a\n64bit kernel.\n\nReported-by: Bill Fenner \u003cfenner@aristanetworks.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "80f8f1027b99660897bdeaeae73002185d829906",
      "tree": "b8aafe71974b2b7295f20eeb1fad6191fadd8551",
      "parents": [
        "d6ae3bae3d1bf7a8bf367e29f2cac0788dcd0db5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jan 18 07:46:52 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 18 21:33:05 2011 -0800"
      },
      "message": "net: filter: dont block softirqs in sk_run_filter()\n\nPacket filter (BPF) doesnt need to disable softirqs, being fully\nre-entrant and lock-less.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "928c41e7a15d1164bb725f3445575f4651b5b9f0",
      "tree": "9e46a8e57d9ee136bd3ba7c21102533c9bf3e287",
      "parents": [
        "0ab03c2b1478f2438d2c80204f7fef65b1bca9cf"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Jan 08 17:39:21 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 09 16:26:51 2011 -0800"
      },
      "message": "net/sock.h: make some fields private to fix kernel-doc warning(s)\n\nFix new kernel-doc notation warning in sock.h by annotating skc_dontcopy_*\nas private fields.\n\nWarning(include/net/sock.h:163): No description found for parameter \u0027skc_dontcopy_end[0]\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4aa9e05a61b845541fa6f5b1d246976922601f0",
      "tree": "ca94478c3df281ab76a3399f5ba6341ade3f5791",
      "parents": [
        "1dc0f3c54ce1df957f99c17b145488fd03eb1a59",
        "4b8fe66300acb2fba8b16d62606e0d30204022fc"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:27:22 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 17 12:27:22 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/bnx2x/bnx2x.h\n\tdrivers/net/wireless/iwlwifi/iwl-1000.c\n\tdrivers/net/wireless/iwlwifi/iwl-6000.c\n\tdrivers/net/wireless/iwlwifi/iwl-core.h\n\tdrivers/vhost/vhost.c\n"
    },
    {
      "commit": "fcbdf09d9652c8919dcf47072e3ae7dcb4eb98ac",
      "tree": "51e3cc1fbd813a880ea09dc31a12683b73d87e05",
      "parents": [
        "2984961c388381c1830f95e1c2dc2137301b1009"
      ],
      "author": {
        "name": "Octavian Purdila",
        "email": "opurdila@ixiacom.com",
        "time": "Thu Dec 16 14:26:56 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 16 14:26:56 2010 -0800"
      },
      "message": "net: fix nulls list corruptions in sk_prot_alloc\n\nSpecial care is taken inside sk_port_alloc to avoid overwriting\nskc_node/skc_nulls_node. We should also avoid overwriting\nskc_bind_node/skc_portaddr_node.\n\nThe patch fixes the following crash:\n\n BUG: unable to handle kernel paging request at fffffffffffffff0\n IP: [\u003cffffffff812ec6dd\u003e] udp4_lib_lookup2+0xad/0x370\n [\u003cffffffff812ecc22\u003e] __udp4_lib_lookup+0x282/0x360\n [\u003cffffffff812ed63e\u003e] __udp4_lib_rcv+0x31e/0x700\n [\u003cffffffff812bba45\u003e] ? ip_local_deliver_finish+0x65/0x190\n [\u003cffffffff812bbbf8\u003e] ? ip_local_deliver+0x88/0xa0\n [\u003cffffffff812eda35\u003e] udp_rcv+0x15/0x20\n [\u003cffffffff812bba45\u003e] ip_local_deliver_finish+0x65/0x190\n [\u003cffffffff812bbbf8\u003e] ip_local_deliver+0x88/0xa0\n [\u003cffffffff812bb2cd\u003e] ip_rcv_finish+0x32d/0x6f0\n [\u003cffffffff8128c14c\u003e] ? netif_receive_skb+0x99c/0x11c0\n [\u003cffffffff812bb94b\u003e] ip_rcv+0x2bb/0x350\n [\u003cffffffff8128c14c\u003e] netif_receive_skb+0x99c/0x11c0\n\nSigned-off-by: Leonard Crestez \u003clcrestez@ixiacom.com\u003e\nSigned-off-by: Octavian Purdila \u003copurdila@ixiacom.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68835aba4d9b74e2f94106d13b6a4bddc447c4c8",
      "tree": "468a9465acfa027791facef13fb6ef5129dda257",
      "parents": [
        "defb3519a64141608725e2dac5a5aa9a3c644bae"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 30 19:04:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 09 20:05:58 2010 -0800"
      },
      "message": "net: optimize INET input path further\n\nFollowup of commit b178bb3dfc30 (net: reorder struct sock fields)\n\nOptimize INET input path a bit further, by :\n\n1) moving sk_refcnt close to sk_lock.\n\nThis reduces number of dirtied cache lines by one on 64bit arches (and\n64 bytes cache line size).\n\n2) moving inet_daddr \u0026 inet_rcv_saddr at the beginning of sk\n\n(same cache line than hash / family / bound_dev_if / nulls_node)\n\nThis reduces number of accessed cache lines in lookups by one, and dont\nincrease size of inet and timewait socks.\ninet and tw sockets now share same place-holder for these fields.\n\nBefore patch :\n\noffsetof(struct sock, sk_refcnt) \u003d 0x10\noffsetof(struct sock, sk_lock) \u003d 0x40\noffsetof(struct sock, sk_receive_queue) \u003d 0x60\noffsetof(struct inet_sock, inet_daddr) \u003d 0x270\noffsetof(struct inet_sock, inet_rcv_saddr) \u003d 0x274\n\nAfter patch :\n\noffsetof(struct sock, sk_refcnt) \u003d 0x44\noffsetof(struct sock, sk_lock) \u003d 0x48\noffsetof(struct sock, sk_receive_queue) \u003d 0x68\noffsetof(struct inet_sock, inet_daddr) \u003d 0x0\noffsetof(struct inet_sock, inet_rcv_saddr) \u003d 0x4\n\ncompute_score() (udp or tcp) now use a single cache line per ignored\nitem, instead of two.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe6c791570efe717946ea7b7dd50aec96b70d551",
      "tree": "1becb5e8aea7a9c9a7d78f987bd73b0a5d8ee434",
      "parents": [
        "f8bf5681cf15f77692c8ad8cb95d059ff7c622c9",
        "f19872575ff7819a3723154657a497d9bca66b33"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 13:15:38 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 08 13:47:38 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/ath/ath9k/ar9003_eeprom.c\n\tnet/llc/af_llc.c\n"
    },
    {
      "commit": "46bcf14f44d8f31ecfdc8b6708ec15a3b33316d9",
      "tree": "4d2a200387242e1ed2d95ccd367c77750379e8cc",
      "parents": [
        "e7dfc8dbdf9a7fa1ef04c63100a71f4102b82ed3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Dec 06 09:29:43 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 06 09:29:43 2010 -0800"
      },
      "message": "filter: fix sk_filter rcu handling\n\nPavel Emelyanov tried to fix a race between sk_filter_(de|at)tach and\nsk_clone() in commit 47e958eac280c263397\n\nProblem is we can have several clones sharing a common sk_filter, and\nthese clones might want to sk_filter_attach() their own filters at the\nsame time, and can overwrite old_filter-\u003ercu, corrupting RCU queues.\n\nWe can not use filter-\u003ercu without being sure no other thread could do\nthe same thing.\n\nSwitch code to a more conventional ref-counting technique : Do the\natomic decrement immediately and queue one rcu call back when last\nreference is released.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dca9b2404a6d6579828da2425c051462701efd3f",
      "tree": "c8f5fdd5f52e1ede8716703323f4297234a1e687",
      "parents": [
        "b672083ed36a49c323737b7c7e1d5264a7c193af"
      ],
      "author": {
        "name": "Shan Wei",
        "email": "shanwei@cn.fujitsu.com",
        "time": "Wed Dec 01 18:05:17 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Dec 02 13:27:33 2010 -0800"
      },
      "message": "net: kill unused macros from head file\n\nThese macros have been defined for several years since v2.6.12-rc2（tracing by git）,\nbut never be used. So remove them.\n\nSigned-off-by: Shan Wei \u003cshanwei@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b178bb3dfc30d9555bdd2401e95af98e23e83e10",
      "tree": "ec52d739015de589ceca1d31c5802305d94c9f6d",
      "parents": [
        "c31504dc0d1dc853dcee509d9999169a9097a717"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 16 05:56:04 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 16 11:17:43 2010 -0800"
      },
      "message": "net: reorder struct sock fields\n\nRight now, fields in struct sock are not optimally ordered, because each\npath (RX softirq, TX completion, RX user,  TX user) has to touch fields\nthat are contained in many different cache lines.\n\nThe really critical thing is to shrink number of cache lines that are\nused at RX softirq time : CPU handling softirqs for a device can receive\nmany frames per second for many sockets. If load is too big, we can drop\nframes at NIC level. RPS or multiqueue cards can help, but better reduce\nlatency if possible.\n\nThis patch starts with UDP protocol, then additional patches will try to\nreduce latencies of other ones as well.\n\nAt RX softirq time, fields of interest for UDP protocol are :\n(not counting ones in inet struct for the lookup)\n\nRead/Written:\nsk_refcnt   (atomic increment/decrement)\nsk_rmem_alloc \u0026 sk_backlog.len (to check if there is room in queues)\nsk_receive_queue\nsk_backlog (if socket locked by user program)\nsk_rxhash\nsk_forward_alloc\nsk_drops\n\nRead only:\nsk_rcvbuf (sk_rcvqueues_full())\nsk_filter\nsk_wq\nsk_policy[0]\nsk_flags\n\nAdditional notes :\n\n- sk_backlog has one hole on 64bit arches. We can fill it to save 8\nbytes.\n- sk_backlog is used only if RX sofirq handler finds the socket while\nlocked by user.\n- sk_rxhash is written only once per flow.\n- sk_drops is written only if queues are full\n\nFinal layout :\n\n[1] One section grouping all read/write fields, but placing rxhash and\nsk_backlog at the end of this section.\n\n[2] One section grouping all read fields in RX handler\n   (sk_filter, sk_rcv_buf, sk_wq)\n\n[3] Section used by other paths\n\nI\u0027ll post a patch on its own to put sk_refcnt at the end of struct\nsock_common so that it shares same cache line than section [1]\n\nNew offsets on 64bit arch :\n\nsizeof(struct sock)\u003d0x268\noffsetof(struct sock, sk_refcnt)  \u003d0x10\noffsetof(struct sock, sk_lock)    \u003d0x48\noffsetof(struct sock, sk_receive_queue)\u003d0x68\noffsetof(struct sock, sk_backlog)\u003d0x80\noffsetof(struct sock, sk_rmem_alloc)\u003d0x80\noffsetof(struct sock, sk_forward_alloc)\u003d0x98\noffsetof(struct sock, sk_rxhash)\u003d0x9c\noffsetof(struct sock, sk_rcvbuf)\u003d0xa4\noffsetof(struct sock, sk_drops) \u003d0xa0\noffsetof(struct sock, sk_filter)\u003d0xa8\noffsetof(struct sock, sk_wq)\u003d0xb0\noffsetof(struct sock, sk_policy)\u003d0xd0\noffsetof(struct sock, sk_flags) \u003d0xe0\n\nInstead of :\n\nsizeof(struct sock)\u003d0x270\noffsetof(struct sock, sk_refcnt)  \u003d0x10\noffsetof(struct sock, sk_lock)    \u003d0x50\noffsetof(struct sock, sk_receive_queue)\u003d0xc0\noffsetof(struct sock, sk_backlog)\u003d0x70\noffsetof(struct sock, sk_rmem_alloc)\u003d0xac\noffsetof(struct sock, sk_forward_alloc)\u003d0x10c\noffsetof(struct sock, sk_rxhash)\u003d0x128\noffsetof(struct sock, sk_rcvbuf)\u003d0x4c\noffsetof(struct sock, sk_drops) \u003d0x16c\noffsetof(struct sock, sk_filter)\u003d0x198\noffsetof(struct sock, sk_wq)\u003d0x88\noffsetof(struct sock, sk_policy)\u003d0x98\noffsetof(struct sock, sk_flags) \u003d0x130\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c31504dc0d1dc853dcee509d9999169a9097a717",
      "tree": "8ee1d5616b7140759cf742ef89cf9f7ba1c01b20",
      "parents": [
        "213b15ca818adf7766cd7162c2159a6ecdd3bab8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Nov 15 19:58:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 16 11:17:43 2010 -0800"
      },
      "message": "udp: use atomic_inc_not_zero_hint\n\nUDP sockets refcount is usually 2, unless an incoming frame is going to\nbe queued in receive or backlog queue.\n\nUsing atomic_inc_not_zero_hint() permits to reduce latency, because\nprocessor issues less memory transactions.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d987e5c75107ca7515fa19e857cfa24aab6ec8f",
      "tree": "6392c5f08f0df39d42a079336f6be3960ac404dc",
      "parents": [
        "67286640f638f5ad41a946b9a3dc75327950248f"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 09 23:24:26 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 10 12:12:00 2010 -0800"
      },
      "message": "net: avoid limits overflow\n\nRobin Holt tried to boot a 16TB machine and found some limits were\nreached : sysctl_tcp_mem[2], sysctl_udp_mem[2]\n\nWe can switch infrastructure to use long \"instead\" of \"int\", now\natomic_long_t primitives are available for free.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReported-by: Robin Holt \u003cholt@sgi.com\u003e\nReviewed-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d7da9ddd9a4eb7808698d04b98bf9d62d02649b",
      "tree": "b170122c08d47be35a056782be54573ba19fe0b0",
      "parents": [
        "1c87733d0682547050ccccb400cdac425fa43b39"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 03:47:05 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 25 14:18:28 2010 -0700"
      },
      "message": "net: add __rcu annotation to sk_filter\n\nAdd __rcu annotation to :\n        (struct sock)-\u003esk_filter\n\nAnd use appropriate rcu primitives to reduce sparse warnings if\nCONFIG_SPARSE_RCU_POINTER\u003dy\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "7a91b434e2bad554b709265db7603b1aa52dd92e"
}
