)]}'
{
  "log": [
    {
      "commit": "5df15196a2bbf16ca4c6a797ec00ff36d0d5c179",
      "tree": "1ce28e0a92ef00a926ff98b81dff6cfd78831a61",
      "parents": [
        "c6d2d445d8dee04cde47eb4021636399a4239e9f"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Sun Dec 26 10:22:22 2010 +0100"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Jan 13 12:05:11 2011 +0100"
      },
      "message": "netfilter: xt_comment: drop unneeded unsigned qualifier\n\nSince a string is stored, and not something like a MAC address that\nwould rely on (un)signedness, drop the qualifier.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "763f8d0ed4f1ce38b35cc0e05482b7799b82789b",
      "tree": "bc9938998b6af45a44bb35dba078851ccb21d95e",
      "parents": [
        "f2431e6e9255461eb1476340a89ad32ad4b38b03"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:45:01 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, svc counters moved in ip_vs_ctl,c\n\nLast two global vars to be moved,\nip_vs_ftpsvc_counter and ip_vs_nullsvc_counter.\n\n[horms@verge.net.au: removed whitespace-change-only hunk]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f2431e6e9255461eb1476340a89ad32ad4b38b03",
      "tree": "934974c80d2c01b44768369ca9b188f64c6ab979",
      "parents": [
        "f6340ee0c6b9498ec918a7bb2f44e20abb8b2833"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:45:00 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, trash handling\n\ntrash list per namspace,\nand reordering of some params in dst struct.\n\n[ horms@verge.net.au: Use cancel_delayed_work_sync() instead of\n\t              cancel_rearming_delayed_work(). Found during\n\t\t      merge conflict resoliution ]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f6340ee0c6b9498ec918a7bb2f44e20abb8b2833",
      "tree": "46e0f99416479f31bbd8093e18c360171e86fd59",
      "parents": [
        "a0840e2e165a370ca24a59545e564e9881a55891"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:59 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, defense work timer.\n\nThis patch makes defense work timer per name-space,\nA net ptr had to be added to the ipvs struct,\nsince it\u0027s needed by defense_work_handler.\n\n[ horms@verge.net.au: Use cancel_delayed_work_sync() instead of\n\t              cancel_rearming_delayed_work(). Found during\n\t\t      merge conflict resoliution ]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "a0840e2e165a370ca24a59545e564e9881a55891",
      "tree": "deb10e3931be9410aebbb55e5fccbd42a5edd633",
      "parents": [
        "6e67e586e7289c144d5a189d6e0fa7141d025746"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:58 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, ip_vs_ctl local vars moved to ipvs struct.\n\nMoving global vars to ipvs struct, except for svc table lock.\nNext patch for ctl will be drop-rate handling.\n\n*v3\n__ip_vs_mutex remains global\n ip_vs_conntrack_enabled(struct netns_ipvs *ipvs)\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "6e67e586e7289c144d5a189d6e0fa7141d025746",
      "tree": "33a064ac5fa2e2ac4270c6361d5566bc99c671e6",
      "parents": [
        "b17fc9963f837ef1acfe36e193108fb16ed58647"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:57 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, connection hash got net as param.\n\nConnection hash table is now name space aware.\ni.e. net ptr \u003e\u003e 8 is xor:ed to the hash,\nand this is the first param to be compared.\nThe net struct is 0xa40 in size ( a little bit smaller for 32 bit arch:s)\nand cache-line aligned, so a ptr \u003e\u003e 5 might be a more clever solution ?\n\nAll lookups where net is compared uses net_eq() which returns 1 when netns\nis disabled, and the compiler seems to do something clever in that case.\n\nip_vs_conn_fill_param() have *net as first param now.\n\nThree new inlines added to keep conn struct smaller\nwhen names space is disabled.\n- ip_vs_conn_net()\n- ip_vs_conn_net_set()\n- ip_vs_conn_net_eq()\n\n*v3\n  moved net compare to the end in \"fast path\"\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "b17fc9963f837ef1acfe36e193108fb16ed58647",
      "tree": "8c41814df22f7b788bc2103c39ab8fd4882a0091",
      "parents": [
        "f131315fa272d337dfca7dad2f033ff5296dad65"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:56 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns, ip_vs_stats and its procfs\n\nThe statistic counter locks for every packet are now removed,\nand that statistic is now per CPU, i.e. no locks needed.\nHowever summing is made in ip_vs_est into ip_vs_stats struct\nwhich is moved to ipvs struc.\n\nprocfs, ip_vs_stats now have a \"per cpu\" count and a grand total.\nA new function seq_file_single_net() in ip_vs.h created for handling of\nsingle_open_net() since it does not place net ptr in a struct, like others.\n\n/var/lib/lxc # cat /proc/net/ip_vs_stats_percpu\n       Total Incoming Outgoing         Incoming         Outgoing\nCPU    Conns  Packets  Packets            Bytes            Bytes\n  0        0        3        1               9D               34\n  1        0        1        2               49               70\n  2        0        1        2               34               76\n  3        1        2        2               70               74\n  ~        1        7        7              18A              18E\n\n     Conns/s   Pkts/s   Pkts/s          Bytes/s          Bytes/s\n           0        0        0                0                0\n\n*v3\nip_vs_stats reamains as before, instead ip_vs_stats_percpu is added.\nu64 seq lock added\n\n*v4\nBug correction inbytes and outbytes as own vars..\nper_cpu counter for all stats now as suggested by Julian.\n\n[horms@verge.net.au: removed whitespace-change-only hunk]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "f131315fa272d337dfca7dad2f033ff5296dad65",
      "tree": "4abe0b8cd421229e27be614e23e3bbc800dff98b",
      "parents": [
        "29c2026fd4980c144d9c746dc1565060f08e5796"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:55 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns awareness to ip_vs_sync\n\nAll global variables moved to struct ipvs,\nmost external changes fixed (i.e. init_net removed)\nin sync_buf create  + 4 replaced by sizeof(struct..)\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "29c2026fd4980c144d9c746dc1565060f08e5796",
      "tree": "37373a66fac997e01c83e774c21e00dca713598a",
      "parents": [
        "ab8a5e8408c3df2d654611bffc3aaf04f418b266"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:54 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns awareness to ip_vs_est\n\nAll variables moved to struct ipvs,\nmost external changes fixed (i.e. init_net removed)\n\n*v3\n timer per ns instead of a common timer in estimator.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "ab8a5e8408c3df2d654611bffc3aaf04f418b266",
      "tree": "665454a0426b9209a53018ee71103914b29d95a7",
      "parents": [
        "9bbac6a904d0816dae58b454692c54d6773cc20d"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:53 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:28 2011 +0900"
      },
      "message": "IPVS: netns awareness to ip_vs_app\n\nAll variables moved to struct ipvs,\nmost external changes fixed (i.e. init_net removed)\n\nin ip_vs_protocol param struct net *net added to:\n - register_app()\n - unregister_app()\nThis affected almost all proto_xxx.c files\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "9bbac6a904d0816dae58b454692c54d6773cc20d",
      "tree": "f29698f1230e2a0b6fda2546f1f6da256d442979",
      "parents": [
        "9330419d9aa4f97df412ac9be9fc0388c67dd315"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:52 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns, common protocol changes and use of appcnt.\n\nappcnt and timeout_table moved from struct ip_vs_protocol to\nip_vs proto_data.\n\nstruct net *net added as first param to\n - register_app()\n - unregister_app()\n - app_conn_bind()\n - ip_vs_conn_new()\n\n[horms@verge.net.au: removed cosmetic-change-only hunk]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "9330419d9aa4f97df412ac9be9fc0388c67dd315",
      "tree": "3fdd9103f299fcd2dfafcf0f51d1b5c4430987c2",
      "parents": [
        "88fe2d372793a71ae4f6319a16f537d56a83906c"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:51 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns, use ip_vs_proto_data as param.\n\nip_vs_protocol *pp is replaced by ip_vs_proto_data *pd in\nfunction call in ip_vs_protocol struct i.e. :,\n - timeout_change()\n - state_transition()\n\nip_vs_protocol_timeout_change() got ipvs as param, due to above\nand a upcoming patch - defence work\n\nMost of this changes are triggered by Julians comment:\n\"tcp_timeout_change should work with the new struct ip_vs_proto_data\n        so that tcp_state_table will go to pd-\u003estate_table\n        and set_tcp_state will get pd instead of pp\"\n\n*v3\nMostly comments from Julian\nThe pp -\u003e pd conversion should start from functions like\nip_vs_out() that use pp \u003d ip_vs_proto_get(iph.protocol),\nnow they should use ip_vs_proto_data_get(net, iph.protocol).\nconn_in_get() and conn_out_get() unused param *pp, removed.\n\n*v4\nip_vs_protocol_timeout_change() walk the proto_data path.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "9d934878e7870fbbbd8eaed2e467552536877def",
      "tree": "82be8a59a2a68a7f8511c9d2b5a1a457b21fce58",
      "parents": [
        "78b16bde104cc74bedbf462b0ebed2990f35ff6b"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:49 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns preparation for proto_sctp\n\nIn this phase (one), all local vars will be moved to ipvs struct.\n\nRemaining work, add param struct net *net to a couple of\nfunctions that is common for all protos and use ip_vs_proto_data\n\n*v3\n Removed unuset function set_state_timeout()\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "78b16bde104cc74bedbf462b0ebed2990f35ff6b",
      "tree": "1cf3bfb3fd5005be421e7b7bbeb0374e1cc1128a",
      "parents": [
        "4a85b96c08ef84076f84e87280223a4301988ed9"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:48 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns preparation for proto_udp\n\nIn this phase (one), all local vars will be moved to ipvs struct.\n\nRemaining work, add param struct net *net to a couple of\nfunctions that is common for all protos and use ip_vs_proto_data\n\n*v3\nRemoved unused function set_state_timeout()\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "4a85b96c08ef84076f84e87280223a4301988ed9",
      "tree": "14ec2ae8cd5c159dc4400c5a97a13231de1c9efb",
      "parents": [
        "252c64103237f1841088f0f29b4f084b1c774546"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:47 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns preparation for proto_tcp\n\nIn this phase (one), all local vars will be moved to ipvs struct.\n\nRemaining work, add param struct net *net to a couple of\nfunctions that is common for all protos and use all\nip_vs_proto_data\n\n*v3\nRemoved unused function as sugested by Simon\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "252c64103237f1841088f0f29b4f084b1c774546",
      "tree": "81de130280300698260ca35fe4dde8a92fdebac5",
      "parents": [
        "b6e885ddb903e681b7cbb4e68ad775154660e1f4"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:46 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns, prepare protocol\n\nAdd support for protocol data per name-space.\nin struct ip_vs_protocol, appcnt will be removed when all protos\nare modified for network name-space.\n\nThis patch causes warnings of unused functions, they will be used\nwhen next patch will be applied.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "b6e885ddb903e681b7cbb4e68ad775154660e1f4",
      "tree": "d638b728989f152806d26702b7a5cba4cadb495f",
      "parents": [
        "d0a1eef9c38218af20c809b2220a960b7ed81a36"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:45 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns awarness to lblc sheduler\n\nvar sysctl_ip_vs_lblc_expiration moved to ipvs struct as\n    sysctl_lblc_expiration\n\nprocfs updated to handle this.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "d0a1eef9c38218af20c809b2220a960b7ed81a36",
      "tree": "a2ba65169f823bfc06fa2ca4ae0bf4da3c6ffbf0",
      "parents": [
        "fc723250c9cb046cc19833a2b1c4309bbf59ac36"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:44 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:27 2011 +0900"
      },
      "message": "IPVS: netns awarness to lblcr sheduler\n\nvar sysctl_ip_vs_lblcr_expiration moved to ipvs struct as\n    sysctl_lblcr_expiration\n\nprocfs updated to handle this.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "fc723250c9cb046cc19833a2b1c4309bbf59ac36",
      "tree": "fa8cd33ad9e020549dd8c6389f311d25e495ca7d",
      "parents": [
        "61b1ab4583e275af216c8454b9256de680499b19"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:43 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:26 2011 +0900"
      },
      "message": "IPVS: netns to services part 1\n\nServices hash tables got netns ptr a hash arg,\nWhile Real Servers (rs) has been moved to ipvs struct.\nTwo new inline functions added to get net ptr from skb.\n\nSince ip_vs is called from different contexts there is two\nplaces to dig for the net ptr skb-\u003edev or skb-\u003esk\nthis is handled in skb_net() and skb_sknet()\n\nGlobal functions, ip_vs_service_get() ip_vs_lookup_real_service()\netc have got  struct net *net as first param.\nIf possible get net ptr skb etc,\n - if not \u0026init_net is used at this early stage of patching.\n\nip_vs_ctl.c  procfs not ready for netns yet.\n\n*v3\n Comments by Julian\n- __ip_vs_service_find and __ip_vs_svc_fwm_find are fast path,\n  net_eq(svc-\u003enet, net) so the check is at the end now.\n- net \u003d skb_net(skb) in ip_vs_out moved after check for skb_dst.\n\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "61b1ab4583e275af216c8454b9256de680499b19",
      "tree": "43e7cd6c71030c4d94c4e02dd34de77e57943a2d",
      "parents": [
        "fee1cc0895fd7bde875a86bbc3a1e82089e540b8"
      ],
      "author": {
        "name": "Hans Schillstrom",
        "email": "hans.schillstrom@ericsson.com",
        "time": "Mon Jan 03 14:44:42 2011 +0100"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:30:26 2011 +0900"
      },
      "message": "IPVS: netns, add basic init per netns.\n\nPreparation for network name-space init, in this stage\nsome empty functions exists.\n\nIn most files there is a check if it is root ns i.e. init_net\nif (!net_eq(net, \u0026init_net))\n        return ...\nthis will be removed by the last patch, when enabling name-space.\n\n*v3\n ip_vs_conn.c merge error corrected.\n net_ipvs #ifdef removed as sugested by Jan Engelhardt\n\n[ horms@verge.net.au: Removed whitespace-change-only hunks ]\nSigned-off-by: Hans Schillstrom \u003chans.schillstrom@ericsson.com\u003e\nAcked-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\n"
    },
    {
      "commit": "fee1cc0895fd7bde875a86bbc3a1e82089e540b8",
      "tree": "df0a07a650229fd7aa775ca6c20a8d2939c96e72",
      "parents": [
        "ae90bdeaeac6b964b7a1e853a90a19f358a9ac20",
        "0c21e3aaf6ae85bee804a325aa29c325209180fd"
      ],
      "author": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:29:21 2011 +0900"
      },
      "committer": {
        "name": "Simon Horman",
        "email": "horms@verge.net.au",
        "time": "Thu Jan 13 10:29:21 2011 +0900"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 into HEAD\n"
    },
    {
      "commit": "021db8e2bde53024a163fb4417a185de46fe77aa",
      "tree": "098a28bd2414ea2622493a1736a677dab5085dfc",
      "parents": [
        "72eb6a791459c87a0340318840bb3bd9252b627b",
        "07fe0351702b6f0c9749e80cdbcb758686b0fe9b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:08:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:08:46 2011 -0800"
      },
      "message": "Merge branch \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6: (77 commits)\n  spi/omap: Fix DMA API usage in OMAP MCSPI driver\n  spi/imx: correct the test on platform_get_irq() return value\n  spi/topcliff: Typo fix threhold to threshold\n  spi/dw_spi Typo change diable to disable.\n  spi/fsl_espi: change the read behaviour of the SPIRF\n  spi/mpc52xx-psc-spi: move probe/remove to proper sections\n  spi/dw_spi: add DMA support\n  spi/dw_spi: change to EXPORT_SYMBOL_GPL for exported APIs\n  spi/dw_spi: Fix too short timeout in spi polling loop\n  spi/pl022: convert running variable\n  spi/pl022: convert busy flag to a bool\n  spi/pl022: pass the returned sglen to the DMA engine\n  spi/pl022: map the buffers on the DMA engine\n  spi/topcliff_pch: Fix data transfer issue\n  spi/imx: remove autodetection\n  spi/pxa2xx: pass of_node to spi device and set a parent device\n  spi/pxa2xx: Modify RX-Tresh instead of busy-loop for the remaining RX bytes.\n  spi/pxa2xx: Add chipselect support for Sodaville\n  spi/pxa2xx: Consider CE4100\u0027s FIFO depth\n  spi/pxa2xx: Add CE4100 support\n  ...\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "23d69b09b78c4876e134f104a3814c30747c53f1",
      "tree": "40744de4f4126c21027ce537264524095e0e7979",
      "parents": [
        "e744070fd4ff9d3114277e52d77afa21579adce2",
        "569ff2de2e1c8ac67c8df3a7367d46d0d9460a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 16:58:04 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (33 commits)\n  usb: don\u0027t use flush_scheduled_work()\n  speedtch: don\u0027t abuse struct delayed_work\n  media/video: don\u0027t use flush_scheduled_work()\n  media/video: explicitly flush request_module work\n  ioc4: use static work_struct for ioc4_load_modules()\n  init: don\u0027t call flush_scheduled_work() from do_initcalls()\n  s390: don\u0027t use flush_scheduled_work()\n  rtc: don\u0027t use flush_scheduled_work()\n  mmc: update workqueue usages\n  mfd: update workqueue usages\n  dvb: don\u0027t use flush_scheduled_work()\n  leds-wm8350: don\u0027t use flush_scheduled_work()\n  mISDN: don\u0027t use flush_scheduled_work()\n  macintosh/ams: don\u0027t use flush_scheduled_work()\n  vmwgfx: don\u0027t use flush_scheduled_work()\n  tpm: don\u0027t use flush_scheduled_work()\n  sonypi: don\u0027t use flush_scheduled_work()\n  hvsi: don\u0027t use flush_scheduled_work()\n  xen: don\u0027t use flush_scheduled_work()\n  gdrom: don\u0027t use flush_scheduled_work()\n  ...\n\nFixed up trivial conflict in drivers/media/video/bt8xx/bttv-input.c\nas per Tejun.\n"
    },
    {
      "commit": "e744070fd4ff9d3114277e52d77afa21579adce2",
      "tree": "5f397c684c61a50bd47014abfe685fd6c3d09d8c",
      "parents": [
        "d004e4d3322340b6433caaef4a47ab8c933afb70",
        "c9b5f501ef1580faa30c40c644b7691870462201"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:55:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:55:48 2011 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Constify function scope static struct sched_param usage\n  sched: Fix strncmp operation\n  sched: Move sched_autogroup_exit() to free_signal_struct()\n  sched: Fix struct autogroup memory leak\n  sched: Mark autogroup_init() __init\n  sched: Consolidate the name of root_task_group and init_task_group\n"
    },
    {
      "commit": "d074b104cefcb6e8ded55a53e62fed59a246f55d",
      "tree": "8c5b3a3992c5abab8b41b6e1f2837bc46f82b207",
      "parents": [
        "31b6ca0af758a88e5e769b48cc6dde037ee37b96",
        "c413521eb4e2d7ffd5ce432a144708d479054bd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:50:14 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:50:14 2011 -0800"
      },
      "message": "Merge branch \u0027rmobile-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027rmobile-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (67 commits)\n  ARM: mach-shmobile: update for SMP changes.\n  ARM: mach-shmobile: update for GIC changes.\n  ARM: mach-shmobile: Fix up clkdev fallout for SH73A0.\n  dma: shdma: don\u0027t register the global die notifier multiple times\n  ARM: mach-shmobile: Rely on run-time IRQ handlers\n  ARM: mach-shmobile: Run-time IRQ handler for GIC\n  ARM: mach-shmobile: Run-time IRQ handler for INTCA\n  ARM: mach-shmobile: Enable CONFIG_MULTI_IRQ_HANDLER\n  ARM: mach-shmobile: Use shared GIC entry macros\n  ARM: mach-shmobile: mackerel: Add zboot support\n  ARM: mach-shmobile: mackerel: Add HDMI sound support\n  ARM: mach-shmobile: mackerel: add HDMI video support\n  ARM: mach-shmobile: ap4evb: fixup clk_put timing of fsib_clk\n  ARM: mach-shmobile: sh73a0: fix div4 table\n  ARM: mach-shmobile: ap4/mackerel: modify wrong comment out of USB\n  ARM: mach-shmobile: Mackerel VGA camera support\n  mmc: sh_mmcif: make DMA support by the driver unconditional\n  ARM: mach-shmobile: Add eMMC support through MMCIF on AG5EVM\n  ARM: mach-shmobile: Use pullups for AG5EVM KEYSC pins\n  ARM: mach-shmobile: sh73a0 GPIO pullup improvement\n  ...\n"
    },
    {
      "commit": "31b6ca0af758a88e5e769b48cc6dde037ee37b96",
      "tree": "e1968d7168affb25e33e2be2d1d102f94af98af0",
      "parents": [
        "56b85f32d530d09d6805488ad00775d4e0e3baab",
        "554738da71004d96e06fb75f4772dfc3b0f47810"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:45:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:45:47 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (58 commits)\n  Input: wacom_w8001 - support pen or touch only devices\n  Input: wacom_w8001 - use __set_bit to set keybits\n  Input: bu21013_ts - fix misuse of logical operation in place of bitop\n  Input: i8042 - add Acer Aspire 5100 to the Dritek list\n  Input: wacom - add support for digitizer in Lenovo W700\n  Input: psmouse - disable the synaptics extension on OLPC machines\n  Input: psmouse - fix up Synaptics comment\n  Input: synaptics - ignore bogus mt packet\n  Input: synaptics - add multi-finger and semi-mt support\n  Input: synaptics - report clickpad property\n  input: mt: Document interface updates\n  Input: fix double equality sign in uevent\n  Input: introduce device properties\n  hid: egalax: Add support for Wetab (726b)\n  Input: include MT library as source for kerneldoc\n  MAINTAINERS: Update input-mt entry\n  hid: egalax: Add support for Samsung NB30 netbook\n  hid: egalax: Document the new devices in Kconfig\n  hid: egalax: Add support for Wetab\n  hid: egalax: Convert to MT slots\n  ...\n\nFixed up trivial conflict in drivers/input/keyboard/Kconfig\n"
    },
    {
      "commit": "56b85f32d530d09d6805488ad00775d4e0e3baab",
      "tree": "e7fbe69e338ef775d3b2dd822aa915d259b4bc94",
      "parents": [
        "3e5b08cbbf78bedd316904ab0cf3b27119433ee5",
        "568389c257fa7d74ce36c2f78bad31965fded4cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:39:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:39:20 2011 -0800"
      },
      "message": "Merge branch \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (36 commits)\n  serial: apbuart: Fixup apbuart_console_init()\n  TTY: Add tty ioctl to figure device node of the system console.\n  tty: add \u0027active\u0027 sysfs attribute to tty0 and console device\n  drivers: serial: apbuart: Handle OF failures gracefully\n  Serial: Avoid unbalanced IRQ wake disable during resume\n  tty: fix typos/errors in tty_driver.h comments\n  pch_uart : fix warnings for 64bit compile\n  8250: fix uninitialized FIFOs\n  ip2: fix compiler warning on ip2main_pci_tbl\n  specialix: fix compiler warning on specialix_pci_tbl\n  rocket: fix compiler warning on rocket_pci_ids\n  8250: add a UPIO_DWAPB32 for 32 bit accesses\n  8250: use container_of() instead of casting\n  serial: omap-serial: Add support for kernel debugger\n  serial: fix pch_uart kconfig \u0026 build\n  drivers: char: hvc: add arm JTAG DCC console support\n  RS485 documentation: add 16C950 UART description\n  serial: ifx6x60: fix memory leak\n  serial: ifx6x60: free IRQ on error\n  Serial: EG20T: add PCH_UART driver\n  ...\n\nFixed up conflicts in drivers/serial/apbuart.c with evil merge that\nmakes the code look fairly sane (unlike either side).\n"
    },
    {
      "commit": "3e5b08cbbf78bedd316904ab0cf3b27119433ee5",
      "tree": "0365745c1b7441c1868551c024410c829c3accc6",
      "parents": [
        "da40d036fd716f0efb2917076220814b1e927ae1",
        "2af10844eb6ed104f9505bf3a7ba3ceb02264f31"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 13:16:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 13:16:28 2011 -0800"
      },
      "message": "Merge branch \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* \u0027usb-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (144 commits)\n  USB: add support for Dream Cheeky DL100B Webmail Notifier (1d34:0004)\n  USB: serial: ftdi_sio: add support for TIOCSERGETLSR\n  USB: ehci-mxc: Setup portsc register prior to accessing OTG viewport\n  USB: atmel_usba_udc: fix freeing irq in usba_udc_remove()\n  usb: ehci-omap: fix tll channel enable mask\n  usb: ohci-omap3: fix trivial typo\n  USB: gadget: ci13xxx: don\u0027t assume that PAGE_SIZE is 4096\n  USB: gadget: ci13xxx: fix complete() callback for no_interrupt rq\u0027s\n  USB: gadget: update ci13xxx to work with g_ether\n  USB: gadgets: ci13xxx: fix probing of compiled-in gadget drivers\n  Revert \"USB: musb: pm: don\u0027t rely fully on clock support\"\n  Revert \"USB: musb: blackfin: pm: make it work\"\n  USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission path\n  USB: uas: Ensure we only bind to a UAS interface\n  USB: uas: Rename sense pipe and sense urb to status pipe and status urb\n  USB: uas: Use kzalloc instead of kmalloc\n  USB: uas: Fix up the Sense IU\n  usb: musb: core: kill unneeded #include\u0027s\n  DA8xx: assign name to MUSB IRQ resource\n  usb: gadget: g_ncm added\n  ...\n\nManually fix up trivial conflicts in USB Kconfig changes in:\n\tarch/arm/mach-omap2/Kconfig\n\tarch/sh/Kconfig\n\tdrivers/usb/Kconfig\n\tdrivers/usb/host/ehci-hcd.c\nand annoying chip clock data conflicts in:\n\tarch/arm/mach-omap2/clock3xxx_data.c\n\tarch/arm/mach-omap2/clock44xx_data.c\n"
    },
    {
      "commit": "da40d036fd716f0efb2917076220814b1e927ae1",
      "tree": "567893573a48e2954d82421e77606034d3b32f84",
      "parents": [
        "aa58abc20fa85328a9f048e2626c0893691ff284",
        "c32e061fa19893ce4acf95d97d5613a161f0f1b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:47:02 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 12:47:02 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (147 commits)\n  [SCSI] arcmsr: fix write to device check\n  [SCSI] lpfc: lower stack use in lpfc_fc_frame_check\n  [SCSI] eliminate an unnecessary local variable from scsi_remove_target()\n  [SCSI] libiscsi: use bh locking instead of irq with session lock\n  [SCSI] libiscsi: do not take host lock in queuecommand\n  [SCSI] be2iscsi: fix null ptr when accessing task hdr\n  [SCSI] be2iscsi: fix gfp use in alloc_pdu\n  [SCSI] libiscsi: add more informative failure message during iscsi scsi eh\n  [SCSI] gdth: Add missing call to gdth_ioctl_free\n  [SCSI] bfa: remove unused defintions and misc cleanups\n  [SCSI] bfa: remove inactive functions\n  [SCSI] bfa: replace bfa_assert with WARN_ON\n  [SCSI] qla2xxx: Use sg_next to fetch next sg element while walking sg list.\n  [SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout.\n  [SCSI] qla2xxx: Remove code to not reset ISP82xx on failure.\n  [SCSI] qla2xxx: Display mailbox register 4 during 8012 AEN for ISP82XX parts.\n  [SCSI] qla2xxx: Don\u0027t perform a BIG_HAMMER if Get-ID (0x20) mailbox command fails on CNAs.\n  [SCSI] qla2xxx: Remove redundant module parameter permission bits\n  [SCSI] qla2xxx: Add sysfs node for displaying board temperature.\n  [SCSI] qla2xxx: Code cleanup to remove unwanted comments and code.\n  ...\n"
    },
    {
      "commit": "b4a45f5fe8078bfc10837dbd5b98735058bc4698",
      "tree": "df6f13a27610a3ec7eb4a661448cd779a8f84c79",
      "parents": [
        "01539ba2a706ab7d35fc0667dff919ade7f87d63",
        "b3e19d924b6eaf2ca7d22cba99a517c5171007b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin: (57 commits)\n  fs: scale mntget/mntput\n  fs: rename vfsmount counter helpers\n  fs: implement faster dentry memcmp\n  fs: prefetch inode data in dcache lookup\n  fs: improve scalability of pseudo filesystems\n  fs: dcache per-inode inode alias locking\n  fs: dcache per-bucket dcache hash locking\n  bit_spinlock: add required includes\n  kernel: add bl_list\n  xfs: provide simple rcu-walk ACL implementation\n  btrfs: provide simple rcu-walk ACL implementation\n  ext2,3,4: provide simple rcu-walk ACL implementation\n  fs: provide simple rcu-walk generic_check_acl implementation\n  fs: provide rcu-walk aware permission i_ops\n  fs: rcu-walk aware d_revalidate method\n  fs: cache optimise dentry and inode for rcu-walk\n  fs: dcache reduce branches in lookup path\n  fs: dcache remove d_mounted\n  fs: fs_struct use seqlock\n  fs: rcu-walk for path lookup\n  ...\n"
    },
    {
      "commit": "07e06b011db2b3300f6c975ebf293fc4c8c59942",
      "tree": "f6f0fdd7c1707aa9badf16d1ceb4de1e16adb9e9",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Fri Jan 07 15:17:36 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 07 15:54:34 2011 +0100"
      },
      "message": "sched: Consolidate the name of root_task_group and init_task_group\n\nroot_task_group is the leftover of USER_SCHED, now it\u0027s always\nsame to init_task_group.\nBut as Mike suggested, root_task_group is maybe the suitable name\nto keep for a tree.\nSo in this patch:\n  init_task_group      --\u003e root_task_group\n  init_task_group_load --\u003e root_task_group_load\n  INIT_TASK_GROUP_LOAD --\u003e ROOT_TASK_GROUP_LOAD\n\nSuggested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20110107071736.GA32635@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3e19d924b6eaf2ca7d22cba99a517c5171007b6",
      "tree": "8c1fa4074114a883a4e2de2f7d12eb29ed91bdf1",
      "parents": [
        "c6653a838b1b2738561aff0b8c0f62a9b714bdd9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:11 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:33 2011 +1100"
      },
      "message": "fs: scale mntget/mntput\n\nThe problem that this patch aims to fix is vfsmount refcounting scalability.\nWe need to take a reference on the vfsmount for every successful path lookup,\nwhich often go to the same mount point.\n\nThe fundamental difficulty is that a \"simple\" reference count can never be made\nscalable, because any time a reference is dropped, we must check whether that\nwas the last reference. To do that requires communication with all other CPUs\nthat may have taken a reference count.\n\nWe can make refcounts more scalable in a couple of ways, involving keeping\ndistributed counters, and checking for the global-zero condition less\nfrequently.\n\n- check the global sum once every interval (this will delay zero detection\n  for some interval, so it\u0027s probably a showstopper for vfsmounts).\n\n- keep a local count and only taking the global sum when local reaches 0 (this\n  is difficult for vfsmounts, because we can\u0027t hold preempt off for the life of\n  a reference, so a counter would need to be per-thread or tied strongly to a\n  particular CPU which requires more locking).\n\n- keep a local difference of increments and decrements, which allows us to sum\n  the total difference and hence find the refcount when summing all CPUs. Then,\n  keep a single integer \"long\" refcount for slow and long lasting references,\n  and only take the global sum of local counters when the long refcount is 0.\n\nThis last scheme is what I implemented here. Attached mounts and process root\nand working directory references are \"long\" references, and everything else is\na short reference.\n\nThis allows scalable vfsmount references during path walking over mounted\nsubtrees and unattached (lazy umounted) mounts with processes still running\nin them.\n\nThis results in one fewer atomic op in the fastpath: mntget is now just a\nper-CPU inc, rather than an atomic inc; and mntput just requires a spinlock\nand non-atomic decrement in the common case. However code is otherwise bigger\nand heavier, so single threaded performance is basically a wash.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "9d55c369bb5e695e629bc35cba2ef607755b3bee",
      "tree": "d97cd498a67f1f7987d4403ef90e399516a3b8c9",
      "parents": [
        "e1bb57826381199cc79fbf44e9dfeee58fc7b339"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:09 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:32 2011 +1100"
      },
      "message": "fs: implement faster dentry memcmp\n\nThe standard memcmp function on a Westmere system shows up hot in\nprofiles in the `git diff` workload (both parallel and single threaded),\nand it is likely due to the costs associated with trapping into\nmicrocode, and little opportunity to improve memory access (dentry\nname is not likely to take up more than a cacheline).\n\nSo replace it with an open-coded byte comparison. This increases code\nsize by 8 bytes in the critical __d_lookup_rcu function, but the\nspeedup is huge, averaging 10 runs of each:\n\ngit diff st   user   sys   elapsed  CPU\nbefore        1.15   2.57  3.82      97.1\nafter         1.14   2.35  3.61      96.8\n\ngit diff mt   user   sys   elapsed  CPU\nbefore        1.27   3.85  1.46     349\nafter         1.26   3.54  1.43     333\n\nElapsed time for single threaded git diff at 95.0% confidence:\n        -0.21  +/- 0.01\n        -5.45% +/- 0.24%\n\nIt\u0027s -0.66% +/- 0.06% elapsed time on my Opteron, so rep cmp costs on the\nfam10h seem to be relatively smaller, but there is still a win.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "4b936885ab04dc6e0bb0ef35e0e23c1a7364d9e5",
      "tree": "a0173d27c1ce39f173be404d269c2f15144072ab",
      "parents": [
        "873feea09ebc980cbd3631b767356ce1eee65ec1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:07 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:32 2011 +1100"
      },
      "message": "fs: improve scalability of pseudo filesystems\n\nRegardless of how much we possibly try to scale dcache, there is likely\nalways going to be some fundamental contention when adding or removing children\nunder the same parent. Pseudo filesystems do not seem need to have connected\ndentries because by definition they are disconnected.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "873feea09ebc980cbd3631b767356ce1eee65ec1",
      "tree": "59a8fce9b138086abee7cf845f62ff70a390cf81",
      "parents": [
        "ceb5bdc2d246f6d81cf61ed70f325308a11821d2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:06 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "fs: dcache per-inode inode alias locking\n\ndcache_inode_lock can be replaced with per-inode locking. Use existing\ninode-\u003ei_lock for this. This is slightly non-trivial because we sometimes\nneed to find the inode from the dentry, which requires d_inode to be\nstabilised (either with refcount or d_lock).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ceb5bdc2d246f6d81cf61ed70f325308a11821d2",
      "tree": "65fc9e0227994d4ffc80530dd15bb5a9672a295e",
      "parents": [
        "626d607435617cc0f033522083e2bb195b81813c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:05 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "fs: dcache per-bucket dcache hash locking\n\nWe can turn the dcache hash locking from a global dcache_hash_lock into\nper-bucket locking.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "626d607435617cc0f033522083e2bb195b81813c",
      "tree": "c1decac81fa5218e7391b6e2b75e2642ec4d8f27",
      "parents": [
        "4e35e6070b1ceed89c3bba2af4216c286fb1dafd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:04 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "bit_spinlock: add required includes\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "4e35e6070b1ceed89c3bba2af4216c286fb1dafd",
      "tree": "94bd18604a978380c1fde46a3f188f1639067960",
      "parents": [
        "880566e17c4fce0d998d92610d32fcb9506aa6dd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:03 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:31 2011 +1100"
      },
      "message": "kernel: add bl_list\n\nIntroduce a type of hlist that can support the use of the lowest bit in the\nhlist_head. This will be subsequently used to implement per-bucket bit spinlock\nfor inode and dentry hashes, and may be useful in other cases such as network\nhashes.\n\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "1e1743ebe35ec7e3c1fa732408358fbc614cbbe5",
      "tree": "9654cd50bb29a4c5ccc498b9b08cc385288bc854",
      "parents": [
        "b74c79e99389cd79b31fcc08f82c24e492e63c7e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:59 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide simple rcu-walk generic_check_acl implementation\n\nThis simple implementation just checks for no ACLs on the inode, and\nif so, then the rcu-walk may proceed, otherwise fail it.\n\nThis could easily be extended to put acls under RCU and check them\nunder seqlock, if need be. But this implementation is enough to show\nthe rcu-walk aware permissions code for path lookups is working, and\nwill handle cases where there are no ACLs or ACLs in just the final\nelement.\n\nThis patch implicity converts tmpfs to rcu-aware permission check.\nSubsequent patches onvert ext*, xfs, and, btrfs. Each of these uses\nacl/permission code in a different way, so convert them all to provide\ntemplates and proof of concept.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9",
      "tree": "d4630a38c0d683a7e1b8823d7971753719b8a54d",
      "parents": [
        "fb045adb99d9b7c562dc7fef834857f78249daa1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:56 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: cache optimise dentry and inode for rcu-walk\n\nPut dentry and inode fields into top of data structure.  This allows RCU path\ntraversal to perform an RCU dentry lookup in a path walk by touching only the\nfirst 56 bytes of the dentry.\n\nWe also fit in 8 bytes of inline name in the first 64 bytes, so for short\nnames, only 64 bytes needs to be touched to perform the lookup. We should\nget rid of the hash-\u003eprev pointer from the first 64 bytes, and fit 16 bytes\nof name in there, which will take care of 81% rather than 32% of the kernel\ntree.\n\ninode is also rearranged so that RCU lookup will only touch a single cacheline\nin the inode, plus one in the i_ops structure.\n\nThis is important for directory component lookups in RCU path walking. In the\nkernel source, directory names average is around 6 chars, so this works.\n\nWhen we reach the last element of the lookup, we need to lock it and take its\nrefcount which requires another cacheline access.\n\nAlign dentry and inode operations structs, so members will be at predictable\noffsets and we can group common operations into head of structure.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff",
      "tree": "f02e7ee57e6060f0af1bcda281baf2972d2da72f",
      "parents": [
        "c28cc36469554dc55540f059fbdc7fa22a2c31fc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:54 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache remove d_mounted\n\nRather than keep a d_mounted count in the dentry, set a dentry flag instead.\nThe flag can be cleared by checking the hash table to see if there are any\nmounts left, which is not time critical because it is performed at detach time.\n\nThe mounted state of a dentry is only used to speculatively take a look in the\nmount hash table if it is set -- before following the mount, vfsmount lock is\ntaken and mount re-checked without races.\n\nThis saves 4 bytes on 32-bit, nothing on 64-bit but it does provide a hole I\nmight use later (and some configs have larger than 32-bit spinlocks which might\nmake use of the hole).\n\nAutofs4 conversion and changelog by Ian Kent \u003craven@themaw.net\u003e:\nIn autofs4, when expring direct (or offset) mounts we need to ensure that we\nblock user path walks into the autofs mount, which is covered by another mount.\nTo do this we clear the mounted status so that follows stop before walking into\nthe mount and are essentially blocked until the expire is completed. The\nautomount daemon still finds the correct dentry for the umount due to the\nfollow mount logic in fs/autofs4/root.c:autofs4_follow_link(), which is set as\nan inode operation for direct and offset mounts only and is called following\nthe lookup that stopped at the covered mount.\n\nAt the end of the expire the covering mount probably has gone away so the\nmounted status need not be restored. But we need to check this and only restore\nthe mounted status if the expire failed.\n\nXXX: autofs may not work right if we have other mounts go over the top of it?\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "c28cc36469554dc55540f059fbdc7fa22a2c31fc",
      "tree": "6b867456be48b8633a2d56a99e00bb3faf9dccc7",
      "parents": [
        "31e6b01f4183ff419a6d1f86177cbf4662347cec"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:53 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "fs: fs_struct use seqlock\n\nUse a seqlock in the fs_struct to enable us to take an atomic copy of the\ncomplete cwd and root paths. Use this in the RCU lookup path to avoid a\nthread-shared spinlock in RCU lookup operations.\n\nMulti-threaded apps may now perform path lookups with scalability matching\nmulti-process apps. Operations such as stat(2) become very scalable for\nmulti-threaded workload.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "31e6b01f4183ff419a6d1f86177cbf4662347cec",
      "tree": "e215ec9af88352c55e024f784f3d9f8eb13fab85",
      "parents": [
        "3c22cd5709e8143444a6d08682a87f4c57902df3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:52 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "fs: rcu-walk for path lookup\n\nPerform common cases of path lookups without any stores or locking in the\nancestor dentry elements. This is called rcu-walk, as opposed to the current\nalgorithm which is a refcount based walk, or ref-walk.\n\nThis results in far fewer atomic operations on every path element,\nsignificantly improving path lookup performance. It also avoids cacheline\nbouncing on common dentries, significantly improving scalability.\n\nThe overall design is like this:\n* LOOKUP_RCU is set in nd-\u003eflags, which distinguishes rcu-walk from ref-walk.\n* Take the RCU lock for the entire path walk, starting with the acquiring\n  of the starting path (eg. root/cwd/fd-path). So now dentry refcounts are\n  not required for dentry persistence.\n* synchronize_rcu is called when unregistering a filesystem, so we can\n  access d_ops and i_ops during rcu-walk.\n* Similarly take the vfsmount lock for the entire path walk. So now mnt\n  refcounts are not required for persistence. Also we are free to perform mount\n  lookups, and to assume dentry mount points and mount roots are stable up and\n  down the path.\n* Have a per-dentry seqlock to protect the dentry name, parent, and inode,\n  so we can load this tuple atomically, and also check whether any of its\n  members have changed.\n* Dentry lookups (based on parent, candidate string tuple) recheck the parent\n  sequence after the child is found in case anything changed in the parent\n  during the path walk.\n* inode is also RCU protected so we can load d_inode and use the inode for\n  limited things.\n* i_mode, i_uid, i_gid can be tested for exec permissions during path walk.\n* i_op can be loaded.\n\nWhen we reach the destination dentry, we lock it, recheck lookup sequence,\nand increment its refcount and mountpoint refcount. RCU and vfsmount locks\nare dropped. This is termed \"dropping rcu-walk\". If the dentry refcount does\nnot match, we can not drop rcu-walk gracefully at the current point in the\nlokup, so instead return -ECHILD (for want of a better errno). This signals the\npath walking code to re-do the entire lookup with a ref-walk.\n\nAside from the final dentry, there are other situations that may be encounted\nwhere we cannot continue rcu-walk. In that case, we drop rcu-walk (ie. take\na reference on the last good dentry) and continue with a ref-walk. Again, if\nwe can drop rcu-walk gracefully, we return -ECHILD and do the whole lookup\nusing ref-walk. But it is very important that we can continue with ref-walk\nfor most cases, particularly to avoid the overhead of double lookups, and to\ngain the scalability advantages on common path elements (like cwd and root).\n\nThe cases where rcu-walk cannot continue are:\n* NULL dentry (ie. any uncached path element)\n* parent with d_inode-\u003ei_op-\u003epermission or ACLs\n* dentries with d_revalidate\n* Following links\n\nIn future patches, permission checks and d_revalidate become rcu-walk aware. It\nmay be possible eventually to make following links rcu-walk aware.\n\nUncached path elements will always require dropping to ref-walk mode, at the\nvery least because i_mutex needs to be grabbed, and objects allocated.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "3c22cd5709e8143444a6d08682a87f4c57902df3",
      "tree": "6d245491d9103a1d77a3128ed5d1d996d3794300",
      "parents": [
        "ff0c7d15f9787b7e8c601533c015295cc68329f8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:51 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "kernel: optimise seqlock\n\nAdd branch annotations for seqlock read fastpath, and introduce\n__read_seqcount_begin and __read_seqcount_end functions, that can avoid the\nsmp_rmb() if used carefully. These will be used by store-free path walking\nalgorithm performance is critical and seqlocks are in use.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ff0c7d15f9787b7e8c601533c015295cc68329f8",
      "tree": "e3db53950b8ed78e542ab35a3cd3a6eaee26eccd",
      "parents": [
        "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:50 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: avoid inode RCU freeing for pseudo fs\n\nPseudo filesystems that don\u0027t put inode on RCU list or reachable by\nrcu-walk dentries do not need to RCU free their inodes.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "dc0474be3e27463d4d4a2793f82366eed906f223",
      "tree": "41f75e638442cb343bacdcfbabb17ffc3bd5b4ce",
      "parents": [
        "357f8e658bba8a085c4a5d4331e30894be8096b8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:43 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:24 2011 +1100"
      },
      "message": "fs: dcache rationalise dget variants\n\ndget_locked was a shortcut to avoid the lazy lru manipulation when we already\nheld dcache_lock (lru manipulation was relatively cheap at that point).\nHowever, how that the lru lock is an innermost one, we never hold it at any\ncaller, so the lock cost can now be avoided. We already have well working lazy\ndcache LRU, so it should be fine to defer LRU manipulations to scan time.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "949854d02455080d20cd3e1db28a3a18daf7599d",
      "tree": "9b13a6f86c1d0b91e462a471e53b0e717036b18e",
      "parents": [
        "9abca36087288fe28de4749c71ca003d4b9e3ed0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:37 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: Use rename lock and RCU for multi-step operations\n\nThe remaining usages for dcache_lock is to allow atomic, multi-step read-side\noperations over the directory tree by excluding modifications to the tree.\nAlso, to walk in the leaf-\u003eroot direction in the tree where we don\u0027t have\na natural d_lock ordering.\n\nThis could be accomplished by taking every d_lock, but this would mean a\nhuge number of locks and actually gets very tricky.\n\nSolve this instead by using the rename seqlock for multi-step read-side\noperations, retry in case of a rename so we don\u0027t walk up the wrong parent.\nConcurrent dentry insertions are not serialised against.  Concurrent deletes\nare tricky when walking up the directory: our parent might have been deleted\nwhen dropping locks so also need to check and retry for that.\n\nWe can also use the rename lock in cases where livelock is a worry (and it\nis introduced in subsequent patch).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b23fb0a60379a95e10c671f646b259ea2558421e",
      "tree": "7c3644b91241d32fda502a7be0b78e4c225f8091",
      "parents": [
        "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:35 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:22 2011 +1100"
      },
      "message": "fs: scale inode alias list\n\nAdd a new lock, dcache_inode_lock, to protect the inode\u0027s i_dentry list\nfrom concurrent modification. d_alias is also protected by d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc",
      "tree": "ce33b94b34844c09103836cf4cfa4364b742f217",
      "parents": [
        "da5029563a0a026c64821b09e8e7b4fd81d3fe1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:34 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale subdirs\n\nProtect d_subdirs and d_child with d_lock, except in filesystems that aren\u0027t\nusing dcache_lock for these anyway (eg. using i_mutex).\n\nNote: if we change the locking rule in future so that -\u003ed_child protection is\nprovided only with -\u003ed_parent-\u003ed_lock, it may allow us to reduce some locking.\nBut it would be an exception to an otherwise regular locking scheme, so we\u0027d\nhave to see some good results. Probably not worthwhile.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "789680d1ee9311cdf095241dc02bd9784d799cd1",
      "tree": "e6a984b0aa4791918f1b665f45210c2ab762969c",
      "parents": [
        "ec2447c278ee973d35f38e53ca16ba7f965ae33d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:30 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: dcache scale hash\n\nAdd a new lock, dcache_hash_lock, to protect the dcache hash table from\nconcurrent modification. d_hash is also protected by d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ec2447c278ee973d35f38e53ca16ba7f965ae33d",
      "tree": "5d17a0523c301b8c71c0f198ffe7782c5e9c0ea9",
      "parents": [
        "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:29 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "hostfs: simplify locking\n\nRemove dcache_lock locking from hostfs filesystem, and move it into dcache\nhelpers. All that is required is a coherent path name. Protection from\nconcurrent modification of the namespace after path name generation is not\nprovided in current code, because dcache_lock is dropped before the path is\nused.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b",
      "tree": "57a10ef164e4d2f798d9b832dbeaf973aca2ab83",
      "parents": [
        "621e155a3591962420eacdd39f6f0aa29ceb221e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:28 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: change d_hash for rcu-walk\n\nChange d_hash so it may be called from lock-free RCU lookups. See similar\npatch for d_compare for details.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "621e155a3591962420eacdd39f6f0aa29ceb221e",
      "tree": "387a9fb396f1bf24514b712c294182e36ba51076",
      "parents": [
        "fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:27 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:19 2011 +1100"
      },
      "message": "fs: change d_compare for rcu-walk\n\nChange d_compare so it may be called from lock-free RCU lookups. This\ndoes put significant restrictions on what may be done from the callback,\nhowever there don\u0027t seem to have been any problems with in-tree fses.\nIf some strange use case pops up that _really_ cannot cope with the\nrcu-walk rules, we can just add new rcu-unaware callbacks, which would\ncause name lookup to drop out of rcu-walk mode.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe",
      "tree": "7fed12adf54473131e8b86c0c302c443b1d6a846",
      "parents": [
        "2bc334dcc7c77be3700dd443d92a78603f76976b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:26 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:19 2011 +1100"
      },
      "message": "fs: name case update method\n\nsmpfs and ncpfs want to update a live dentry name in-place. Rather than\nhave them open code the locking, provide a documented dcache API.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "5eef7fa905c814826f518aca2d414ca77508ce30",
      "tree": "53c40fdbe92c30910befbad14ebace3ab9a342c0",
      "parents": [
        "fbc8d4c04626e015b18cc61199f505920abb48f0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:22 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: dcache documentation cleanup\n\nRemove redundant (and incorrect, since dcache RCU lookup) dentry locking\ndocumentation and point to the canonical document.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ccd35fb9f4da856b105ea0f1e0cab3702e8ae6ba",
      "tree": "acb71aa4ae7d1f1ed17bdd79033a6bad5e27186d",
      "parents": [
        "786a5e15b613a9cee4fc9139fc3113a5ab0fde79"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:17 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:16 2011 +1100"
      },
      "message": "kernel: kmem_ptr_validate considered harmful\n\nThis is a nasty and error prone API. It is no longer used, remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "554738da71004d96e06fb75f4772dfc3b0f47810",
      "tree": "149a96ce3727025d3b9260961ec94ba8306db278",
      "parents": [
        "7b4b30689d688d9ca2e5c3859db6bbe1c35e6014",
        "a6d38f889750ed6290728a19d9dad577b147c6d0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 06 22:34:59 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Jan 06 22:34:59 2011 -0800"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n\nConflicts:\n\tinclude/linux/input.h\n"
    },
    {
      "commit": "01539ba2a706ab7d35fc0667dff919ade7f87d63",
      "tree": "5a4bd0cf78007d06690fe4ac06bbd49a5a70bc47",
      "parents": [
        "9e9bc9736756f25d6c47b4eba0ebf25b20a6f153",
        "dc69d1af9e8d9cbbabff88bb35a6782187a22229"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 19:13:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 19:13:58 2011 -0800"
      },
      "message": "Merge branch \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6\n\n* \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (243 commits)\n  omap2: Make OMAP2PLUS select OMAP_DM_TIMER\n  OMAP4: hwmod data: Fix alignment and end of line in structurefields\n  OMAP4: hwmod data: Move the DMA structures\n  OMAP4: hwmod data: Move the smartreflex structures\n  OMAP4: hwmod data: Fix missing SIDLE_SMART_WKUP in smartreflexsysc\n  arm: omap: tusb6010: add name for MUSB IRQ\n  arm: omap: craneboard: Add USB EHCI support\n  omap2+: Initialize serial port for dynamic remuxing for n8x0\n  omap2+: Add struct omap_board_data and use it for platform level serial init\n  omap2+: Allow hwmod state changes to mux pads based on the state changes\n  omap2+: Add support for hwmod specific muxing of devices\n  omap2+: Add omap_mux_get_by_name\n  OMAP2: PM: fix compile error when !CONFIG_SUSPEND\n  MAINTAINERS: OMAP: hwmod: update hwmod code, data maintainership\n  OMAP4: Smartreflex framework extensions\n  OMAP4: hwmod: Add inital data for smartreflex modules.\n  OMAP4: PM: Program correct init voltages for scalable VDDs\n  OMAP4: Adding voltage driver support\n  OMAP4: Register voltage PMIC parameters with the voltage layer\n  OMAP3: PM: Program correct init voltages for VDD1 and VDD2\n  ...\n\nFix up trivial conflict in arch/arm/plat-omap/Kconfig\n"
    },
    {
      "commit": "9e9bc9736756f25d6c47b4eba0ebf25b20a6f153",
      "tree": "647240f479c5f23910c3e6194d1c35b6ba54d75e",
      "parents": [
        "3c0cb7c31c206aaedb967e44b98442bbeb17a6c4",
        "e3c92215198cb6aa00ad38db2780faa6b72e0a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 18:32:12 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 18:32:12 2011 -0800"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (255 commits)\n  [media] radio-aimslab.c: Fix gcc 4.5+ bug\n  [media] cx25821: Fix compilation breakage due to BKL dependency\n  [media] v4l2-compat-ioctl32: fix compile warning\n  [media] zoran: fix compiler warning\n  [media] tda18218: fix compile warning\n  [media] ngene: fix compile warning\n  [media] DVB: IR support for TechnoTrend CT-3650\n  [media] cx23885, cimax2.c: Fix case of two CAM insertion irq\n  [media] ir-nec-decoder: fix repeat key issue\n  [media] staging: se401 depends on USB\n  [media] staging: usbvideo/vicam depends on USB\n  [media] soc_camera: Add the ability to bind regulators to soc_camedra devices\n  [media] V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV2640 sensor\n  [media] v4l: soc-camera: switch to .unlocked_ioctl\n  [media] v4l: ov772x: simplify pointer dereference\n  [media] ov9640: fix OmniVision OV9640 sensor driver\u0027s priv data retrieving\n  [media] ov9640: use macro to request OmniVision OV9640 sensor private data\n  [media] ivtv-i2c: Fix two warnings\n  [media] staging/lirc: Update lirc TODO files\n  [media] cx88: Remove the obsolete i2c_adapter.id field\n  ...\n"
    },
    {
      "commit": "5e93c6b4ecd78b1bab49bad1dc2f6ed7ec0115ee",
      "tree": "4f4e321a1ca0baf64d8af528080c71f93495a7d7",
      "parents": [
        "98d27b8abf413a310df6676f7d2128ada1cccc08",
        "3c0cb7c31c206aaedb967e44b98442bbeb17a6c4"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jan 07 10:29:26 2011 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jan 07 10:29:26 2011 +0900"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into rmobile-latest\n\nConflicts:\n\tarch/arm/mach-shmobile/Kconfig\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "3c0cb7c31c206aaedb967e44b98442bbeb17a6c4",
      "tree": "3ecba45d7ffae4fba4a5aafaef4af5b0b1105bde",
      "parents": [
        "f70f5b9dc74ca7d0a64c4ead3fb28da09dc1b234",
        "404a02cbd2ae8bf256a2fa1169bdfe86bb5ebb34"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 16:50:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 16:50:35 2011 -0800"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (416 commits)\n  ARM: DMA: add support for DMA debugging\n  ARM: PL011: add DMA burst threshold support for ST variants\n  ARM: PL011: Add support for transmit DMA\n  ARM: PL011: Ensure IRQs are disabled in UART interrupt handler\n  ARM: PL011: Separate hardware FIFO size from TTY FIFO size\n  ARM: PL011: Allow better handling of vendor data\n  ARM: PL011: Ensure error flags are clear at startup\n  ARM: PL011: include revision number in boot-time port printk\n  ARM: vexpress: add sched_clock() for Versatile Express\n  ARM i.MX53: Make MX53 EVK bootable\n  ARM i.MX53: Some bug fix about MX53 MSL code\n  ARM: 6607/1: sa1100: Update platform device registration\n  ARM: 6606/1: sa1100: Fix platform device registration\n  ARM i.MX51: rename IPU irqs\n  ARM i.MX51: Add ipu clock support\n  ARM: imx/mx27_3ds: Add PMIC support\n  ARM: DMA: Replace page_to_dma()/dma_to_page() with pfn_to_dma()/dma_to_pfn()\n  mx51: fix usb clock support\n  MX51: Add support for usb host 2\n  arch/arm/plat-mxc/ehci.c: fix errors/typos\n  ...\n"
    },
    {
      "commit": "404a02cbd2ae8bf256a2fa1169bdfe86bb5ebb34",
      "tree": "99119edc53fdca73ed7586829b8ee736e09440b3",
      "parents": [
        "28cdac6690cb113856293bf79b40de33dbd8f974",
        "1051b9f0f9eab8091fe3bf98320741adf36b4cfa"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:33:32 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:33:32 2011 +0000"
      },
      "message": "Merge branch \u0027devel-stable\u0027 into devel\n\nConflicts:\n\tarch/arm/mach-pxa/clock.c\n\tarch/arm/mach-pxa/clock.h\n"
    },
    {
      "commit": "4073723acb9cdcdbe4df9c0e0c376c65d1697e43",
      "tree": "f41c17eac157b1223ce104845cf9b1e5a9e6a83d",
      "parents": [
        "58daf18cdcab550262a5f4681e1f1e073e21965a",
        "4ec3eb13634529c0bc7466658d84d0bbe3244aea"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:32:52 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:32:52 2011 +0000"
      },
      "message": "Merge branch \u0027misc\u0027 into devel\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/common/Makefile\n\tarch/arm/kernel/Makefile\n\tarch/arm/kernel/smp.c\n"
    },
    {
      "commit": "4ec3eb13634529c0bc7466658d84d0bbe3244aea",
      "tree": "b491daac2ccfc7b8ca88e171a43f66888463568a",
      "parents": [
        "24056f525051a9e186af28904b396320e18bf9a0",
        "15095bb0fe779c0403091bda7adce5fb3bb9ca35"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:31:35 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Jan 06 22:32:03 2011 +0000"
      },
      "message": "Merge branch \u0027smp\u0027 into misc\n\nConflicts:\n\tarch/arm/kernel/entry-armv.S\n\tarch/arm/mm/ioremap.c\n"
    },
    {
      "commit": "84b7290cca16c61a167c7e1912cd84a479852165",
      "tree": "8ecdd0ac8519cf5f38032db0f87ee1640b488efa",
      "parents": [
        "9858a38ea3a940762ae3028cce88f686d0e0c28b",
        "1928e87bcf185f56008d0746f887b691c1cb8c4a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:35:12 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 13:35:12 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: (55 commits)\n  video: udlfb: Kill off special printk wrappers, use pr_fmt().\n  video: udlfb: Kill off some magic constants for EDID sizing.\n  video: udlfb: deifdefify (yes, that\u0027s a word).\n  fbdev: modedb: Add a new mode for 864x480 TAAL panels.\n  drivers/video/i810/i810-i2c.c: fix i2c bus handling\n  video: Fix the HGA framebuffer driver\n  drivers/video/carminefb.c: improve error handling\n  video: imxfb: Fix the maximum value for yres\n  fbdev: sh_mobile_lcdcfb: Enable 32 bpp and 24 bpp support\n  fbdev: sh_mipi_dsi: use platform provided register layout and values\n  ARM: mach-shmobile: specify sh7372 MIPI DSI register layout\n  fbdev: sh_mipi_dsi: support different register layouts\n  ARM: mach-shmobile: improve MIPI DSI clock configuration\n  fbdev: sh-mobile: implement MIPI DSI runtime PM support\n  sisfb: eliminate compiler warnings\n  sisfb: delete unused register I/O macros\n  sisfb: replace setSISIDXREG with SiS_SetRegANDOR\n  sisfb: replace andSISIDXREG with SiS_SetRegAND\n  sisfb: replace orSISIDXREG with SiS_SetRegOR\n  sisfb: replace outSISIDXREG with SiS_SetReg\n  ...\n"
    },
    {
      "commit": "abb359450f20c32ae03039d8736f12b1d561caf5",
      "tree": "6e8723885feb66a138f19f0ff31615dc13a8d859",
      "parents": [
        "cb600d2f83c854ec3d6660063e4466431999489b",
        "4e3dbdb1392a83bd21a6ff8f6bc785495058d37c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 12:30:19 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1436 commits)\n  cassini: Use local-mac-address prom property for Cassini MAC address\n  net: remove the duplicate #ifdef __KERNEL__\n  net: bridge: check the length of skb after nf_bridge_maybe_copy_header()\n  netconsole: clarify stopping message\n  netconsole: don\u0027t announce stopping if nothing happened\n  cnic: Fix the type field in SPQ messages\n  netfilter: fix export secctx error handling\n  netfilter: fix the race when initializing nf_ct_expect_hash_rnd\n  ipv4: IP defragmentation must be ECN aware\n  net: r6040: Return proper error for r6040_init_one\n  dcb: use after free in dcb_flushapp()\n  dcb: unlock on error in dcbnl_ieee_get()\n  net: ixp4xx_eth: Return proper error for eth_init_one\n  include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel\n  net: add POLLPRI to sock_def_readable()\n  af_unix: Avoid socket-\u003esk NULL OOPS in stream connect security hooks.\n  net_sched: pfifo_head_drop problem\n  mac80211: remove stray extern\n  mac80211: implement off-channel TX using hw r-o-c offload\n  mac80211: implement hardware offload for remain-on-channel\n  ...\n"
    },
    {
      "commit": "2ad0d9d413abc3380fc1d89a9da7f8db59d9746b",
      "tree": "86bbbb8676ee52198867b4281ad52b1b3aecef3c",
      "parents": [
        "f88de8de5a8c8a8a73960d4432ceef2d38b7f86f"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Thu Jan 06 11:41:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:41:42 2011 -0800"
      },
      "message": "net: remove the duplicate #ifdef __KERNEL__\n\nSince we are already in #ifdef __KERNEL__, we don\u0027t need to check it\nagain.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f682cefa5ad204d3bfaa54a58046c66d2d035ac1",
      "tree": "8c55a0b722df666bb0a75f5749c7457cd5d44f3b",
      "parents": [
        "6623e3b24a5ebb07e81648c478d286a1329ab891"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Wed Jan 05 04:23:23 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:22:20 2011 -0800"
      },
      "message": "netfilter: fix the race when initializing nf_ct_expect_hash_rnd\n\nSince nf_ct_expect_dst_hash() may be called without nf_conntrack_lock\nlocked, nf_ct_expect_hash_rnd should be initialized in the atomic way.\n\nIn this patch, we use nf_conntrack_hash_rnd instead of\nnf_ct_expect_hash_rnd.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "47935a731b7b850a4c6c0e55ed0741e3dd25d889",
      "tree": "6f5a97961f8e73e325d2bc1d6fb1899ad8f7d8e9",
      "parents": [
        "77a0dd54ba3c86b00ab7079bc3be5d82395ecab2",
        "3fb82d56ad003e804923185316236f26b30dfdd5",
        "fd35fbcdd1b2579a6e00a1545f7124e4005d0474",
        "9e76a97efd31a08cb19d0ba12013b8fb4ad3e474",
        "c8217b8305e5e75c23617f2f4cd262527d952c0a",
        "3cf9b85b474e656a0856b88290c7a289ac5ea247",
        "f6cd24777513fcc673d432cc29ef59881d3e4df1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:11:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:11:50 2011 -0800"
      },
      "message": "Merge branches \u0027x86-alternatives-for-linus\u0027, \u0027x86-fpu-for-linus\u0027, \u0027x86-hwmon-for-linus\u0027, \u0027x86-paravirt-for-linus\u0027, \u0027core-locking-for-linus\u0027 and \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-alternatives-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, suspend: Avoid unnecessary smp alternatives switch during suspend/resume\n\n* \u0027x86-fpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86-64, asm: Use fxsaveq/fxrestorq in more places\n\n* \u0027x86-hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, hwmon: Add core threshold notification to therm_throt.c\n\n* \u0027x86-paravirt-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, paravirt: Use native_halt on a halt, not native_safe_halt\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking, lockdep: Convert sprintf_symbol to %pS\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: Better struct irqaction layout\n"
    },
    {
      "commit": "238c855805c853eaec95b0bc3065effb64f955a0",
      "tree": "73520d70f0d447b39cea5dd21f559d7ecf02d734",
      "parents": [
        "5f9251cb93237c9578160df9acc6ce9948ad8c52"
      ],
      "author": {
        "name": "Henry Ptasinski",
        "email": "henryp@broadcom.com",
        "time": "Tue Jan 04 16:07:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 11:10:05 2011 -0800"
      },
      "message": "include/linux/if_ether.h: Add #define ETH_P_LINK_CTL for HPNA and wlan local tunnel\n\nEthertype used by HPNA control protocols (LARQ, rate, link, etc) and by\nBroadcom wlan drivers for local signalling.\n\nSigned-off-by: Henry Ptasinski \u003chenryp@broadcom.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f00b901d4233a78e6ca4d44c8c6fc5d38a3ee9e",
      "tree": "9b9da4230d33c47298d4fa3e93a4a5f0cb047ee8",
      "parents": [
        "b4c6e2ea5e46b03c764a918f4999a77a3149979f",
        "94462ad3b14739d158a1ab87bb30008c1e5a6bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:07:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:07:33 2011 -0800"
      },
      "message": "Merge branch \u0027x86-security-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-security-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  module: Move RO/NX module protection to after ftrace module update\n  x86: Resume trampoline must be executable\n  x86: Add RO/NX protection for loadable kernel modules\n  x86: Add NX protection for kernel data\n  x86: Fix improper large page preservation\n"
    },
    {
      "commit": "b4c6e2ea5e46b03c764a918f4999a77a3149979f",
      "tree": "bc2ee8ac6a2b3bb656aa95d1477514aa45bb834c",
      "parents": [
        "6f46b120a96212b85cbdcb84a64c854dfd791ede",
        "991cfffa7c19aa648546aff666595af896e568ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:06:31 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:06:31 2011 -0800"
      },
      "message": "Merge branch \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-platform-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, earlyprintk: Move mrst early console to platform/ and fix a typo\n  x86, apbt: Setup affinity for apb timers acting as per-cpu timer\n  ce4100: Add errata fixes for UART on CE4100\n  x86: platform: Move iris to x86/platform where it belongs\n  x86, mrst: Check platform_device_register() return code\n  x86/platform: Add Eurobraille/Iris power off support\n  x86, mrst: Add explanation for using 1960 as the year offset for vrtc\n  x86, mrst: Fix dependencies of \"select INTEL_SCU_IPC\"\n  x86, mrst: The shutdown for MRST requires the SCU IPC mechanism\n  x86: Ce4100: Add reboot_fixup() for CE4100\n  ce4100: Add PCI register emulation for CE4100\n  x86: Add CE4100 platform support\n  x86: mrst: Set vRTC\u0027s IRQ to level trigger type\n  x86: mrst: Add audio driver bindings\n  rtc: Add drivers/rtc/rtc-mrst.c\n  x86: mrst: Add vrtc driver which serves as a wall clock device\n  x86: mrst: Add Moorestown specific reboot/shutdown support\n  x86: mrst: Parse SFI timer table for all timer configs\n  x86/mrst: Add SFI platform device parsing code\n"
    },
    {
      "commit": "5f9251cb93237c9578160df9acc6ce9948ad8c52",
      "tree": "5a5718b5a076ce6f04bb3d0e1691aa65d87cc8a8",
      "parents": [
        "2c6607c611cb7bf0a6750bcea34a258144e302c5",
        "06778b1c383afbdb88ffd837e117bec06a76f450"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 10:55:42 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jan 06 10:55:42 2011 -0800"
      },
      "message": "Merge branch \u0027for-davem\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6\n"
    },
    {
      "commit": "dda5f0a372873bca5f0b1d1866d7784dffd8b675",
      "tree": "1f745951b51ef9dcd127ca3c65ecb1d2ce4967c2",
      "parents": [
        "65b2074f84be2287e020839e93b4cdaaf60eb37c",
        "88606e80da0e8d862a42ee19e5bb60b01b940ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:42:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:42:43 2011 -0800"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  MAINTAINERS: Update timer related entries\n  timers: Use this_cpu_read\n  timerqueue: Make timerqueue_getnext() static inline\n  hrtimer: fix timerqueue conversion flub\n  hrtimers: Convert hrtimers to use timerlist infrastructure\n  timers: Fixup allmodconfig build issue\n  timers: Rename timerlist infrastructure to timerqueue\n  timers: Introduce timerlist infrastructure.\n  hrtimer: Remove stale comment on curr_timer\n  timer: Warn when del_timer_sync() is called in hardirq context\n  timer: Del_timer_sync() can be used in softirq context\n  timer: Make try_to_del_timer_sync() the same on SMP and UP\n  posix-timers: Annotate lock_timer()\n  timer: Permit statically-declared work with deferrable timers\n  time: Use ARRAY_SIZE macro in timecompare.c\n  timer: Initialize the field slack of timer_list\n  timer_list: Remove alignment padding on 64 bit when CONFIG_TIMER_STATS\n  time: Compensate for rounding on odd-frequency clocksources\n\nFix up trivial conflict in MAINTAINERS\n"
    },
    {
      "commit": "65b2074f84be2287e020839e93b4cdaaf60eb37c",
      "tree": "d020c3c37fa5b112ee531b324214236bef9feec6",
      "parents": [
        "28d9bfc37c861aa9c8386dff1ac7e9a10e5c5162",
        "6bf4123760a5aece6e4829ce90b70b6ffd751d65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:23:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:23:33 2011 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)\n  sched: Change wait_for_completion_*_timeout() to return a signed long\n  sched, autogroup: Fix reference leak\n  sched, autogroup: Fix potential access to freed memory\n  sched: Remove redundant CONFIG_CGROUP_SCHED ifdef\n  sched: Fix interactivity bug by charging unaccounted run-time on entity re-weight\n  sched: Move periodic share updates to entity_tick()\n  printk: Use this_cpu_{read|write} api on printk_pending\n  sched: Make pushable_tasks CONFIG_SMP dependant\n  sched: Add \u0027autogroup\u0027 scheduling feature: automated per session task groups\n  sched: Fix unregister_fair_sched_group()\n  sched: Remove unused argument dest_cpu to migrate_task()\n  mutexes, sched: Introduce arch_mutex_cpu_relax()\n  sched: Add some clock info to sched_debug\n  cpu: Remove incorrect BUG_ON\n  cpu: Remove unused variable\n  sched: Fix UP build breakage\n  sched: Make task dump print all 15 chars of proc comm\n  sched: Update tg-\u003eshares after cpu.shares write\n  sched: Allow update_cfs_load() to update global load\n  sched: Implement demand based update_cfs_load()\n  ...\n"
    },
    {
      "commit": "28d9bfc37c861aa9c8386dff1ac7e9a10e5c5162",
      "tree": "85bcc2db18ff20e380a40aba375e70d14c2671b4",
      "parents": [
        "f3b0cfa9b017a9d4686c9b14b908a1685f97a077",
        "4b95f135f606c87e4056b6d7fd3c5781c818858b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (146 commits)\n  tools, perf: Documentation for the power events API\n  perf: Add calls to suspend trace point\n  perf script: Make some lists static\n  perf script: Use the default lost event handler\n  perf session: Warn about errors when processing pipe events too\n  perf tools: Fix perf_event.h header usage\n  perf test: Clarify some error reports in the open syscall test\n  x86, NMI: Add touch_nmi_watchdog to io_check_error delay\n  x86: Avoid calling arch_trigger_all_cpu_backtrace() at the same time\n  x86: Only call smp_processor_id in non-preempt cases\n  perf timechart: Adjust perf timechart to the new power events\n  perf: Clean up power events by introducing new, more generic ones\n  perf: Do not export power_frequency, but power_start event\n  perf test: Add test for counting open syscalls\n  perf evsel: Auto allocate resources needed for some methods\n  perf evsel: Use {cpu,thread}_map to shorten list of parameters\n  perf tools: Refactor all_tids to hold nr and the map\n  perf tools: Refactor cpumap to hold nr and the map\n  perf evsel: Introduce per cpu and per thread open helpers\n  perf evsel: Steal the counter reading routines from stat\n  ...\n"
    },
    {
      "commit": "2af49b6058d857fa5b476db642d4452bf5833ecd",
      "tree": "dbce19fe5db5c34294a911baedd2e91bb897b9ce",
      "parents": [
        "b08b27213384d1bd6eda04a2b6f788b4cdee0f34",
        "394f4528c523d88daabd50f883a8d6b164075555"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:06:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 10:06:26 2011 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: remove unused __list_for_each_rcu() macro\n  rculist: fix borked __list_for_each_rcu() macro\n  rcu: reduce __call_rcu()-induced contention on rcu_node structures\n  rcu: limit rcu_node leaf-level fanout\n  rcu: fine-tune grace-period begin/end checks\n  rcu: Keep gpnum and completed fields synchronized\n  rcu: Stop chasing QS if another CPU did it for us\n  rcu: increase synchronize_sched_expedited() batching\n  rcu: Make synchronize_srcu_expedited() fast if running readers\n  rcu: fix race condition in synchronize_sched_expedited()\n  rcu: update documentation/comments for Lai\u0027s adoption patch\n  rcu,cleanup: simplify the code when cpu is dying\n  rcu,cleanup: move synchronize_sched_expedited() out of sched.c\n  rcu: get rid of obsolete \"classic\" names in TREE_RCU tracing\n  rcu: Distinguish between boosting and boosted\n  rcu: document TINY_RCU and TINY_PREEMPT_RCU tracing.\n  rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU\n  rcu: priority boosting for TINY_PREEMPT_RCU\n  rcu: move TINY_RCU from softirq to kthread\n  rcu: add priority-inversion testing to rcutorture\n"
    },
    {
      "commit": "1928e87bcf185f56008d0746f887b691c1cb8c4a",
      "tree": "bc8db9e9cb40b73742d05e2e68189bd647687249",
      "parents": [
        "ca9c20ce2b383032b71bdae9ec0b468d428ca8d4",
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:27:34 2011 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:27:34 2011 +0900"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\tdrivers/video/sh_mobile_lcdcfb.c\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "ca9c20ce2b383032b71bdae9ec0b468d428ca8d4",
      "tree": "3f2568b3f2c89b18369cbff0769f15d62f6ca5e5",
      "parents": [
        "17ca20cb7d04a259c9194879f77466bde606dda5",
        "81f6f3c1047392a22b9a20bbecf98c7f2d6f922a"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:10:09 2011 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:10:09 2011 +0900"
      },
      "message": "Merge branch \u0027fbdev/udlfb\u0027\n"
    },
    {
      "commit": "81f6f3c1047392a22b9a20bbecf98c7f2d6f922a",
      "tree": "1e4b49ff738dcb43f61edaec434d7c9559246beb",
      "parents": [
        "b9f03a3cd06c6f8bbecfe08eae2a69cc0a13c690"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:07:54 2011 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:07:54 2011 +0900"
      },
      "message": "video: udlfb: Kill off special printk wrappers, use pr_fmt().\n\nThis kills off all of the dl_xxx() printk wrappers and simply stubs in a\npr_fmt() definition to accomplish the same thing.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "b9f03a3cd06c6f8bbecfe08eae2a69cc0a13c690",
      "tree": "6e6166c7eafffda30e30182d731bc1dae19bdd83",
      "parents": [
        "1a3e528cfc00a9d08114c5fa9e486a77633a425d"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:04:02 2011 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 06 18:04:02 2011 +0900"
      },
      "message": "video: udlfb: Kill off some magic constants for EDID sizing.\n\nThe edid length is fixed, so use the standard definition consistently.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "3610cda53f247e176bcbb7a7cca64bc53b12acdb",
      "tree": "d780bc1e405116e75a194b2f4693a6f9bbe9f58f",
      "parents": [
        "44b8288308ac9da27eab7d7bdbf1375a568805c3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 05 15:38:53 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jan 05 15:38:53 2011 -0800"
      },
      "message": "af_unix: Avoid socket-\u003esk NULL OOPS in stream connect security hooks.\n\nunix_release() can asynchornously set socket-\u003esk to NULL, and\nit does so without holding the unix_state_lock() on \"other\"\nduring stream connects.\n\nHowever, the reverse mapping, sk-\u003esk_socket, is only transitioned\nto NULL under the unix_state_lock().\n\nTherefore make the security hooks follow the reverse mapping instead\nof the forward mapping.\n\nReported-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "21f83589644bb2ed98079bf1e2154c8e70ca6a6c",
      "tree": "ede391a8c788a43f7c4ea3baa3367e020d45f179",
      "parents": [
        "c96e96354a6c9456cdf1f150eca504e2ea35301e"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Sat Dec 18 17:20:47 2010 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:07:12 2011 -0500"
      },
      "message": "mac80211: implement hardware offload for remain-on-channel\n\nThis allows drivers to support remain-on-channel\noffload if they implement smarter timing or need\nto use a device implementation like iwlwifi.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "c96e96354a6c9456cdf1f150eca504e2ea35301e",
      "tree": "751bec601fb8152116b8e31e0f1f83d687a37d6f",
      "parents": [
        "dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a",
        "33af88138b859f515b365a074e0a014d7cdbf846"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:06:25 2011 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 05 16:06:25 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem\n\nConflicts:\n\tnet/bluetooth/Makefile\n"
    },
    {
      "commit": "aa312be1987d43216e72ffce42bccf6bf81f62ed",
      "tree": "b994c25fc1492d7ff70d2ca83c64106b4883a808",
      "parents": [
        "31edf274f9aff1ccd39934a0b2fce38f4405c656",
        "8c11a94d86eb5489dc665bc566bf624e329d89fa",
        "38d624361b2a82d6317c379aebf81b1b28210bb0"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Jan 05 18:08:31 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Jan 05 18:08:31 2011 +0000"
      },
      "message": "Merge branches \u0027mmci\u0027 and \u0027pl011-dma\u0027 into devel\n"
    },
    {
      "commit": "31edf274f9aff1ccd39934a0b2fce38f4405c656",
      "tree": "fdc7bc445307ccb9648ca1a71375947c8ed59722",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5",
        "ed60453fa8f8fc3d034dfdf10371a99cc6905626",
        "ac61d143ffe2a6db4d4bcf47c21a5159d6a1b644",
        "28257f7fdee0facc3b7f934e82c2485f27120d41",
        "b23065313297e750edd57ab6edfd36224826724e",
        "50005a8deb38e5e6456ebd94e57adb321d4589de",
        "cf562b4a550b3cd9d602a05bc27aaaaa376947b4",
        "3d09fbcd26851ffb2c40cec411b8e56db02520d1",
        "8a9618f5dfca35edb0d7ab6374ff586e2e9e989b"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Jan 05 18:08:10 2011 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Jan 05 18:08:10 2011 +0000"
      },
      "message": "Merge branches \u0027ftrace\u0027, \u0027gic\u0027, \u0027io\u0027, \u0027kexec\u0027, \u0027mod\u0027, \u0027sa11x0\u0027, \u0027sh\u0027 and \u0027versatile\u0027 into devel\n"
    },
    {
      "commit": "38d624361b2a82d6317c379aebf81b1b28210bb0",
      "tree": "fca8b4acdba29a8550fc7e7d19de2d2228c36be8",
      "parents": [
        "68b65f7305e54b822b2483c60de7d7b017526a92"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Dec 22 17:59:16 2010 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Jan 05 16:58:53 2011 +0000"
      },
      "message": "ARM: PL011: add DMA burst threshold support for ST variants\n\nST Micro variants has some specific dma burst threshold compensation,\nwhich allows them to make better use of a DMA controller.  Add support\nto set this up.\n\nBased on a patch from Linus Walleij.\n\nAcked-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "68b65f7305e54b822b2483c60de7d7b017526a92",
      "tree": "c67c4d2791f45f48a042b3bdcf16b342f6b2163a",
      "parents": [
        "963cc981af620c7c07b5f6d1ab998b639e90ecb1"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Dec 22 17:24:39 2010 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Jan 05 16:58:48 2011 +0000"
      },
      "message": "ARM: PL011: Add support for transmit DMA\n\nAdd DMA engine support for transmit to the PL011 driver.  Based on a\npatch from Linus Walliej, with the following changes:\n\n- remove RX DMA support.  As PL011 doesn\u0027t give us receive timeout\n  interrupts, we only get notified of received data when the RX DMA\n  has completed.  This rather sucks for interactive use of the TTY.\n\n- remove abuse of completions.  Completions are supposed to be for\n  events, not to tell what condition buffers are in.  Replace it with\n  a simple \u0027queued\u0027 bool.\n\n- fix locking - it is only safe to access the circular buffer with the\n  port lock held.\n\n- only map the DMA buffer when required - if we\u0027re ever behind an IOMMU\n  this helps keep IOMMU usage down, and also ensures that we\u0027re legal\n  when we change the scatterlist entry length.\n\n- fix XON/XOFF sending - we must send XON/XOFF characters out as soon\n  as possible - waiting for up to 4095 characters in the DMA buffer\n  to be sent first is not acceptable.\n\n- fix XON/XOFF receive handling - we need to stop DMA when instructed\n  to by the TTY layer, and restart it again when instructed to.  There\n  is a subtle problem here: we must not completely empty the circular\n  buffer with DMA, otherwise we will not be notified of XON.\n\n- change the \u0027enable_dma\u0027 flag into a \u0027using DMA\u0027 flag, and track\n  whether we can use TX DMA by whether the channel pointer is non-NULL.\n  This gives us more control over whether we use DMA in the driver.\n\n- we don\u0027t need to have the TX DMA buffer continually allocated for\n  each port - instead, allocate it when the port starts up, and free\n  it when it\u0027s shut down.  Update the \u0027using DMA\u0027 flag if we get\n  the buffer, and adjust the TTY FIFO size appropriately.\n\n- if we\u0027re going to use PIO to send characters, use the existing IRQ\n  based functionality rather than reimplementing it.  This also ensures\n  we call uart_write_wakeup() at the appropriate time, otherwise we\u0027ll\n  stall.\n\n- use DMA engine helper functions for type safety.\n\n- fix init when built as a module - we can\u0027t have to initcall functions,\n  so we must settle on one.  This means we can eliminate the deferred\n  DMA initialization.\n\n- there is no need to terminate transfers on a failed prep_slave_sg()\n  call - nothing has been setup, so nothing needs to be terminated.\n  This avoids a potential deadlock in the DMA engine code\n  (tasklet-\u003ecallback-\u003efailed prepare-\u003eterminate-\u003etasklet_disable\n   which then ends up waiting for the tasklet to finish running.)\n\n- Dan says that the submission callback should not return an error:\n  | dma_submit_error() is something I should have removed after commit\n  | a0587bcf \"ioat1: move descriptor allocation from submit to prep\" all\n  | errors should be notified by prep failing to return a descriptor\n  | handle.  Negative dma_cookie_t values are only returned by the\n  | dma_async_memcpy* calls which translate a prep failure into -ENOMEM.\n  So remove the error handling at that point.  This also solves the\n  potential deadlock mentioned in the previous comment.\n\nAcked-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "aef1b9cef78ae65c6501850851cc3f61f9be477b",
      "tree": "9769972983e84620df17c13b73f70a8341c4b125",
      "parents": [
        "20c457b8587bee4644d998331d9e13be82e05b4c",
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:22:08 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:22:10 2011 +0100"
      },
      "message": "Merge commit \u0027v2.6.37\u0027 into perf/core\n\nMerge reason: Add the final .37 tree.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6bf4123760a5aece6e4829ce90b70b6ffd751d65",
      "tree": "f7c34fba897b0a1270817c415b8c095958f59add",
      "parents": [
        "27066fd484a32c80630136aa2b91c980f3198f9d"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Jan 05 12:50:16 2011 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:15:50 2011 +0100"
      },
      "message": "sched: Change wait_for_completion_*_timeout() to return a signed long\n\nwait_for_completion_*_timeout() can return:\n\n   0: if the wait timed out\n -ve: if the wait was interrupted\n +ve: if the completion was completed.\n\nAs they currently return an \u0027unsigned long\u0027, the last two cases\nare not easily distinguished which can easily result in buggy\ncode, as is the case for the recently added\nwait_for_completion_interruptible_timeout() call in\nnet/sunrpc/cache.c\n\nSo change them both to return \u0027long\u0027.  As MAX_SCHEDULE_TIMEOUT\nis LONG_MAX, a large +ve return value should never overflow.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: J.  Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20110105125016.64ccab0e@notabene.brown\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27066fd484a32c80630136aa2b91c980f3198f9d",
      "tree": "78ddabdedbfd7525d13ecd62a745525843f1d0e8",
      "parents": [
        "101e5f77bf35679809586e250b6c62193d2ed179",
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:14:42 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 05 14:14:46 2011 +0100"
      },
      "message": "Merge commit \u0027v2.6.37\u0027 into sched/core\n\nMerge reason: Merge the final .37 tree.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97cbc8fb1e35e328073e84c4031bd338306397d6",
      "tree": "0747f1d8f7c1e09ebf1072fcaedd18cccb11f304",
      "parents": [
        "17d6ce11195fceda62af00beefde37e37a01337c",
        "14bbb7c61557172e4482d4d97a5f56042a12b969"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 05 17:30:20 2011 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 05 17:30:20 2011 +0900"
      },
      "message": "Merge branch \u0027common/fbdev-mipi\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6\n"
    }
  ],
  "next": "38f3a8794236af422312d280bbe3801130cfa63b"
}
