)]}'
{
  "log": [
    {
      "commit": "28839855bf623f2d7eee72377d4896770a45494f",
      "tree": "e7f8b0742120b9d7401f5783a6065f004167aae1",
      "parents": [
        "ccbf04f24c55ead791dac5df8ddeb1a640fbaad8",
        "6e96281412f2f757abe623e08a9577e2bbd3402f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 13 09:02:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 13 09:02:21 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  smp_call_function_single(): be slightly less stupid, fix #2\n  lockdep, mm: fix might_fault() annotation\n"
    },
    {
      "commit": "37a76bd4f1b716949fc38a6842e89f0ccb8384d0",
      "tree": "6537cab6fb0e1a9508d34ca95b25808866bf04af",
      "parents": [
        "d32ad102c6d748b510fd89f1af4232eac1be8732"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Jan 11 15:35:01 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 12 16:39:58 2009 -0800"
      },
      "message": "async: fix __lowest_in_progress()\n\nAt 37000 feet somewhere near Greenland I woke up from a half-sleep with the\nrealisation that __lowest_in_progress() is buggy. After landing I checked\nand there were indeed 2 problems with it; this patch fixes both:\n* The order of the list checks was wrong\n* The locking was not correct.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12847095e9c96cdf1ca6dd980ca733c38f8e9a98",
      "tree": "98dc35325c1bf3c61e2c4a2dce8e827bf0d99af5",
      "parents": [
        "1181a2449969c59f0ab6b95374fe6983cc07286d",
        "fd2ab30b65e961b974ae0bc71e0d47d6b35e0968"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 12 16:29:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 12 16:29:00 2009 -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  kernel/sched.c: add missing forward declaration for \u0027double_rq_lock\u0027\n  sched: partly revert \"sched debug: remove NULL checking in print_cfs_rt_rq()\"\n  cpumask: fix CONFIG_NUMA\u003dy sched.c\n"
    },
    {
      "commit": "6e96281412f2f757abe623e08a9577e2bbd3402f",
      "tree": "8777594e0424a39ab38fa12e091861fce981cdd5",
      "parents": [
        "95156f0051cba60ec674bbaa5cf7dc74a74c5612"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 12 16:04:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 12 16:04:37 2009 +0100"
      },
      "message": "smp_call_function_single(): be slightly less stupid, fix #2\n\nfix m68k build failure:\n\n tip/kernel/up.c: In function \u0027smp_call_function_single\u0027:\n tip/kernel/up.c:16: error: dereferencing pointer to incomplete type\n make[2]: *** [kernel/up.o] Error 1\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fd2ab30b65e961b974ae0bc71e0d47d6b35e0968",
      "tree": "5d3f13b4ffc71215b232cc91668aa482dd520931",
      "parents": [
        "df051434f1dfc93ec2e1c1d186bb87cb3db9dcdf"
      ],
      "author": {
        "name": "Steven Noonan",
        "email": "steven@uplinklabs.net",
        "time": "Sun Jan 11 01:04:22 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 13:06:07 2009 +0100"
      },
      "message": "kernel/sched.c: add missing forward declaration for \u0027double_rq_lock\u0027\n\nImpact: build fix on certain configs\n\nAdded \u0027double_rq_lock\u0027 forward declaration, allowing double_rq_lock\nto be used in _double_lock_balance().\n\nSigned-off-by: Steven Noonan \u003csteven@uplinklabs.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93423b8665f43a0c7a006a1d5be048b99db56d32",
      "tree": "6e3c9433fc729c7a52353faf0c70d7de1d3abeb3",
      "parents": [
        "53ce3d9564908794ae7dd32969089b57df5fc098"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 05:15:21 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 05:15:21 2009 +0100"
      },
      "message": "smp_call_function_single(): be slightly less stupid, fix\n\nImpact: build fix on Alpha\n\n kernel/up.c: In function \u0027smp_call_function_single\u0027:\n kernel/up.c:12: error: \u0027cpuid\u0027 undeclared (first use in this function)\n kernel/up.c:12: error: (Each undeclared identifier is reported only once\n kernel/up.c:12: error: for each function it appears in.)\n\nThe typo didnt show up on x86 because \u0027cpuid\u0027 happens to be a\nfunction address as well ...\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "53ce3d9564908794ae7dd32969089b57df5fc098",
      "tree": "d0eb540d9743155eff6d3c454db3493bf75c9023",
      "parents": [
        "abede81c4fb2e3b85d8760f25e3da39d2c69a134"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jan 09 12:27:08 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 03:41:58 2009 +0100"
      },
      "message": "smp_call_function_single(): be slightly less stupid\n\nIf you do\n\n\tsmp_call_function_single(expression-with-side-effects, ...)\n\nthen expression-with-side-effects never gets evaluated on UP builds.\n\nAs always, implementing it in C is the correct thing to do.\n\nWhile we\u0027re there, uninline it for size and possible header dependency\nreasons.\n\nAnd create a new kernel/up.c, as a place in which to put\nuniprocessor-specific code and storage.  It should mirror kernel/smp.c.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "abede81c4fb2e3b85d8760f25e3da39d2c69a134",
      "tree": "26c893ec108d837eb9171d678c55a1cea7b22af4",
      "parents": [
        "c9d557c19f94df42db78d4a5de4d25feee694bad",
        "c59765042f53a79a7a65585042ff463b69cb248c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 03:41:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 03:41:39 2009 +0100"
      },
      "message": "Merge commit \u0027v2.6.29-rc1\u0027 into core/urgent\n"
    },
    {
      "commit": "805194c35b91999b139e4d6b6145f4f84fd4c814",
      "tree": "7530c66ec53045858bba70ad8f1c626c450d12cc",
      "parents": [
        "62ea9ceb17a74bc7544211bfeecf4170c554ac4f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Jan 10 15:43:15 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 02:40:32 2009 +0100"
      },
      "message": "sched: partly revert \"sched debug: remove NULL checking in print_cfs_rt_rq()\"\n\nImpact: avoid accessing NULL tg.css-\u003ecgroup\n\nIn commit 0a0db8f5c9d4bbb9bbfcc2b6cb6bce2d0ef4d73d, I removed checking\nNULL tg.css-\u003ecgroup, but I realized I was wrong when I found reading\n/proc/sched_debug can race with cgroup_create().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "62ea9ceb17a74bc7544211bfeecf4170c554ac4f",
      "tree": "ef8f6b185463a4b68908ca23357efd3d1ddb6145",
      "parents": [
        "3d14bdad40315b54470cb7812293d14c8af2bf7d"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sun Jan 11 01:04:16 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jan 11 01:04:16 2009 +0100"
      },
      "message": "cpumask: fix CONFIG_NUMA\u003dy sched.c\n\nImpact: fix panic on ia64 with NR_CPUS\u003d1024\n\nstruct sched_domain is now a dangling structure; where we really want\nstatic ones, we need to use static_sched_domain.\n\n(As the FIXME in this file says, cpumask_var_t would be better, but\nthis code is hairy enough without trying to add initialization code to\nthe right places).\n\nReported-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a100a4464917b5ffff3a8ce1c2758088fd9bb32",
      "tree": "2c0e42dd23907dbdff147fa0097ccc2ef7be9ae1",
      "parents": [
        "0d34052dfeba307ebc18d2f672e80e3f419714d4",
        "cdb80f630be5cbc23d82331f24dc4704f75b64f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 15:32:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 15:32:26 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-2\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-2:\n  async: make async a command line option for now\n  partial revert of asynchronous inode delete\n"
    },
    {
      "commit": "c40f6f8bbc4cbd2902671aacd587400ddca62627",
      "tree": "a991e5521e10943f4457fb7f494e00aec75cc7df",
      "parents": [
        "1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5",
        "cb6ff208076b5f434db1b8c983429269d719cef5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu:\n  NOMMU: Support XIP on initramfs\n  NOMMU: Teach kobjsize() about VMA regions.\n  FLAT: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  FDPIC: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  NOMMU: Improve procfs output using per-MM VMAs\n  NOMMU: Make mmap allocation page trimming behaviour configurable.\n  NOMMU: Make VMAs per MM as for MMU-mode linux\n  NOMMU: Delete askedalloc and realalloc variables\n  NOMMU: Rename ARM\u0027s struct vm_region\n  NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()\n"
    },
    {
      "commit": "1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5",
      "tree": "266fafec84391c21383cfad7e6ae5ef6131f3ff1",
      "parents": [
        "7d671f3e713fc5ff18a5227a8dc16dfdb8bc0664",
        "b9456371a73871d001e67b5f4eac118c2c278e1c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 13:59:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 13:59:25 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  CRED: Fix commit_creds() on a process that has no mm\n"
    },
    {
      "commit": "cdb80f630be5cbc23d82331f24dc4704f75b64f4",
      "tree": "537545e474b5906e4887aaa28e4e832134a97fa3",
      "parents": [
        "b32714ba29358a688ef337d5297bf4bdc9f596dc"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 09 13:23:45 2009 -0800"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jan 09 13:23:45 2009 -0800"
      },
      "message": "async: make async a command line option for now\n\n... and have it default off.\nThis does allow people to work with it for testing.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "4ce5f24193cef2e26f182ce708e94ba1f5fafc0c",
      "tree": "300373440be70af7c8ce662d4b30d8103e7c6026",
      "parents": [
        "7c51d57e9d7fbce89f79c41dc8da383101dbe9c6",
        "a076aa4f96f40fc75451ae835a1a665ce1faf951"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 12:43:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 12:43:06 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile: (31 commits)\n  powerpc/oprofile: fix whitespaces in op_model_cell.c\n  powerpc/oprofile: IBM CELL: add SPU event profiling support\n  powerpc/oprofile: fix cell/pr_util.h\n  powerpc/oprofile: IBM CELL: cleanup and restructuring\n  oprofile: make new cpu buffer functions part of the api\n  oprofile: remove #ifdef CONFIG_OPROFILE_IBS in non-ibs code\n  ring_buffer: fix ring_buffer_event_length()\n  oprofile: use new data sample format for ibs\n  oprofile: add op_cpu_buffer_get_data()\n  oprofile: add op_cpu_buffer_add_data()\n  oprofile: rework implementation of cpu buffer events\n  oprofile: modify op_cpu_buffer_read_entry()\n  oprofile: add op_cpu_buffer_write_reserve()\n  oprofile: rename variables in add_ibs_begin()\n  oprofile: rename add_sample() in cpu_buffer.c\n  oprofile: rename variable ibs_allowed to has_ibs in op_model_amd.c\n  oprofile: making add_sample_entry() inline\n  oprofile: remove backtrace code for ibs\n  oprofile: remove unused ibs macro\n  oprofile: remove unused components in struct oprofile_cpu_buffer\n  ...\n"
    },
    {
      "commit": "a3a798c88a14b35e5d4ca30716dbc9eb9a1ddfe2",
      "tree": "393969a0f1405237483c8c29b904690f2bb90559",
      "parents": [
        "efcb3cf7f00c3c424db012380a8a974c2676a3c8",
        "d97c0defba25a959a990f6d4759f43075540832e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:55:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:55:14 2009 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (94 commits)\n  ACPICA: hide private headers\n  ACPICA: create acpica/ directory\n  ACPI: fix build warning\n  ACPI : Use RSDT instead of XSDT by adding boot option of \"acpi\u003drsdt\"\n  ACPI: Avoid array address overflow when _CST MWAIT hint bits are set\n  fujitsu-laptop: Simplify SBLL/SBL2 backlight handling\n  fujitsu-laptop: Add BL power, LED control and radio state information\n  ACPICA: delete utcache.c\n  ACPICA: delete acdisasm.h\n  ACPICA: Update version to 20081204.\n  ACPICA: FADT: Update error msgs for consistency\n  ACPICA: FADT: set acpi_gbl_use_default_register_widths to TRUE by default\n  ACPICA: FADT parsing changes and fixes\n  ACPICA: Add ACPI_MUTEX_TYPE configuration option\n  ACPICA: Fixes for various ACPI data tables\n  ACPICA: Restructure includes into public/private\n  ACPI: remove private acpica headers from driver files\n  ACPI: reboot.c: use new acpi_reset interface\n  ACPICA: New: acpi_reset interface - write to reset register\n  ACPICA: Move all public H/W interfaces to new hwxface\n  ...\n"
    },
    {
      "commit": "43529c97122f2c851126447963eedcb8cba74fbe",
      "tree": "4bcba354186ae52e84d57920012f94d47bf0f72b",
      "parents": [
        "0de336814107358bc8c4173bf9ce2d42445173fe"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 09 16:13:46 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:53:53 2009 -0800"
      },
      "message": "CRED: Must initialise the new creds in prepare_kernel_cred()\n\nThe newly allocated creds in prepare_kernel_cred() must be initialised\nbefore get_uid() and get_group_info() can access them.  They should be\ncopied from the old credentials.\n\nReported-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0de336814107358bc8c4173bf9ce2d42445173fe",
      "tree": "df2b34b171e1310e16b136b151551150c4060be7",
      "parents": [
        "29a41e9e029d21c306e3ad6e723700348b04706a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 09 16:13:41 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:53:53 2009 -0800"
      },
      "message": "CRED: Missing put_cred() in prepare_kernel_cred()\n\nMissing put_cred() in the error handling path of prepare_kernel_cred().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2576e1d4408e134e2188c967b1f28af39cd79d4",
      "tree": "004f3c82faab760f304ce031d6d2f572e7746a50",
      "parents": [
        "3cc8a5f4ba91f67bbdb81a43a99281a26aab8d77",
        "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 09 03:39:43 2009 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 09 03:39:43 2009 -0500"
      },
      "message": "Merge branch \u0027linus\u0027 into release\n"
    },
    {
      "commit": "3cc8a5f4ba91f67bbdb81a43a99281a26aab8d77",
      "tree": "82b60e24ce5457e2e21e00bfa3b2f171d7eb97ce",
      "parents": [
        "d0302bc62af7983040ea1cd1b5dd2b36e1a6a509",
        "ada9cfdd158abb8169873dc8e5ae39b1ec6ffa8c"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 09 03:38:15 2009 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 09 03:38:15 2009 -0500"
      },
      "message": "Merge branch \u0027suspend\u0027 into release\n"
    },
    {
      "commit": "33b04b9308959af7febc1c111c766fa3fd8b1934",
      "tree": "3438b08d90973cee03f8e37e41c93c774aad5c85",
      "parents": [
        "85da1fb545e5fe51c35e0576f71780cc557f4277"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Thu Jan 08 12:35:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 12:58:09 2009 -0800"
      },
      "message": "async: make async_synchronize_full() more serializing\n\nturns out that there are real problems with allowing async\ntasks that are scheduled from async tasks to run after\nthe async_synchronize_full() returns.\n\nThis patch makes the _full more strict and a complete\nsynchronization. Later I might need to add back a lighter\nform of synchronization for other uses.. but not right now.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df4927bf6ccf6278a97a44bd107080c71b269cb5",
      "tree": "aa84ac1dcc0c0df6e01f2b725163e4a411814bb6",
      "parents": [
        "97e133b4543c5c677e768a8538d6d704c4218ff2"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jan 07 18:09:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:15 2009 -0800"
      },
      "message": "generic swap(): sched: remove local swap() macro\n\nUse the new generic implementation.\n\nSigned-off-by: Wu Fengguang \u003cwfg@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61bce0f1371cfff497fe85594fd39d1a0b15ebe1",
      "tree": "97871c4148856e39ffcc8a6ffec89495018729f1",
      "parents": [
        "f9fb860f67b9542cd78d1558dec7058092b57d8e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Jan 07 18:08:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:12 2009 -0800"
      },
      "message": "pid: generalize task_active_pid_ns\n\nCurrently task_active_pid_ns is not safe to call after a task becomes a\nzombie and exit_task_namespaces is called, as nsproxy becomes NULL.  By\nreading the pid namespace from the pid of the task we can trivially solve\nthis problem at the cost of one extra memory read in what should be the\nsame cacheline as we read the namespace from.\n\nWhen moving things around I have made task_active_pid_ns out of line\nbecause keeping it in pid_namespace.h would require adding includes of\npid.h and sched.h that I don\u0027t think we want.\n\nThis change does make task_active_pid_ns unsafe to call during\ncopy_process until we attach a pid on the task_struct which seems to be a\nreasonable trade off.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Bastian Blank \u003cbastian@waldi.eu.org\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6af866af34a96fed24a55979a78b6f73bd4e8e87",
      "tree": "e0c4b27ce3b684ebb2f6fa3685051e01a86d7354",
      "parents": [
        "300ed6cbb70718872cb4936d1d22ef295f9ba44d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: remove remaining pointers to cpumask_t\n\nImpact: cleanups, use new cpumask API\n\nFinal trivial cleanups: mainly s/cpumask_t/struct cpumask\n\nNote there is a FIXME in generate_sched_domains(). A future patch will\nchange struct cpumask *doms to struct cpumask *doms[].\n(I suppose Rusty will do this.)\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "300ed6cbb70718872cb4936d1d22ef295f9ba44d",
      "tree": "56a1dd86be2d6e35b329131ef353a44b929bd53c",
      "parents": [
        "645fcc9d2f6946f97a41c8d00edee38f8a6f0060"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: convert cpuset-\u003ecpus_allowed to cpumask_var_t\n\nImpact: use new cpumask API\n\nThis patch mainly does the following things:\n- change cs-\u003ecpus_allowed from cpumask_t to cpumask_var_t\n- call alloc_bootmem_cpumask_var() for top_cpuset in cpuset_init_early()\n- call alloc_cpumask_var() for other cpusets\n- replace cpus_xxx() to cpumask_xxx()\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "645fcc9d2f6946f97a41c8d00edee38f8a6f0060",
      "tree": "1d7ad63c9e1bace8f0ccac8814be04af92441ebf",
      "parents": [
        "2341d1b6598c7146d64a5050b53a72a5a819617f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: don\u0027t allocate trial cpuset on stack\n\nImpact: cleanups, reduce stack usage\n\nThis patch prepares for the next patch.  When we convert\ncpuset.cpus_allowed to cpumask_var_t, (trialcs \u003d *cs) no longer works.\n\nAnother result of this patch is reducing stack usage of trialcs.\nsizeof(*cs) can be as large as 148 bytes on x86_64, so it\u0027s really not\ngood to have it on stack.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2341d1b6598c7146d64a5050b53a72a5a819617f",
      "tree": "1e278566d5fea4d2c02826b9ac0713ccd146fd92",
      "parents": [
        "5771f0a2236df69683e9abea87f35f522c97ff94"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: convert cpuset_attach() to use cpumask_var_t\n\nImpact: reduce stack usage\n\nAllocate a global cpumask_var_t at boot, and use it in cpuset_attach(), so\nwe won\u0027t fail cpuset_attach().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5771f0a2236df69683e9abea87f35f522c97ff94",
      "tree": "afc960ceac00ab20f2139496e4fa9feeea516467",
      "parents": [
        "5a7625df725a486ad600b0036b6111dbd6321c41"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: remove on stack cpumask_t in cpuset_can_attach()\n\nImpact: reduce stack usage\n\nJust use cs-\u003ecpus_allowed, and no need to allocate a cpumask_var_t.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujistu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a7625df725a486ad600b0036b6111dbd6321c41",
      "tree": "a1b9c81371a6dffbed4a313ec25df33134925af2",
      "parents": [
        "f5813d94279a18ff5936d675e24b44b44a571197"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: remove on stack cpumask_t in cpuset_sprintf_cpulist()\n\nThis patchset converts cpuset to use new cpumask API, and thus\nremove on stack cpumask_t to reduce stack usage.\n\nBefore:\n # cat kernel/cpuset.c include/linux/cpuset.h | grep -c cpumask_t\n 21\nAfter:\n # cat kernel/cpuset.c include/linux/cpuset.h | grep -c cpumask_t\n 0\n\nThis patch:\n\nImpact: reduce stack usage\n\nIt\u0027s safe to call cpulist_scnprintf inside callback_mutex, and thus we can\njust remove the cpumask_t and no need to allocate a cpumask_var_t.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5813d94279a18ff5936d675e24b44b44a571197",
      "tree": "0c565bd5535f0f5623984e65403bda9c41b3a148",
      "parents": [
        "13337714f3b0307dc7f75ef5d83ecf0db2abbd65"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpusets: set task\u0027s cpu_allowed to cpu_possible_map when attaching it into top cpuset\n\nI found a bug on my dual-cpu box.  I created a sub cpuset in top cpuset\nand assign 1 to its cpus.  And then we attach some tasks into this sub\ncpuset.  After this, we offline CPU1.  Now, the tasks in this new cpuset\nare moved into top cpuset automatically because there is no cpu in sub\ncpuset.  Then we online CPU1, we find all the tasks which doesn\u0027t belong\nto top cpuset originally just run on CPU0.\n\nWe fix this bug by setting task\u0027s cpu_allowed to cpu_possible_map when\nattaching it into top cpuset.  This method needn\u0027t modify the current\nbehavior of cpusets on CPU hotplug, and all of tasks in top cpuset use\ncpu_possible_map to initialize their cpu_allowed.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13337714f3b0307dc7f75ef5d83ecf0db2abbd65",
      "tree": "f76dd8961b9287b25e2ea24d2d34fecc52d2c8a0",
      "parents": [
        "e7c5ec9193d32b9559a3bb8893ceedbda85201ff"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:08:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:11 2009 -0800"
      },
      "message": "cpuset: rcu_read_lock() to protect task_cs()\n\ntask_cs() calls task_subsys_state().\n\nWe must use rcu_read_lock() to protect cgroup_subsys_state().\n\nIt\u0027s correct that top_cpuset is never freed, but cgroup_subsys_state()\naccesses css_set, this css_set maybe freed when task_cs() called.\n\nWe use use rcu_read_lock() to protect it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7c5ec9193d32b9559a3bb8893ceedbda85201ff",
      "tree": "fd7505c03e2c7525a110a702907c0604c233e2d9",
      "parents": [
        "2cb378c862777d050c20db903b119a029845fdcb"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:08:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "cgroups: add css_tryget()\n\nAdd css_tryget(), that obtains a counted reference on a CSS.  It is used\nin situations where the caller has a \"weak\" reference to the CSS, i.e.\none that does not protect the cgroup from removal via a reference count,\nbut would instead be cleaned up by a destroy() callback.\n\ncss_tryget() will return true on success, or false if the cgroup is being\nremoved.\n\nThis is similar to Kamezawa Hiroyuki\u0027s patch from a week or two ago, but\nwith the difference that in the event of css_tryget() racing with a\ncgroup_rmdir(), css_tryget() will only return false if the cgroup really\ndoes get removed.\n\nThis implementation is done by biasing css-\u003erefcnt, so that a refcnt of 1\nmeans \"releasable\" and 0 means \"released or releasing\".  In the event of a\nrace, css_tryget() distinguishes between \"released\" and \"releasing\" by\nchecking for the CSS_REMOVED flag in css-\u003eflags.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "999cd8a450f8f93701669a61cac4d3b19eca07e8",
      "tree": "990e5b08e6db971d2e9943f89abf39e7c8f4cb1e",
      "parents": [
        "b5a84319a4343a0db753436fd8147e61eaafa7ea"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:08:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "cgroups: add a per-subsystem hierarchy_mutex\n\nThese patches introduce new locking/refcount support for cgroups to\nreduce the need for subsystems to call cgroup_lock(). This will\nultimately allow the atomicity of cgroup_rmdir() (which was removed\nrecently) to be restored.\n\nThese three patches give:\n\n1/3 - introduce a per-subsystem hierarchy_mutex which a subsystem can\n     use to prevent changes to its own cgroup tree\n\n2/3 - use hierarchy_mutex in place of calling cgroup_lock() in the\n     memory controller\n\n3/3 - introduce a css_tryget() function similar to the one recently\n      proposed by Kamezawa, but avoiding spurious refcount failures in\n      the event of a race between a css_tryget() and an unsuccessful\n      cgroup_rmdir()\n\nFuture patches will likely involve:\n\n- using hierarchy mutex in place of cgroup_lock() in more subsystems\n where appropriate\n\n- restoring the atomicity of cgroup_rmdir() with respect to cgroup_create()\n\nThis patch:\n\nAdd a hierarchy_mutex to the cgroup_subsys object that protects changes to\nthe hierarchy observed by that subsystem.  It is taken by the cgroup\nsubsystem (in addition to cgroup_mutex) for the following operations:\n\n- linking a cgroup into that subsystem\u0027s cgroup tree\n- unlinking a cgroup from that subsystem\u0027s cgroup tree\n- moving the subsystem to/from a hierarchy (including across the\n  bind() callback)\n\nThus if the subsystem holds its own hierarchy_mutex, it can safely\ntraverse its own hierarchy.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28dbc4b6a01fb579a9441c7b81e3d3413dc452df",
      "tree": "c45d94be6cd243f3e677ec8279bfec87855802d0",
      "parents": [
        "52bc0d82100cd896213a9a25ec01c1ba87b939db"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Jan 07 18:08:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:05 2009 -0800"
      },
      "message": "memcg: memory cgroup resource counters for hierarchy\n\nAdd support for building hierarchies in resource counters.  Cgroups allows\nus to build a deep hierarchy, but we currently don\u0027t link the resource\ncounters belonging to the memory controller control groups, in the same\nfashion as the corresponding cgroup entries in the cgroup hierarchy.  This\npatch provides the infrastructure for resource counters that have the same\nhiearchy as their cgroup counter parts.\n\nThese set of patches are based on the resource counter hiearchy patches\nposted by Pavel Emelianov.\n\nNOTE: Building hiearchies is expensive, deeper hierarchies imply charging\nthe all the way up to the root.  It is known that hiearchies are\nexpensive, so the user needs to be careful and aware of the trade-offs\nbefore creating very deep ones.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47295e6bc42ad35f9c15ac66f598aa24debd4e2",
      "tree": "cb765e996ef35ae88e29d60796655d0d35e8cf5e",
      "parents": [
        "e7b80bb695a5b64c92e314838e083b2f3bdf29b2"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:07:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: make cgroup_path() RCU-safe\n\nFix races between /proc/sched_debug by freeing cgroup objects via an RCU\ncallback.  Thus any cgroup reference obtained from an RCU-safe source will\nremain valid during the RCU section.  Since dentries are also RCU-safe,\nthis allows us to traverse up the tree safely.\n\nAdditionally, make cgroup_path() check for a NULL cgrp-\u003edentry to avoid\ntrying to report a path for a partially-created cgroup.\n\n[lizf@cn.fujitsu.com: call deactive_super() in cgroup_diput()]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7b80bb695a5b64c92e314838e083b2f3bdf29b2",
      "tree": "f5eafb9825a23550dbf903e5cabd71655e4e55ce",
      "parents": [
        "c12f65d4396e05c51ce3af7f159ead98574a587c"
      ],
      "author": {
        "name": "Gowrishankar M",
        "email": "gowrishankar.m@in.ibm.com",
        "time": "Wed Jan 07 18:07:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: skip processes from other namespaces when listing a cgroup\n\nOnce tasks are populated from system namespace inside cgroup, container\nreplaces other namespace task with 0 while listing tasks, inside\ncontainer.\n\nThough this is expected behaviour from container end, there is no use of\nshowing unwanted 0s.\n\nIn this patch, we check if a process is in same namespace before loading\ninto pid array.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Gowrishankar M \u003cgowrishankar.m@in.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c12f65d4396e05c51ce3af7f159ead98574a587c",
      "tree": "95e4f2e4878101ca2b9e3efc0a9cc5f25ce678d7",
      "parents": [
        "33a68ac1c1b695216e873ee12e819adbe73e4d9f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: introduce link_css_set() to remove duplicate code\n\nAdd a common function link_css_set() to link a css_set to a cgroup.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33a68ac1c1b695216e873ee12e819adbe73e4d9f",
      "tree": "0c58e50e7c528200390f740265f7eb7e7a3a87e6",
      "parents": [
        "e5f6a8609bab0c2d7543ab1505105e011832afd7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: add inactive subsystems to rootnode.subsys_list\n\nThough for an inactive hierarchy, we have subsys-\u003eroot \u003d\u003d \u0026rootnode, but\nrootnode\u0027s subsys_list is always empty.\n\nThis conflicts with the code in find_css_set():\n\n\tfor (i \u003d 0; i \u003c CGROUP_SUBSYS_COUNT; i++) {\n\t\t...\n\t\tif (ss-\u003eroot-\u003esubsys_list.next \u003d\u003d \u0026ss-\u003esibling) {\n\t\t\t...\n\t\t}\n\t}\n\tif (list_empty(\u0026rootnode.subsys_list)) {\n\t\t...\n\t}\n\nThe above code assumes rootnode.subsys_list links all inactive\nhierarchies.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5f6a8609bab0c2d7543ab1505105e011832afd7",
      "tree": "07591b1fb27431cee41ea4ca097b514a0e773ba7",
      "parents": [
        "7534432dcc3c654a8671b6b0cdffd1dbdbc73074"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: make root_list contains active hierarchies only\n\nDon\u0027t link rootnode to the root list, so root_list contains active\nhierarchies only as the comment indicates.  And rename for_each_root() to\nfor_each_active_root().\n\nAlso remove redundant check in cgroup_kill_sb().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7534432dcc3c654a8671b6b0cdffd1dbdbc73074",
      "tree": "65a5010c8bc5062d004fd1ede32e8f7ba64f6eec",
      "parents": [
        "77efecd9e0526327548152df715ab8644ecb5ba0"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:03 2009 -0800"
      },
      "message": "cgroups: remove rcu_read_lock() in cgroupstats_build()\n\ncgroup_iter_* do not need rcu_read_lock().\n\nIn cgroup_enable_task_cg_lists(), do_each_thread() and while_each_thread()\nare protected by RCU, it\u0027s OK, for write_lock(\u0026css_set_lock) implies\nrcu_read_lock() in non-RT kernel.\n\nIf we need explicit rcu_read_lock(), we should add rcu_read_lock() in\ncgroup_enable_task_cg_lists(), not cgroup_iter_*.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77efecd9e0526327548152df715ab8644ecb5ba0",
      "tree": "4dd2a82fe5db454fb018e434e07c3e6f30dc9832",
      "parents": [
        "104cbd55377029e70fc2cee01089e84b9c36e5dc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: call find_css_set() safely in cgroup_attach_task()\n\nIn cgroup_attach_task(), tsk maybe exit when we call find_css_set().  and\nfind_css_set() will access to invalid css_set.\n\nThis patch increases the count before get_css_set(), and decreases it\nafter find_css_set().\n\nNOTE:\n\ncss_set\u0027s refcount is also taskcount, after this patch applied, taskcount\nmay be off-by-one WHEN cgroup_lock() is not held.  but I reviewed other\ncode which use taskcount, they are still correct.  No regression found by\nreviewing and simply testing.\n\nSo I do not use two counters in css_set.  (one counter for taskcount, the\nother for refcount.  like struct mm_struct) If this fix cause regression,\nwe will use two counters in css_set.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "104cbd55377029e70fc2cee01089e84b9c36e5dc",
      "tree": "60c7d0d9625b74f6a2733a9618cc97dc772848f5",
      "parents": [
        "b2aa30f7bb381e04c93eed106089ba55553955f1"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: use task_lock() for access tsk-\u003ecgroups safe in cgroup_clone()\n\nUse task_lock() protect tsk-\u003ecgroups and get_css_set(tsk-\u003ecgroups).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2aa30f7bb381e04c93eed106089ba55553955f1",
      "tree": "eda632102a0bc6e325a24e77a9c2819eab5aeef3",
      "parents": [
        "2019f634ce5904c19eba4e86f51b1a119a53a9f1"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: don\u0027t put struct cgroupfs_root protected by RCU\n\nWe don\u0027t access struct cgroupfs_root in fast path, so we should not put\nstruct cgroupfs_root protected by RCU\n\nBut the comment in struct cgroup_subsys.root confuse us.\n\nstruct cgroup_subsys.root is used in these places:\n\n1 find_css_set(): if (ss-\u003eroot-\u003esubsys_list.next \u003d\u003d \u0026ss-\u003esibling)\n2 rebind_subsystems(): if (ss-\u003eroot !\u003d \u0026rootnode)\n                       rcu_assign_pointer(ss-\u003eroot, root);\n                       rcu_assign_pointer(subsys[i]-\u003eroot, \u0026rootnode);\n3 cgroup_has_css_refs(): if (ss-\u003eroot !\u003d cgrp-\u003eroot)\n4 cgroup_init_subsys(): ss-\u003eroot \u003d \u0026rootnode;\n5 proc_cgroupstats_show(): ss-\u003ename, ss-\u003eroot-\u003esubsys_bits,\n                           ss-\u003eroot-\u003enumber_of_cgroups, !ss-\u003edisabled);\n6 cgroup_clone(): root \u003d subsys-\u003eroot;\n                  if ((root !\u003d subsys-\u003eroot) ||\n\nAll these place we have held cgroup_lock() or we don\u0027t dereference to\nstruct cgroupfs_root.  It\u0027s means wo don\u0027t need RCU when use struct\ncgroup_subsys.root, and we should not put struct cgroupfs_root protected\nby RCU.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2019f634ce5904c19eba4e86f51b1a119a53a9f1",
      "tree": "040b8645c0627baa0f4e44113589b5a4894ea629",
      "parents": [
        "b12b533fa523e94e0cc9dc23274ae4f9439f1313"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: fix cgroup_iter_next() bug\n\nWe access res-\u003ecgroups without the task_lock(), so res-\u003ecgroups may be\nchanged.  it\u0027s unreliable, and \"if (l \u003d\u003d \u0026res-\u003ecgroups-\u003etasks)\" may be\nfalse forever.\n\nWe don\u0027t need add any lock for fixing this bug.  we just access to struct\ncss_set by struct cg_cgroup_link, not by struct task_struct.\n\nSince we hold css_set_lock, struct cg_cgroup_link is reliable.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b12b533fa523e94e0cc9dc23274ae4f9439f1313",
      "tree": "00a08a34388e835ae3103a6f00c96129d3fa59a4",
      "parents": [
        "c9d5409f8d46fd0d18b4a4481d9caa04076d87fc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "cgroups: add lock for child-\u003ecgroups in cgroup_post_fork()\n\nWhen cgroup_post_fork() is called, child is seen by find_task_by_vpid(),\nso child-\u003ecgroups maybe be changed, It\u0027ll incorrect.\n\nchild-\u003ecgroups\u003cold\u003e\u0027s refcnt is decreased\nchild-\u003ecgroups\u003cnew\u003e\u0027s refcnt is increased\nbut child-\u003ecg_list is added to child-\u003ecgroups\u003cold\u003e\u0027s list.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cae7a366f77ea5c9f54ae98c5fc65056877a89ed",
      "tree": "ccc298456ee5c1d1e83bcce5f66a53a9d6a1a521",
      "parents": [
        "75139b8274c3e30354daea623f14b43a482a0bb5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:02 2009 -0800"
      },
      "message": "ns_cgroup: remove unused spinlock\n\nI happened to find the spinlock in struct ns_cgroup is never used.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75139b8274c3e30354daea623f14b43a482a0bb5",
      "tree": "0da75602e260cd565d9f8c03d789744448966171",
      "parents": [
        "18e7f1f0d34be4a39f7f47324a3e26b43fddb714"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 07 18:07:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:01 2009 -0800"
      },
      "message": "cgroups: remove some redundant NULL checks\n\n- In cgroup_clone(), if vfs_mkdir() returns successfully,\n  dentry-\u003ed_fsdata will be the pointer to the newly created\n  cgroup and won\u0027t be NULL.\n\n- a cgroup file\u0027s dentry-\u003ed_fsdata won\u0027t be NULL, guaranteed\n  by cgroup_add_file().\n\n- When walking through the subsystems of a cgroup_fs (using\n  for_each_subsys), cgrp-\u003esubsys[ss-\u003esubsys_id] won\u0027t be NULL,\n  guaranteed by cgroup_create().\n\n(Also remove 2 unused variables in cgroup_rmdir().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2852b932f0bb5e89177aa27c7bcf07f4167e129",
      "tree": "96d975ae155ba307acd07968939fff22afedddf7",
      "parents": [
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91",
        "14f0ca8eaea42a5b5a69cfcb699665dd2618db5f"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Thu Jan 08 14:27:34 2009 +0100"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Thu Jan 08 14:27:34 2009 +0100"
      },
      "message": "Merge branch \u0027oprofile/ring_buffer\u0027 into oprofile/oprofile-for-tip\n"
    },
    {
      "commit": "b9456371a73871d001e67b5f4eac118c2c278e1c",
      "tree": "1bfe87d83dc3d7f34b9d7edf9a9ef3a693afcf29",
      "parents": [
        "9e42d0cf5020aaf217433cad1a224745241d212a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 11:18:31 2009 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jan 08 23:13:56 2009 +1100"
      },
      "message": "CRED: Fix commit_creds() on a process that has no mm\n\nFix commit_creds()\u0027s handling of a process that has no mm (such as one that is\ncalling or has called daemonize()).  commit_creds() should check to see if\ntask-\u003emm is not NULL before calling set_dumpable() on it.\n\nReported-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "dd8632a12e500a684478fea0951f380478d56fed",
      "tree": "1a12f441f9de14fd233faa92cf13a5fbb0319f41",
      "parents": [
        "8feae13110d60cc6287afabc2887366b0eb226c2"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make mmap allocation page trimming behaviour configurable.\n\nNOMMU mmap allocates a piece of memory for an mmap that\u0027s rounded up in size to\nthe nearest power-of-2 number of pages.  Currently it then discards the excess\npages back to the page allocator, making that memory available for use by other\nthings.  This can, however, cause greater amount of fragmentation.\n\nTo counter this, a sysctl is added in order to fine-tune the trimming\nbehaviour.  The default behaviour remains to trim pages aggressively, while\nthis can either be disabled completely or set to a higher page-granular\nwatermark in order to have finer-grained control.\n\nvm region vm_top bits taken from an earlier patch by David Howells.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\n"
    },
    {
      "commit": "8feae13110d60cc6287afabc2887366b0eb226c2",
      "tree": "b3188986faab70e753e00ea8670a11ba8ec844c0",
      "parents": [
        "41836382ebb415d68d3ebc4525e78e871fe58baf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make VMAs per MM as for MMU-mode linux\n\nMake VMAs per mm_struct as for MMU-mode linux.  This solves two problems:\n\n (1) In SYSV SHM where nattch for a segment does not reflect the number of\n     shmat\u0027s (and forks) done.\n\n (2) In mmap() where the VMA\u0027s vm_mm is set to point to the parent mm by an\n     exec\u0027ing process when VM_EXECUTABLE is specified, regardless of the fact\n     that a VMA might be shared and already have its vm_mm assigned to another\n     process or a dead process.\n\nA new struct (vm_region) is introduced to track a mapped region and to remember\nthe circumstances under which it may be shared and the vm_list_struct structure\nis discarded as it\u0027s no longer required.\n\nThis patch makes the following additional changes:\n\n (1) Regions are now allocated with alloc_pages() rather than kmalloc() and\n     with no recourse to __GFP_COMP, so the pages are not composite.  Instead,\n     each page has a reference on it held by the region.  Anything else that is\n     interested in such a page will have to get a reference on it to retain it.\n     When the pages are released due to unmapping, each page is passed to\n     put_page() and will be freed when the page usage count reaches zero.\n\n (2) Excess pages are trimmed after an allocation as the allocation must be\n     made as a power-of-2 quantity of pages.\n\n (3) VMAs are added to the parent MM\u0027s R/B tree and mmap lists.  As an MM may\n     end up with overlapping VMAs within the tree, the VMA struct address is\n     appended to the sort key.\n\n (4) Non-anonymous VMAs are now added to the backing inode\u0027s prio list.\n\n (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of\n     the backing region.  The VMA and region structs will be split if\n     necessary.\n\n (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory\n     segment instead of all the attachments at that addresss.  Multiple\n     shmat()\u0027s return the same address under NOMMU-mode instead of different\n     virtual addresses as under MMU-mode.\n\n (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.\n\n (8) /proc/maps is now the global list of mapped regions, and may list bits\n     that aren\u0027t actually mapped anywhere.\n\n (9) /proc/meminfo gains a line (tagged \"MmapCopy\") that indicates the amount\n     of RAM currently allocated by mmap to hold mappable regions that can\u0027t be\n     mapped directly.  These are copies of the backing device or file if not\n     anonymous.\n\nThese changes make NOMMU mode more similar to MMU mode.  The downside is that\nNOMMU mode requires some extra memory to track things over NOMMU without this\npatch (VMAs are no longer shared, and there are now region structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "8cfc7f9c005313ecd4e98ad1feb391d8dfce9ed2",
      "tree": "39a3a898f5a15f3c190e7b1a09815f13bbaef77c",
      "parents": [
        "b424e8d3b438e841cd1700f6433a100a5d611e4a",
        "da8d5089da6dfd54e5fd05d0c291a63c2bcf6885"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:43:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:43:58 2009 -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: fix possible recursive rq-\u003elock\n"
    },
    {
      "commit": "b424e8d3b438e841cd1700f6433a100a5d611e4a",
      "tree": "545638d0b925de4c7f740286760767cca86cb91e",
      "parents": [
        "7c7758f99d39d529a64d4f60d22129bbf2f16d74",
        "f6dc1e5e3d4b523e1616b43beddb04e4fb1d376a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:41:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:41:01 2009 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (98 commits)\n  PCI PM: Put PM callbacks in the order of execution\n  PCI PM: Run default PM callbacks for all devices using new framework\n  PCI PM: Register power state of devices during initialization\n  PCI PM: Call pci_fixup_device from legacy routines\n  PCI PM: Rearrange code in pci-driver.c\n  PCI PM: Avoid touching devices behind bridges in unknown state\n  PCI PM: Move pci_has_legacy_pm_support\n  PCI PM: Power-manage devices without drivers during suspend-resume\n  PCI PM: Add suspend counterpart of pci_reenable_device\n  PCI PM: Fix poweroff and restore callbacks\n  PCI: Use msleep instead of cpu_relax during ASPM link retraining\n  PCI: PCIe portdrv: Add kerneldoc comments to remining core funtions\n  PCI: PCIe portdrv: Rearrange code so that related things are together\n  PCI: PCIe portdrv: Fix suspend and resume of PCI Express port services\n  PCI: PCIe portdrv: Add kerneldoc comments to some core functions\n  x86/PCI: Do not use interrupt links for devices using MSI-X\n  net: sfc: Use pci_clear_master() to disable bus mastering\n  PCI: Add pci_clear_master() as opposite of pci_set_master()\n  PCI hotplug: remove redundant test in cpq hotplug\n  PCI: pciehp: cleanup register and field definitions\n  ...\n"
    },
    {
      "commit": "67acd8b4b7a3f1b183ae358e1dfdb8a80e170736",
      "tree": "4418034f6e83f954337a17bc6a872fa5ae3c4b5e",
      "parents": [
        "b13d3720ecd29d5044334fdbbae3432f26802bae",
        "ad160d23198193135cb2bcc75222e0816b5838c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:35:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:35:47 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async:\n  async: don\u0027t do the initcall stuff post boot\n  bootchart: improve output based on Dave Jones\u0027 feedback\n  async: make the final inode deletion an asynchronous event\n  fastboot: Make libata initialization even more async\n  fastboot: make the libata port scan asynchronous\n  fastboot: make scsi probes asynchronous\n  async: Asynchronous function calls to speed up kernel boot\n"
    },
    {
      "commit": "c9d557c19f94df42db78d4a5de4d25feee694bad",
      "tree": "a52f75630be16e6abf0cc11b70c089fa49905453",
      "parents": [
        "8903709b054a8dafe4e8c6d9a6444034d7aba36f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jan 07 14:33:30 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 07 23:36:25 2009 +0100"
      },
      "message": "rcu: fix bug in rcutorture system-shutdown code\n\nThis patch fixes an rcutorture bug found by Eric Sesterhenn that\nresulted in oopses in response to \"rmmod rcutorture\".  The problem\nwas in some new code that attempted to handle the case where a system\nis shut down while rcutorture is still running, for example, when\nrcutorture is built into the kernel so that it cannot be removed.\nThe fix causes the rcutorture threads to \"park\" in an\nschedule_timeout_uninterruptible(MAX_SCHEDULE_TIMEOUT) rather than\ntrying to get them to terminate cleanly.  Concurrent shutdown and\nrmmod is illegal.\n\nI believe that this is 2.6.29 material, as it is used in some testing\nsetups.\n\nFor reference, here are the rcutorture operating modes:\n\nCONFIG_RCU_TORTURE_TEST\u003dm\n\n\tThis is the normal rcutorture build.  Use \"modprobe rcutorture\"\n\t(with optional arguments) to start, and \"rmmod rcutorture\" to\n\tstop.  If you shut the system down without doing the rmmod, you\n\tshould see console output like:\n\n\trcutorture thread rcu_torture_writer parking due to system shutdown\n\n\tOne for each rcutorture kthread.\n\nCONFIG_RCU_TORTURE_TEST\u003dy\nCONFIG_RCU_TORTURE_TEST_RUNNABLE\u003dn\n\n\tUse this if you want rcutorture built in, but don\u0027t want the\n\ttest to start running during early boot.  To start the\n\ttorturing:\n\n\t\techo 1 \u003e /proc/sys/kernel/rcutorture_runnable\n\n\tTo stop the torturing, s/1/0/\n\n\tYou will get \"parking\" console messages as noted above when\n\tyou shut the system down.\n\nCONFIG_RCU_TORTURE_TEST\u003dy\nCONFIG_RCU_TORTURE_TEST_RUNNABLE\u003dy\n\n\tSame as above, except that the torturing starts during early\n\tboot.  Only for the stout of heart and strong of stomach.\n\tThe same /proc entry noted above may be used to control the\n\ttest.\n\nLocated-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nTested-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "465634adc1d09b490c8ee31885575be39d375d53",
      "tree": "b6c119d0112b428104dbd4edbd23925d717d7119",
      "parents": [
        "1acda878e20ea0cd3708ba66dca67d52eaafdd2b"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Wed Jan 07 15:32:11 2009 +0100"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Wed Jan 07 22:47:40 2009 +0100"
      },
      "message": "ring_buffer: fix ring_buffer_event_length()\n\nFunction ring_buffer_event_length() provides an interface to detect\nthe length of data stored in an entry. However, the length contains\noffsets depending on the internal usage. This makes it unusable. This\npatch fixes this and now ring_buffer_event_length() returns the\nalligned length that has been used in ring_buffer_lock_reserve().\n\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\n"
    },
    {
      "commit": "a0e280e0f33f6c859a235fb69a875ed8f3420388",
      "tree": "c41b0ad22c4195bef2bfdd36437e20d232b9586b",
      "parents": [
        "30aafdba6f78619274a977d67283a681bedbcbbd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 07 16:19:46 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 11:36:14 2009 -0800"
      },
      "message": "stop_machine/cpu hotplug: fix disable_nonboot_cpus\n\ndisable_nonboot_cpus calls _cpu_down. But _cpu_down requires that the\ncaller already created the stop_machine workqueue (like cpu_down does).\nOtherwise a call to stop_machine will lead to accesses to random memory\nregions.\n\nWhen introducing this new interface (9ea09af3bd3090e8349ca2899ca2011bd94cda85\n\"stop_machine: introduce stop_machine_create/destroy\") I missed the second\ncall site of _cpu_down.\nSo add the missing stop_machine_create/destroy calls to disable_nonboot_cpus\nas well.\n\nFixes suspend-to-ram/disk and also this bug:\n\n[  286.547348] BUG: unable to handle kernel paging request at 6b6b6b6b\n[  286.548940] IP: [\u003cc0150ca4\u003e] __stop_machine+0x88/0xe3\n[  286.550598] Oops: 0002 [#1] SMP\n[  286.560580] Pid: 3273, comm: halt Not tainted (2.6.28-06127-g238c6d5\n[  286.560580] EIP: is at __stop_machine+0x88/0xe3\n[  286.560580] Process halt (pid: 3273, ti\u003df1a28000 task\u003df4530f30\n[  286.560580] Call Trace:\n[  286.560580]  [\u003cc03d04e4\u003e] ? _cpu_down+0x10f/0x234\n[  286.560580]  [\u003cc012a57e\u003e] ? disable_nonboot_cpus+0x58/0xdc\n[  286.560580]  [\u003cc01360c0\u003e] ? kernel_poweroff+0x22/0x39\n[  286.560580]  [\u003cc0136301\u003e] ? sys_reboot+0xde/0x14c\n[  286.560580]  [\u003cc01331b2\u003e] ? complete_signal+0x179/0x191\n[  286.560580]  [\u003cc0133396\u003e] ? send_signal+0x1cc/0x1e1\n[  286.560580]  [\u003cc03de418\u003e] ? _spin_unlock_irqrestore+0x2d/0x3c\n[  286.560580]  [\u003cc0133b65\u003e] ? group_send_signal_info+0x58/0x61\n[  286.560580]  [\u003cc0133b9e\u003e] ? kill_pid_info+0x30/0x3a\n[  286.560580]  [\u003cc0133d49\u003e] ? sys_kill+0x75/0x13a\n[  286.560580]  [\u003cc01a06cb\u003e] ? mntput_no_expire+ox1f/0x101\n[  286.560580]  [\u003cc019b3b3\u003e] ? dput+0x1e/0x105\n[  286.560580]  [\u003cc018ef87\u003e] ?  __fput+0x150/0x158\n[  286.560580]  [\u003cc0157abf\u003e] ? audit_syscall_entry+0x137/0x159\n[  286.560580]  [\u003cc010329f\u003e] ? sysenter_do_call+0x12/0x34\n\nReported-and-tested-by: \"Justin P. Mattock\" \u003cjustinmattock@gmail.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57c44c5f6fb0a8002feb258c1af58e1a744b1fcb",
      "tree": "978bd46ca765a88e9c101cb705bbb0bf46015643",
      "parents": [
        "76052749143d03006271cc0ce8205ad756917062",
        "5a9e67b1a19e08a82387709f325d26e07b891d27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 11:31:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 11:31:52 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)\n  trivial: chack -\u003e check typo fix in main Makefile\n  trivial: Add a space (and a comma) to a printk in 8250 driver\n  trivial: Fix misspelling of \"firmware\" in docs for ncr53c8xx/sym53c8xx\n  trivial: Fix misspelling of \"firmware\" in powerpc Makefile\n  trivial: Fix misspelling of \"firmware\" in usb.c\n  trivial: Fix misspelling of \"firmware\" in qla1280.c\n  trivial: Fix misspelling of \"firmware\" in a100u2w.c\n  trivial: Fix misspelling of \"firmware\" in megaraid.c\n  trivial: Fix misspelling of \"firmware\" in ql4_mbx.c\n  trivial: Fix misspelling of \"firmware\" in acpi_memhotplug.c\n  trivial: Fix misspelling of \"firmware\" in ipw2100.c\n  trivial: Fix misspelling of \"firmware\" in atmel.c\n  trivial: Fix misspelled firmware in Kconfig\n  trivial: fix an -\u003e a typos in documentation and comments\n  trivial: fix then -\u003e than typos in comments and documentation\n  trivial: update Jesper Juhl CREDITS entry with new email\n  trivial: fix singal -\u003e signal typo\n  trivial: Fix incorrect use of \"loose\" in event.c\n  trivial: printk: fix indentation of new_text_line declaration\n  trivial: rtc-stk17ta8: fix sparse warning\n  ...\n"
    },
    {
      "commit": "e8de1481fd7126ee9e93d6889da6f00c05e1e019",
      "tree": "3e0e564f6aff2f8f0f66bdf37dc2eb87d6e17cde",
      "parents": [
        "23616941914917cf25b94789856b5326b68d8ee8"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Oct 22 19:55:31 2008 -0700"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Wed Jan 07 11:12:32 2009 -0800"
      },
      "message": "resource: allow MMIO exclusivity for device drivers\n\nDevice drivers that use pci_request_regions() (and similar APIs) have a\nreasonable expectation that they are the only ones accessing their device.\nAs part of the e1000e hunt, we were afraid that some userland (X or some\nbootsplash stuff) was mapping the MMIO region that the driver thought it\nhad exclusively via /dev/mem or via various sysfs resource mappings.\n\nThis patch adds the option for device drivers to cause their reserved\nregions to the \"banned from /dev/mem use\" list, so now both kernel memory\nand device-exclusive MMIO regions are banned.\nNOTE: This is only active when CONFIG_STRICT_DEVMEM is set.\n\nIn addition to the config option, a kernel parameter iomem\u003drelaxed is\nprovided for the cases where developers want to diagnose, in the field,\ndrivers issues from userspace.\n\nReviewed-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "ad160d23198193135cb2bcc75222e0816b5838c0",
      "tree": "ba7cc0e98494d63a02b10ab22f896e07efa6f509",
      "parents": [
        "24b0ecad07ac4d7ef74cb6f7da08c449fa9f6a4f"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 09:28:53 2009 -0800"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 09:31:49 2009 -0800"
      },
      "message": "async: don\u0027t do the initcall stuff post boot\n\nwhile tracking the asynchronous calls during boot using the initcall_debug\nconvention is useful, doing it once the kernel is done is actually\nbad now that we use asynchronous operations post boot as well...\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "22a9d645677feefd402befd02edd59b122289ef1",
      "tree": "9f1215cc8f7f0e1c36b03882b2926cc26ccfa5ff",
      "parents": [
        "ede6f5aea054d3fb67c78857f7abdee602302043"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 08:45:46 2009 -0800"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 08:45:46 2009 -0800"
      },
      "message": "async: Asynchronous function calls to speed up kernel boot\n\nRight now, most of the kernel boot is strictly synchronous, such that\nvarious hardware delays are done sequentially.\n\nIn order to make the kernel boot faster, this patch introduces\ninfrastructure to allow doing some of the initialization steps\nasynchronously, which will hide significant portions of the hardware delays\nin practice.\n\nIn order to not change device order and other similar observables, this\npatch does NOT do full parallel initialization.\n\nRather, it operates more in the way an out of order CPU does; the work may\nbe done out of order and asynchronous, but the observable effects\n(instruction retiring for the CPU) are still done in the original sequence.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "da8d5089da6dfd54e5fd05d0c291a63c2bcf6885",
      "tree": "ad9f7deceed846e56e0185976af5c620722ff9ba",
      "parents": [
        "ede6f5aea054d3fb67c78857f7abdee602302043"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jan 07 15:28:57 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 07 16:10:54 2009 +0100"
      },
      "message": "sched: fix possible recursive rq-\u003elock\n\nVaidyanathan Srinivasan reported:\n\n \u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n \u003e [ INFO: possible recursive locking detected ]\n \u003e 2.6.28-autotest-tip-sv #1\n \u003e ---------------------------------------------\n \u003e klogd/5062 is trying to acquire lock:\n \u003e  (\u0026rq-\u003elock){++..}, at: [\u003cffffffff8022aca2\u003e] task_rq_lock+0x45/0x7e\n \u003e\n \u003e but task is already holding lock:\n \u003e  (\u0026rq-\u003elock){++..}, at: [\u003cffffffff805f7354\u003e] schedule+0x158/0xa31\n\nWith sched_mc at 2. (it is default-off)\n\nStrictly speaking we\u0027ll not deadlock, because ttwu will not be able to\nplace the migration task on our rq, but since the code can deal with\nboth rqs getting unlocked, this seems the easiest way out.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c861ea2cb2c25c1698734d9b0540a09e253690a1",
      "tree": "b83e5313ca07a3efbcbcdd7fe33e0f6ad6284493",
      "parents": [
        "3610639d1fceb09cb418c65fcbe9136c31eee03a",
        "ac8cc0fa5395fe2278e305a4cbed48e90d88d878"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:11:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:11:39 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  CRED: Fix regression in cap_capable() as shown up by sys_faccessat() [ver #3]\n  Revert \"CRED: Fix regression in cap_capable() as shown up by sys_faccessat() [ver #2]\"\n  SELinux: shrink sizeof av_inhert selinux_class_perm and context\n  CRED: Fix regression in cap_capable() as shown up by sys_faccessat() [ver #2]\n  keys: fix sparse warning by adding __user annotation to cast\n  smack: Add support for unlabeled network hosts and networks\n  selinux: Deprecate and schedule the removal of the the compat_net functionality\n  netlabel: Update kernel configuration API\n"
    },
    {
      "commit": "3610639d1fceb09cb418c65fcbe9136c31eee03a",
      "tree": "78aa6de9e9495c39f8671aed927fece5adff8d24",
      "parents": [
        "cfa97f993c275d193fe82c22511dfb5f1e51b661",
        "82c5b7b527ccc4b5d3cf832437e842f9d2920a79"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:53 2009 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimer: splitout peek ahead functionality, fix\n  hrtimer: fixup comments\n  hrtimer: fix recursion deadlock by re-introducing the softirq\n  hrtimer: simplify hotplug migration\n  hrtimer: fix HOTPLUG_CPU\u003dn compile warning\n  hrtimer: splitout peek ahead functionality\n"
    },
    {
      "commit": "cfa97f993c275d193fe82c22511dfb5f1e51b661",
      "tree": "552cea5db0ef07bbcc5d53850607dcda6f9b664c",
      "parents": [
        "7238eb4ca35cd63340dc02caf757376e40c1210c",
        "db2f59c8c9b315f2b88b1dac159b988c6009034d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:33 2009 -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: fix section mismatch\n  sched: fix double kfree in failure path\n  sched: clean up arch_reinit_sched_domains()\n  sched: mark sched_create_sysfs_power_savings_entries() as __init\n  getrusage: RUSAGE_THREAD should return ru_utime and ru_stime\n  sched: fix sched_slice()\n  sched_clock: prevent scd-\u003eclock from moving backwards, take #2\n  sched: sched.c declare variables before they get used\n"
    },
    {
      "commit": "f94181da7192f4ed8ccb1b633ea4ce56954df130",
      "tree": "2e28785f2df447573a11fbdd611dc19eb3fcb794",
      "parents": [
        "932adbed6d99cc373fc3433d701b3a594fea872c",
        "fdbc0450df12cc9cb397f3497db4b0cad7c1a8ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:10:04 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: fix rcutorture bug\n  rcu: eliminate synchronize_rcu_xxx macro\n  rcu: make treercu safe for suspend and resume\n  rcu: fix rcutree grace-period-latency bug on small systems\n  futex: catch certain assymetric (get|put)_futex_key calls\n  futex: make futex_(get|put)_key() calls symmetric\n  locking, percpu counters: introduce separate lock classes\n  swiotlb: clean up EXPORT_SYMBOL usage\n  swiotlb: remove unnecessary declaration\n  swiotlb: replace architecture-specific swiotlb.h with linux/swiotlb.h\n  swiotlb: add support for systems with highmem\n  swiotlb: store phys address in io_tlb_orig_addr array\n  swiotlb: add hwdev to swiotlb_phys_to_bus() / swiotlb_sg_to_bus()\n"
    },
    {
      "commit": "40d7ee5d162203b40b5f4fbb312ab016edddb97f",
      "tree": "432db33df85f7f244676127a189a828dfbf2877b",
      "parents": [
        "5fec8bdbf9a1c4df4ad3f20e52aa2d8caed490c8",
        "b8ac9fc0e8cda9f9776019c5b0464b0c6d2d4c90"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:02:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:02:07 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (60 commits)\n  uio: make uio_info\u0027s name and version const\n  UIO: Documentation for UIO ioport info handling\n  UIO: Pass information about ioports to userspace (V2)\n  UIO: uio_pdrv_genirq: allow custom irq_flags\n  UIO: use pci_ioremap_bar() in drivers/uio\n  arm: struct device - replace bus_id with dev_name(), dev_set_name()\n  libata: struct device - replace bus_id with dev_name(), dev_set_name()\n  avr: struct device - replace bus_id with dev_name(), dev_set_name()\n  block: struct device - replace bus_id with dev_name(), dev_set_name()\n  chris: struct device - replace bus_id with dev_name(), dev_set_name()\n  dmi: struct device - replace bus_id with dev_name(), dev_set_name()\n  gadget: struct device - replace bus_id with dev_name(), dev_set_name()\n  gpio: struct device - replace bus_id with dev_name(), dev_set_name()\n  gpu: struct device - replace bus_id with dev_name(), dev_set_name()\n  hwmon: struct device - replace bus_id with dev_name(), dev_set_name()\n  i2o: struct device - replace bus_id with dev_name(), dev_set_name()\n  IA64: struct device - replace bus_id with dev_name(), dev_set_name()\n  i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name()\n  infiniband: struct device - replace bus_id with dev_name(), dev_set_name()\n  ISDN: struct device - replace bus_id with dev_name(), dev_set_name()\n  ...\n"
    },
    {
      "commit": "58c6d3dfe436eb8cfb451981d8fdc9044eaf42da",
      "tree": "c4f7fd8f6a24c5d242dd7bd0a876413f15e26fcd",
      "parents": [
        "eccd83e116e7f414a1da3aae3745384b7b171883"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 06 14:43:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:31 2009 -0800"
      },
      "message": "dma-coherent: catch oversized requests to dma_alloc_from_coherent()\n\nPrevent passing an order to bitmap_find_free_region() that is larger than\nthe actual bitmap can represent.\n\nThese requests can come from device drivers that have no idea how big the\ndma region is and need to rely on dma_alloc_from_coherent() to sort it out\nfor them.\n\nReported-by: Guennadi Liakhovetski \u003clg@denx.de\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eccd83e116e7f414a1da3aae3745384b7b171883",
      "tree": "3cc2e2778ecafa34be3380bc85ec9d72b94b5292",
      "parents": [
        "0bef3c2dc7d0c8238330785c8f4504761b0e370b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jan 06 14:43:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:31 2009 -0800"
      },
      "message": "dma_alloc_coherent: clean it up\n\nThis thing was rather stupidly coded.  Rework it all prior to making\nchanges.\n\nAlso, rename local variable `page\u0027: kernel readers expect something called\n`page\u0027 to have type `struct page *\u0027.\n\nCc: Guennadi Liakhovetski \u003clg@denx.de\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bef3c2dc7d0c8238330785c8f4504761b0e370b",
      "tree": "f43e7c7e49f5e67823e7e077c821e8f8d2571e48",
      "parents": [
        "8375d4909aee4c18798f373ecf24a79f040f75fc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jan 06 14:43:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:30 2009 -0800"
      },
      "message": "dma_alloc_from_coherent(): fix fallback to generic memory\n\nIf bitmap_find_free_region() fails and DMA_MEMORY_EXCLUSIVE is not set,\nthe function will fail to write anything to *ret and will return 1.             This will cause dma_alloc_coherent() to return an uninitialised value,\ncrashing the kernel, perhaps via DMA to a random address.\n\nFix that by changing it to return zero in this case, so the caller will\nproceed to allocate the memory from the generic memory allocator.\n\nCc: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nCc: Dmitry Baryshkov \u003cdbaryshkov@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4cb0e11b15d2badad455fcd538af0cccf05dc012",
      "tree": "49975df37debdb274aa1b9b09a127ad217a405c0",
      "parents": [
        "9cd4fd10437dda6b520cb1410b28f36967a34de8"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Tue Jan 06 14:42:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:29 2009 -0800"
      },
      "message": "coredump_filter: permit changing of the default filter\n\nIntroduce a new kernel parameter `coredump_filter\u0027.  Setting a value to\nthis parameter causes the default bitmask of coredump_filter to be\nchanged.\n\nIt is useful for users to change coredump_filter settings for the whole\nsystem at boot time.  Without this parameter, users have to change\ncoredump_filter settings for each /proc/\u003cpid\u003e/ in an initializing script.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cd4fd10437dda6b520cb1410b28f36967a34de8",
      "tree": "1a1d5eaa0d650c1efe0e63dbadb9674cac209d9d",
      "parents": [
        "09bca05c90c639f57aae057e0c28f287e61f5a07"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Tue Jan 06 14:42:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:29 2009 -0800"
      },
      "message": "SEND_SIG_NOINFO: set si_pid to tgid instead of pid\n\nPOSIX requires the si_pid to be the process id of the sender, so -\u003esi_pid\nshould really be set to \u0027tgid\u0027.  This change does have following changes\nin behavior:\n\n\t- When sending pdeath_signal on re-parent to a sub-thread, -\u003esi_pid\n\t  cannot be used to identify the thread that did the re-parent since\n\t  it will now show the tgid instead of thread id.\n\n\t- A multi-threaded application that expects to find the specific\n\t  thread that encountered a SIGPIPE using the -\u003esi_pid will now\n\t  break.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-By: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09bca05c90c639f57aae057e0c28f287e61f5a07",
      "tree": "5a5d88930380da8994525da361c9c8114ebf82fc",
      "parents": [
        "ecb08d81313a3c015225236775de259d99ab47fe"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Tue Jan 06 14:42:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:28 2009 -0800"
      },
      "message": "SEND_SIG_NOINFO: masquerade si_pid when crossing pid-ns boundary\n\nFor SEND_SIG_NOINFO, si_pid is currently set to the pid of sender\nin sender\u0027s active pid namespace. But if the receiver is in a\nEg: when parent sends the \u0027pdeath_signal\u0027 to a child that is in\na descendant pid namespace, we should set si_pid 0.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-By: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd4207c9016749f0a212faf7f7f49e5317d96d9b",
      "tree": "e2e5a6efdbadf8a73c292e5b0895a6b4e4bd837e",
      "parents": [
        "d6b54841f4ddd836c886d1e6ac381cf309ee98a3"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 06 14:42:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:27 2009 -0800"
      },
      "message": "kmod: fix varargs kernel-doc\n\nFix varargs kernel-doc format in kmod.c:\nUse @... instead of @varargs.\n\nWarning(kernel/kmod.c:67): Excess function parameter or struct member \u0027varargs\u0027 description in \u0027request_module\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f24659d96f4e056125f14498285203d1427cb18e",
      "tree": "8dc1e4e0f47b10d426449e395e81a565ad6d0118",
      "parents": [
        "0deddf436a37c18ceb26c6e3b632fb9b5f58a0c1"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:21 2009 -0800"
      },
      "message": "kprobes: support probing module __init function\n\nAllow kprobes to probe module __init routines.  When __init functions are\nfreed, kprobes which probe those functions are set to \"Gone\" flag.  These\n\"Gone\" probes are disarmed from the code and never be enabled.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0deddf436a37c18ceb26c6e3b632fb9b5f58a0c1",
      "tree": "ff6e3066d76d57b22fd82eed8f8e9d2ce07cf4f0",
      "parents": [
        "49ad2fd76c97133fb396edc24ded7fe26093a578"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:21 2009 -0800"
      },
      "message": "module: add MODULE_STATE_LIVE notify\n\nAdd a module notifier call which notifies that the state of a module\nchanges from MODULE_STATE_COMING to MODULE_STATE_LIVE.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49ad2fd76c97133fb396edc24ded7fe26093a578",
      "tree": "59cf1df91ff982f16a17d56a4a76f159920c3904",
      "parents": [
        "e8386a0cb22f4a2d439384212c494ad0bda848fe"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:21 2009 -0800"
      },
      "message": "kprobes: remove called_from argument\n\nRemove called_from argument from kprobes which had been used for\npreventing self-refering of kernel module.  However, since we don\u0027t keep\nmodule\u0027s refcount after registering kprobe any more, there is no reason to\ncheck that.\n\nThis patch also simplifies registering/unregistering functions because we\ndon\u0027t need to use __builtin_return_address(0) which was passed to\ncalled_from.\n\n[ananth@in.ibm.com: build fix]\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8386a0cb22f4a2d439384212c494ad0bda848fe",
      "tree": "84c462bccddead49c0e2c0dcfcc0f70cd9cf60f7",
      "parents": [
        "017c39bdb1b3ac1da6db339474a77b528043c05a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:21 2009 -0800"
      },
      "message": "kprobes: support probing module __exit function\n\nAllows kprobes to probe __exit routine.  This adds flags member to struct\nkprobe.  When module is freed(kprobes hooks module_notifier to get this\nevent), kprobes which probe the functions in that module are set to \"Gone\"\nflag to the flags member.  These \"Gone\" probes are never be enabled.\nUsers can check the GONE flag through debugfs.\n\nThis also removes mod_refcounted, because we couldn\u0027t free a module if\nkprobe incremented the refcount of that module.\n\n[akpm@linux-foundation.org: document some locking]\n[mhiramat@redhat.com: bugfix: pass aggr_kprobe to arch_remove_kprobe]\n[mhiramat@redhat.com: bugfix: release old_p\u0027s insn_slot before error return]\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "017c39bdb1b3ac1da6db339474a77b528043c05a",
      "tree": "1c5271ba125e67e5bf81e4e7a6507ae08253fce1",
      "parents": [
        "129415607845d4daea11ddcba706005c69dcb942"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "kprobes: add __kprobes to kprobe internal functions\n\nAdd __kprobes to kprobes internal functions for protecting from probing by\nkprobes itself.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "129415607845d4daea11ddcba706005c69dcb942",
      "tree": "9046ea79a0b81c8823b9d42f00fd7c158861ed5c",
      "parents": [
        "a06f6211ef9b1785922f9d0e8766d63ac4e66de1"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "kprobes: add kprobe_insn_mutex and cleanup arch_remove_kprobe()\n\nAdd kprobe_insn_mutex for protecting kprobe_insn_pages hlist, and remove\nkprobe_mutex from architecture dependent code.\n\nThis allows us to call arch_remove_kprobe() (and free_insn_slot) while\nholding kprobe_mutex.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a06f6211ef9b1785922f9d0e8766d63ac4e66de1",
      "tree": "4ceac7a7eda00cad3b3f02876e75c1c7af41ce23",
      "parents": [
        "12da3b888b2035bb0f106122f1cc1b6d357fad53"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "module: add within_module_core() and within_module_init()\n\nThis series of patches allows kprobes to probe module\u0027s __init and __exit\nfunctions.  This means, you can probe driver initialization and\nterminating.\n\nCurrently, kprobes can\u0027t probe __init function because these functions are\nfreed after module initialization.  And it also can\u0027t probe module __exit\nfunctions because kprobe increments reference count of target module and\nuser can\u0027t unload it.  this means __exit functions never be called unless\nremoving probes from the module.\n\nTo solve both cases, this series of patches introduces GONE flag and sets\nit when the target code is freed(for this purpose, kprobes hooks\nMODULE_STATE_* events).  This also removes refcount incrementing for\nallowing user to unload target module.  Users can check which probes are\nGONE by debugfs interface.  For taking timing of freeing module\u0027s .init\ntext, these also include a patch which adds module\u0027s notifier of\nMODULE_STATE_LIVE event.\n\nThis patch:\n\nAdd within_module_core() and within_module_init() for checking whether an\naddress is in the module .init.text section or .text section, and replace\nwithin() local inline functions in kernel/module.c with them.\n\nkprobes uses these functions to check where the kprobe is inserted.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12da3b888b2035bb0f106122f1cc1b6d357fad53",
      "tree": "2cc785f3b06eaed3d007c1a075540197b93b6cab",
      "parents": [
        "8e1144050e49dd4ef19c117dc5626f212cfe73cf"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "kprobes: add tests for register_kprobes\n\nAdd testcases for *probe batch registration (register_kprobes) to kprobes\nsanity tests.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e1144050e49dd4ef19c117dc5626f212cfe73cf",
      "tree": "b7feb97dc6f341999fbcaf8b4964e7e660cf0317",
      "parents": [
        "bc2f70151fe7a117dbe8347edc5a877e749572a3"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "kprobes: indirectly call kprobe_target\n\nCall kprobe_target indirectly.  This prevents gcc to unroll a noinline\nfunction in caller function.\n\nI ported patches which had been discussed on\nhttp://sources.redhat.com/bugzilla/show_bug.cgi?id\u003d3542\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc2f70151fe7a117dbe8347edc5a877e749572a3",
      "tree": "930634f100acb38baa597f840b5b12bec750c66e",
      "parents": [
        "51e911e27690aecea01d4fe9cb22d38bdd0748ac"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "kprobes: bugfix: try_module_get even if calling_mod is NULL\n\nWhen someone called register_*probe() from kernel-core code(not from\nmodule) and that probes a kernel module, users can remove the probed\nmodule because kprobe doesn\u0027t increment reference counter of the module.\n(on the other hand, if the kernel-module calls register_*probe, kprobe\nincrements refcount of the probed module.)\n\nCurrently, we have no register_*probe() calling from kernel-core(except\nsmoke-test, but the smoke-test doesn\u0027t probe module), so there is no real\nbugs.  But the logic is wrong(or not fair) and it can causes a problem\nwhen someone might want to probe module from kernel.\n\nAfter this patch is applied, even if someone put register_*probe() call in\nthe kernel-core code, it increments the reference counter of the probed\nmodule, and it prevents user to remove the module until stopping probing\nit.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26e5438e4b77f04a51870f9415ffed68004fac1d",
      "tree": "a41fae9e95464c33835e55d6c5ff3ff5e3969193",
      "parents": [
        "d2e3192b6e372a441c18bc8cb32f89ef38f105b7"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:41:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "profile: don\u0027t include \u003casm/ptrace.h\u003e twice.\n\nCurrently, kernel/profile.c include \u003casm/ptrace.h\u003e twice.  It can be\nremoved.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3d5a27d5862b6425d0879272e24abecf7245105",
      "tree": "c8a873e926d4768ae2ecac50c46c5121c8472876",
      "parents": [
        "af9379c7121d5543722c00bbd1adf7dcaa0b6448"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jan 06 14:41:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:13 2009 -0800"
      },
      "message": "Allow times and time system calls to return small negative values\n\nAt the moment, the times() system call will appear to fail for a period\nshortly after boot, while the value it want to return is between -4095 and\n-1.  The same thing will also happen for the time() system call on 32-bit\nplatforms some time in 2106 or so.\n\nOn some platforms, such as x86, this is unavoidable because of the system\ncall ABI, but other platforms such as powerpc have a separate error\nindication from the return value, so system calls can in fact return small\nnegative values without indicating an error.  On those platforms,\nforce_successful_syscall_return() provides a way to indicate that the\nsystem call return value should not be treated as an error even if it is\nin the range which would normally be taken as a negative error number.\n\nThis adds a force_successful_syscall_return() call to the time() and\ntimes() system calls plus their 32-bit compat versions, so that they don\u0027t\nerroneously indicate an error on those platforms whose system call ABI has\na separate error indication.  This will not affect anything on other\nplatforms.\n\nJoakim Tjernlund added the fix for time() and the compat versions of\ntime() and times(), after I did the fix for times().\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6624f996ae539344e8d748cce1117ae7af06fbf",
      "tree": "0ad5d6f26fdac9a7d75c0bbce12e74ae2d1edeba",
      "parents": [
        "e899aa823ad74860a17b541b0ad38f513728923d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Tue Jan 06 14:40:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:12 2009 -0800"
      },
      "message": "oops: increment the oops UUID every time we oops\n\n... because we do want repeated same-oops to be seen by automated\ntools like kerneloops.org\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60348802e9cb137ee86590c3e4c57c1ec2e8fc69",
      "tree": "0c8fb3de7410898643f992081650a307f17dea28",
      "parents": [
        "f1883f86dea84fe47a71a39fc1afccc005915ed8"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Tue Jan 06 14:40:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "fork.c: cleanup for copy_sighand()\n\nCheck CLONE_SIGHAND only is enough, because combination of CLONE_THREAD and\nCLONE_SIGHAND is already done in copy_process().\n\nImpact: cleanup, no functionality changed\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1883f86dea84fe47a71a39fc1afccc005915ed8",
      "tree": "357c50d2eb44e9e62c39c0c1025bae7b2b6eba67",
      "parents": [
        "eaccbfa564e48c87626594511f42dc8c0ad2daae"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jan 06 14:40:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "Remove remaining unwinder code\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Gabor Gombas \u003cgombasg@sztaki.hu\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e,\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "901608d9045146aec6f14a7777ea4b1501c379f0",
      "tree": "0155189f48479b920855dedccba6829363376d4d",
      "parents": [
        "67d58ac47d25f7e2a105248a4aea6113131ab874"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 06 14:40:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "mm: introduce get_mm_hiwater_xxx(), fix taskstats-\u003ehiwater_xxx accounting\n\nxacct_add_tsk() relies on do_exit()-\u003eupdate_hiwater_xxx() and uses\nmm-\u003ehiwater_xxx directly, this leads to 2 problems:\n\n- taskstats_user_cmd() can call fill_pid()-\u003exacct_add_tsk() at any\n  moment before the task exits, so we should check the current values of\n  rss/vm anyway.\n\n- do_exit()-\u003eupdate_hiwater_xxx() calls are racy.  An exiting thread can\n  be preempted right before mm-\u003ehiwater_xxx \u003d new_val, and another thread\n  can use A_LOT of memory and exit in between.  When the first thread\n  resumes it can be the last thread in the thread group, in that case we\n  report the wrong hiwater_xxx values which do not take A_LOT into\n  account.\n\nIntroduce get_mm_hiwater_rss() and get_mm_hiwater_vm() helpers and change\nxacct_add_tsk() to use them.  The first helper will also be used by\nrusage-\u003eru_maxrss accounting.\n\nKill do_exit()-\u003eupdate_hiwater_xxx() calls.  Unless we are going to\ndecrease rss/vm there is no point to update mm-\u003ehiwater_xxx, and nobody\ncan look at this mm_struct when exit_mmap() actually unmaps the memory.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2da02997e08d3efe8174c7a47696e6f7cbe69ba9",
      "tree": "2e52d9346c52dda83dc8cc9626cbe302e026ad9a",
      "parents": [
        "364aeb2849789b51bf4b9af2ddd02fee7285c54e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: add dirty_background_bytes and dirty_bytes sysctls\n\nThis change introduces two new sysctls to /proc/sys/vm:\ndirty_background_bytes and dirty_bytes.\n\ndirty_background_bytes is the counterpart to dirty_background_ratio and\ndirty_bytes is the counterpart to dirty_ratio.\n\nWith growing memory capacities of individual machines, it\u0027s no longer\nsufficient to specify dirty thresholds as a percentage of the amount of\ndirtyable memory over the entire system.\n\ndirty_background_bytes and dirty_bytes specify quantities of memory, in\nbytes, that represent the dirty limits for the entire system.  If either\nof these values is set, its value represents the amount of dirty memory\nthat is needed to commence either background or direct writeback.\n\nWhen a `bytes\u0027 or `ratio\u0027 file is written, its counterpart becomes a\nfunction of the written value.  For example, if dirty_bytes is written to\nbe 8096, 8K of memory is required to commence direct writeback.\ndirty_ratio is then functionally equivalent to 8K / the amount of\ndirtyable memory:\n\n\tdirtyable_memory \u003d free pages + mapped pages + file cache\n\n\tdirty_background_bytes \u003d dirty_background_ratio * dirtyable_memory\n\t\t-or-\n\tdirty_background_ratio \u003d dirty_background_bytes / dirtyable_memory\n\n\t\tAND\n\n\tdirty_bytes \u003d dirty_ratio * dirtyable_memory\n\t\t-or-\n\tdirty_ratio \u003d dirty_bytes / dirtyable_memory\n\nOnly one of dirty_background_bytes and dirty_background_ratio may be\nspecified at a time, and only one of dirty_bytes and dirty_ratio may be\nspecified.  When one sysctl is written, the other appears as 0 when read.\n\nThe `bytes\u0027 files operate on a page size granularity since dirty limits\nare compared with ZVC values, which are in page units.\n\nPrior to this change, the minimum dirty_ratio was 5 as implemented by\nget_dirty_limits() although /proc/sys/vm/dirty_ratio would show any user\nwritten value between 0 and 100.  This restriction is maintained, but\ndirty_bytes has a lower limit of only one page.\n\nAlso prior to this change, the dirty_background_ratio could not equal or\nexceed dirty_ratio.  This restriction is maintained in addition to\nrestricting dirty_background_bytes.  If either background threshold equals\nor exceeds that of the dirty threshold, it is implicitly set to half the\ndirty threshold.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8",
      "tree": "3e5c9c3293c025f537ff4416660a96d33c694b5f",
      "parents": [
        "39f0dee2d8abe902617622b71f8f6f73985ec71c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove cgroup_mm_owner_callbacks\n\ncgroup_mm_owner_callbacks() was brought in to support the memrlimit\ncontroller, but sneaked into mainline ahead of it.  That controller has\nnow been shelved, and the mm_owner_changed() args were inadequate for it\nanyway (they needed an mm pointer instead of a task pointer).\n\nRemove the dead code, and restore mm_update_next_owner() locking to how it\nwas before: taking mmap_sem there does nothing for memcontrol.c, now the\nonly user of mm-\u003eowner.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75aa199410359dc5fbcf9025ff7af98a9d20f0d5",
      "tree": "569bffa181ccba56d884ec7e826ae61384297f56",
      "parents": [
        "c7d4caeb1d68d07f77cc09fc20b7759d6d7aa3b1"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "oom: print triggering task\u0027s cpuset and mems allowed\n\nWhen cpusets are enabled, it\u0027s necessary to print the triggering task\u0027s\nset of allowable nodes so the subsequently printed meminfo can be\ninterpreted correctly.\n\nWe also print the task\u0027s cpuset name for informational purposes.\n\n[rientjes@google.com: task lock current before dereferencing cpuset]\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac8cc0fa5395fe2278e305a4cbed48e90d88d878",
      "tree": "515f577bfddd054ee4373228be7c974dfb8133af",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013",
        "3699c53c485bf0168e6500d0ed18bf931584dd7c"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:58:22 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:58:22 2009 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "3699c53c485bf0168e6500d0ed18bf931584dd7c",
      "tree": "eee63a8ddbdb0665bc6a4a053a2405ca7a5b867f",
      "parents": [
        "29881c4502ba05f46bc12ae8053d4e08d7e2615c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Jan 06 22:27:01 2009 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:38:48 2009 +1100"
      },
      "message": "CRED: Fix regression in cap_capable() as shown up by sys_faccessat() [ver #3]\n\nFix a regression in cap_capable() due to:\n\n\tcommit 3b11a1decef07c19443d24ae926982bc8ec9f4c0\n\tAuthor: David Howells \u003cdhowells@redhat.com\u003e\n\tDate:   Fri Nov 14 10:39:26 2008 +1100\n\n\t    CRED: Differentiate objective and effective subjective credentials on a task\n\nThe problem is that the above patch allows a process to have two sets of\ncredentials, and for the most part uses the subjective credentials when\naccessing current\u0027s creds.\n\nThere is, however, one exception: cap_capable(), and thus capable(), uses the\nreal/objective credentials of the target task, whether or not it is the current\ntask.\n\nOrdinarily this doesn\u0027t matter, since usually the two cred pointers in current\npoint to the same set of creds.  However, sys_faccessat() makes use of this\nfacility to override the credentials of the calling process to make its test,\nwithout affecting the creds as seen from other processes.\n\nOne of the things sys_faccessat() does is to make an adjustment to the\neffective capabilities mask, which cap_capable(), as it stands, then ignores.\n\nThe affected capability check is in generic_permission():\n\n\tif (!(mask \u0026 MAY_EXEC) || execute_ok(inode))\n\t\tif (capable(CAP_DAC_OVERRIDE))\n\t\t\treturn 0;\n\nThis change passes the set of credentials to be tested down into the commoncap\nand SELinux code.  The security functions called by capable() and\nhas_capability() select the appropriate set of credentials from the process\nbeing checked.\n\nThis can be tested by compiling the following program from the XFS testsuite:\n\n/*\n *  t_access_root.c - trivial test program to show permission bug.\n *\n *  Written by Michael Kerrisk - copyright ownership not pursued.\n *  Sourced from: http://linux.derkeiler.com/Mailing-Lists/Kernel/2003-10/6030.html\n */\n#include \u003climits.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003csys/stat.h\u003e\n\n#define UID 500\n#define GID 100\n#define PERM 0\n#define TESTPATH \"/tmp/t_access\"\n\nstatic void\nerrExit(char *msg)\n{\n    perror(msg);\n    exit(EXIT_FAILURE);\n} /* errExit */\n\nstatic void\naccessTest(char *file, int mask, char *mstr)\n{\n    printf(\"access(%s, %s) returns %d\\n\", file, mstr, access(file, mask));\n} /* accessTest */\n\nint\nmain(int argc, char *argv[])\n{\n    int fd, perm, uid, gid;\n    char *testpath;\n    char cmd[PATH_MAX + 20];\n\n    testpath \u003d (argc \u003e 1) ? argv[1] : TESTPATH;\n    perm \u003d (argc \u003e 2) ? strtoul(argv[2], NULL, 8) : PERM;\n    uid \u003d (argc \u003e 3) ? atoi(argv[3]) : UID;\n    gid \u003d (argc \u003e 4) ? atoi(argv[4]) : GID;\n\n    unlink(testpath);\n\n    fd \u003d open(testpath, O_RDWR | O_CREAT, 0);\n    if (fd \u003d\u003d -1) errExit(\"open\");\n\n    if (fchown(fd, uid, gid) \u003d\u003d -1) errExit(\"fchown\");\n    if (fchmod(fd, perm) \u003d\u003d -1) errExit(\"fchmod\");\n    close(fd);\n\n    snprintf(cmd, sizeof(cmd), \"ls -l %s\", testpath);\n    system(cmd);\n\n    if (seteuid(uid) \u003d\u003d -1) errExit(\"seteuid\");\n\n    accessTest(testpath, 0, \"0\");\n    accessTest(testpath, R_OK, \"R_OK\");\n    accessTest(testpath, W_OK, \"W_OK\");\n    accessTest(testpath, X_OK, \"X_OK\");\n    accessTest(testpath, R_OK | W_OK, \"R_OK | W_OK\");\n    accessTest(testpath, R_OK | X_OK, \"R_OK | X_OK\");\n    accessTest(testpath, W_OK | X_OK, \"W_OK | X_OK\");\n    accessTest(testpath, R_OK | W_OK | X_OK, \"R_OK | W_OK | X_OK\");\n\n    exit(EXIT_SUCCESS);\n} /* main */\n\nThis can be run against an Ext3 filesystem as well as against an XFS\nfilesystem.  If successful, it will show:\n\n\t[root@andromeda src]# ./t_access_root /tmp/xxx 0 4043 4043\n\t---------- 1 dhowells dhowells 0 2008-12-31 03:00 /tmp/xxx\n\taccess(/tmp/xxx, 0) returns 0\n\taccess(/tmp/xxx, R_OK) returns 0\n\taccess(/tmp/xxx, W_OK) returns 0\n\taccess(/tmp/xxx, X_OK) returns -1\n\taccess(/tmp/xxx, R_OK | W_OK) returns 0\n\taccess(/tmp/xxx, R_OK | X_OK) returns -1\n\taccess(/tmp/xxx, W_OK | X_OK) returns -1\n\taccess(/tmp/xxx, R_OK | W_OK | X_OK) returns -1\n\nIf unsuccessful, it will show:\n\n\t[root@andromeda src]# ./t_access_root /tmp/xxx 0 4043 4043\n\t---------- 1 dhowells dhowells 0 2008-12-31 02:56 /tmp/xxx\n\taccess(/tmp/xxx, 0) returns 0\n\taccess(/tmp/xxx, R_OK) returns -1\n\taccess(/tmp/xxx, W_OK) returns -1\n\taccess(/tmp/xxx, X_OK) returns -1\n\taccess(/tmp/xxx, R_OK | W_OK) returns -1\n\taccess(/tmp/xxx, R_OK | X_OK) returns -1\n\taccess(/tmp/xxx, W_OK | X_OK) returns -1\n\taccess(/tmp/xxx, R_OK | W_OK | X_OK) returns -1\n\nI\u0027ve also tested the fix with the SELinux and syscalls LTP testsuites.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "29881c4502ba05f46bc12ae8053d4e08d7e2615c",
      "tree": "536ea4ac63554e836438bd5f370ddecaa343f1f4",
      "parents": [
        "76f7ba35d4b5219fcc4cb072134c020ec77d030d"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:21:54 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jan 07 09:21:54 2009 +1100"
      },
      "message": "Revert \"CRED: Fix regression in cap_capable() as shown up by sys_faccessat() [ver #2]\"\n\nThis reverts commit 14eaddc967b16017d4a1a24d2be6c28ecbe06ed8.\n\nDavid has a better version to come.\n"
    },
    {
      "commit": "81ff86a11f54c9e266c6a6bc3ecd2c9a0f1e11cc",
      "tree": "7fb09c281647bb0086014904dfc94f721656ca9d",
      "parents": [
        "1d7e6cca1dfd167e5f1e2a7c53119b0c80c90c35"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Jan 06 10:44:39 2009 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:39 2009 -0800"
      },
      "message": "pm: struct device - replace bus_id with dev_name(), dev_set_name()\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "cd3772e6898c6386f21d2958346d6dd57d4204f5",
      "tree": "cd0c4bd5c7af1ba4ab252c54375bff128ef42424",
      "parents": [
        "e0d7bf5d580c20ff14d0200b6ab47bc77f99b152"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Sun Nov 16 18:22:09 2008 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:31 2009 -0800"
      },
      "message": "kernel/ksysfs.c:fix dependence on CONFIG_NET\n\nAccess to uevent_seqnum and uevent_helper does not need to\ndepend on CONFIG_NET, so remove it.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "025dfdafe77f20b3890981a394774baab7b9c827",
      "tree": "c4d514990d7a0673df5d32aa11fded95f9644ff0",
      "parents": [
        "0abb8b6a939b742f273edc68b64dba26c57331bc"
      ],
      "author": {
        "name": "Frederik Schwarzer",
        "email": "schwarzerf@gmail.com",
        "time": "Thu Oct 16 19:02:37 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 06 11:28:06 2009 +0100"
      },
      "message": "trivial: fix then -\u003e than typos in comments and documentation\n\n- (better, more, bigger ...) then -\u003e (...) than\n\nSigned-off-by: Frederik Schwarzer \u003cschwarzerf@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "edb123e16c6092bd08b67d1130ff03efeada0c89",
      "tree": "092b92af4af4c31719d7ad0a23b932650992f95c",
      "parents": [
        "277835adca10a696ac3e2a103ea537658c141a3c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Dec 04 12:39:49 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 06 11:28:06 2009 +0100"
      },
      "message": "trivial: printk: fix indentation of new_text_line declaration\n\nRemove bogus indentation of new_text_line declaration introduced in\ncommit ac60ad741.\n\nAcked-by: Nick Andrew \u003cnick@nick-andrew.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    }
  ],
  "next": "db2f59c8c9b315f2b88b1dac159b988c6009034d"
}
