)]}'
{
  "log": [
    {
      "commit": "2b828925652340277a889cbc11b2d0637f7cdaf7",
      "tree": "32fcb3d3e466fc419fad2d3717956a5b5ad3d35a",
      "parents": [
        "3a3b7ce9336952ea7b9564d976d068a238976c9d",
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 11:29:12 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tsecurity/keys/internal.h\n\tsecurity/keys/process_keys.c\n\tsecurity/keys/request_key.c\n\nFixed conflicts above by using the non \u0027tsk\u0027 versions.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "3a3b7ce9336952ea7b9564d976d068a238976c9d",
      "tree": "3f0a3be33022492161f534636a20a4b1059f8236",
      "parents": [
        "1bfdc75ae077d60a01572a7781ec6264d55ab1b9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:28 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:28 2008 +1100"
      },
      "message": "CRED: Allow kernel services to override LSM settings for task actions\n\nAllow kernel services to override LSM settings appropriate to the actions\nperformed by a task by duplicating a set of credentials, modifying it and then\nusing task_struct::cred to point to it when performing operations on behalf of\na task.\n\nThis is used, for example, by CacheFiles which has to transparently access the\ncache on behalf of a process that thinks it is doing, say, NFS accesses with a\npotentially inappropriate (with respect to accessing the cache) set of\ncredentials.\n\nThis patch provides two LSM hooks for modifying a task security record:\n\n (*) security_kernel_act_as() which allows modification of the security datum\n     with which a task acts on other objects (most notably files).\n\n (*) security_kernel_create_files_as() which allows modification of the\n     security datum that is used to initialise the security data on a file that\n     a task creates.\n\nThe patch also provides four new credentials handling functions, which wrap the\nLSM functions:\n\n (1) prepare_kernel_cred()\n\n     Prepare a set of credentials for a kernel service to use, based either on\n     a daemon\u0027s credentials or on init_cred.  All the keyrings are cleared.\n\n (2) set_security_override()\n\n     Set the LSM security ID in a set of credentials to a specific security\n     context, assuming permission from the LSM policy.\n\n (3) set_security_override_from_ctx()\n\n     As (2), but takes the security context as a string.\n\n (4) set_create_files_as()\n\n     Set the file creation LSM security ID in a set of credentials to be the\n     same as that on a particular inode.\n\nSigned-off-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e [Smack changes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "3b11a1decef07c19443d24ae926982bc8ec9f4c0",
      "tree": "b6555f0e5b07f4b2badd332a0a900b974920c49d",
      "parents": [
        "98870ab0a5a3f1822aee681d2997017e1c87d026"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:26 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:26 2008 +1100"
      },
      "message": "CRED: Differentiate objective and effective subjective credentials on a task\n\nDifferentiate the objective and real subjective credentials from the effective\nsubjective credentials on a task by introducing a second credentials pointer\ninto the task_struct.\n\ntask_struct::real_cred then refers to the objective and apparent real\nsubjective credentials of a task, as perceived by the other tasks in the\nsystem.\n\ntask_struct::cred then refers to the effective subjective credentials of a\ntask, as used by that task when it\u0027s actually running.  These are not visible\nto the other tasks in the system.\n\n__task_cred(task) then refers to the objective/real credentials of the task in\nquestion.\n\ncurrent_cred() refers to the effective subjective credentials of the current\ntask.\n\nprepare_creds() uses the objective creds as a base and commit_creds() changes\nboth pointers in the task_struct (indeed commit_creds() requires them to be the\nsame).\n\noverride_creds() and revert_creds() change the subjective creds pointer only,\nand the former returns the old subjective creds.  These are used by NFSD,\nfaccessat() and do_coredump(), and will by used by CacheFiles.\n\nIn SELinux, current_has_perm() is provided as an alternative to\ntask_has_perm().  This uses the effective subjective context of current,\nwhereas task_has_perm() uses the objective/real context of the subject.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "98870ab0a5a3f1822aee681d2997017e1c87d026",
      "tree": "4f28b9732777b114d5ef2f1647289a48e00a6fda",
      "parents": [
        "d76b0d9b2d87cfc95686e148767cbf7d0e22bdc0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:26 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:26 2008 +1100"
      },
      "message": "CRED: Documentation\n\nDocument credentials and the new credentials API.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a6f76f23d297f70e2a6b3ec607f7aeeea9e37e8d",
      "tree": "8f95617996d0974507f176163459212a7def8b9a",
      "parents": [
        "d84f4f992cbd76e8f39c488cf0c5d123843923b1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:24 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:24 2008 +1100"
      },
      "message": "CRED: Make execve() take advantage of copy-on-write credentials\n\nMake execve() take advantage of copy-on-write credentials, allowing it to set\nup the credentials in advance, and then commit the whole lot after the point\nof no return.\n\nThis patch and the preceding patches have been tested with the LTP SELinux\ntestsuite.\n\nThis patch makes several logical sets of alteration:\n\n (1) execve().\n\n     The credential bits from struct linux_binprm are, for the most part,\n     replaced with a single credentials pointer (bprm-\u003ecred).  This means that\n     all the creds can be calculated in advance and then applied at the point\n     of no return with no possibility of failure.\n\n     I would like to replace bprm-\u003ecap_effective with:\n\n\tcap_isclear(bprm-\u003ecap_effective)\n\n     but this seems impossible due to special behaviour for processes of pid 1\n     (they always retain their parent\u0027s capability masks where normally they\u0027d\n     be changed - see cap_bprm_set_creds()).\n\n     The following sequence of events now happens:\n\n     (a) At the start of do_execve, the current task\u0027s cred_exec_mutex is\n     \t locked to prevent PTRACE_ATTACH from obsoleting the calculation of\n     \t creds that we make.\n\n     (a) prepare_exec_creds() is then called to make a copy of the current\n     \t task\u0027s credentials and prepare it.  This copy is then assigned to\n     \t bprm-\u003ecred.\n\n  \t This renders security_bprm_alloc() and security_bprm_free()\n     \t unnecessary, and so they\u0027ve been removed.\n\n     (b) The determination of unsafe execution is now performed immediately\n     \t after (a) rather than later on in the code.  The result is stored in\n     \t bprm-\u003eunsafe for future reference.\n\n     (c) prepare_binprm() is called, possibly multiple times.\n\n     \t (i) This applies the result of set[ug]id binaries to the new creds\n     \t     attached to bprm-\u003ecred.  Personality bit clearance is recorded,\n     \t     but now deferred on the basis that the exec procedure may yet\n     \t     fail.\n\n         (ii) This then calls the new security_bprm_set_creds().  This should\n\t     calculate the new LSM and capability credentials into *bprm-\u003ecred.\n\n\t     This folds together security_bprm_set() and parts of\n\t     security_bprm_apply_creds() (these two have been removed).\n\t     Anything that might fail must be done at this point.\n\n         (iii) bprm-\u003ecred_prepared is set to 1.\n\n\t     bprm-\u003ecred_prepared is 0 on the first pass of the security\n\t     calculations, and 1 on all subsequent passes.  This allows SELinux\n\t     in (ii) to base its calculations only on the initial script and\n\t     not on the interpreter.\n\n     (d) flush_old_exec() is called to commit the task to execution.  This\n     \t performs the following steps with regard to credentials:\n\n\t (i) Clear pdeath_signal and set dumpable on certain circumstances that\n\t     may not be covered by commit_creds().\n\n         (ii) Clear any bits in current-\u003epersonality that were deferred from\n             (c.i).\n\n     (e) install_exec_creds() [compute_creds() as was] is called to install the\n     \t new credentials.  This performs the following steps with regard to\n     \t credentials:\n\n         (i) Calls security_bprm_committing_creds() to apply any security\n             requirements, such as flushing unauthorised files in SELinux, that\n             must be done before the credentials are changed.\n\n\t     This is made up of bits of security_bprm_apply_creds() and\n\t     security_bprm_post_apply_creds(), both of which have been removed.\n\t     This function is not allowed to fail; anything that might fail\n\t     must have been done in (c.ii).\n\n         (ii) Calls commit_creds() to apply the new credentials in a single\n             assignment (more or less).  Possibly pdeath_signal and dumpable\n             should be part of struct creds.\n\n\t (iii) Unlocks the task\u0027s cred_replace_mutex, thus allowing\n\t     PTRACE_ATTACH to take place.\n\n         (iv) Clears The bprm-\u003ecred pointer as the credentials it was holding\n             are now immutable.\n\n         (v) Calls security_bprm_committed_creds() to apply any security\n             alterations that must be done after the creds have been changed.\n             SELinux uses this to flush signals and signal handlers.\n\n     (f) If an error occurs before (d.i), bprm_free() will call abort_creds()\n     \t to destroy the proposed new credentials and will then unlock\n     \t cred_replace_mutex.  No changes to the credentials will have been\n     \t made.\n\n (2) LSM interface.\n\n     A number of functions have been changed, added or removed:\n\n     (*) security_bprm_alloc(), -\u003ebprm_alloc_security()\n     (*) security_bprm_free(), -\u003ebprm_free_security()\n\n     \t Removed in favour of preparing new credentials and modifying those.\n\n     (*) security_bprm_apply_creds(), -\u003ebprm_apply_creds()\n     (*) security_bprm_post_apply_creds(), -\u003ebprm_post_apply_creds()\n\n     \t Removed; split between security_bprm_set_creds(),\n     \t security_bprm_committing_creds() and security_bprm_committed_creds().\n\n     (*) security_bprm_set(), -\u003ebprm_set_security()\n\n     \t Removed; folded into security_bprm_set_creds().\n\n     (*) security_bprm_set_creds(), -\u003ebprm_set_creds()\n\n     \t New.  The new credentials in bprm-\u003ecreds should be checked and set up\n     \t as appropriate.  bprm-\u003ecred_prepared is 0 on the first call, 1 on the\n     \t second and subsequent calls.\n\n     (*) security_bprm_committing_creds(), -\u003ebprm_committing_creds()\n     (*) security_bprm_committed_creds(), -\u003ebprm_committed_creds()\n\n     \t New.  Apply the security effects of the new credentials.  This\n     \t includes closing unauthorised files in SELinux.  This function may not\n     \t fail.  When the former is called, the creds haven\u0027t yet been applied\n     \t to the process; when the latter is called, they have.\n\n \t The former may access bprm-\u003ecred, the latter may not.\n\n (3) SELinux.\n\n     SELinux has a number of changes, in addition to those to support the LSM\n     interface changes mentioned above:\n\n     (a) The bprm_security_struct struct has been removed in favour of using\n     \t the credentials-under-construction approach.\n\n     (c) flush_unauthorized_files() now takes a cred pointer and passes it on\n     \t to inode_has_perm(), file_has_perm() and dentry_open().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d84f4f992cbd76e8f39c488cf0c5d123843923b1",
      "tree": "fc4a0349c42995715b93d0f7a3c78e9ea9b3f36e",
      "parents": [
        "745ca2475a6ac596e3d8d37c2759c0fbe2586227"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:23 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:23 2008 +1100"
      },
      "message": "CRED: Inaugurate COW credentials\n\nInaugurate copy-on-write credentials management.  This uses RCU to manage the\ncredentials pointer in the task_struct with respect to accesses by other tasks.\nA process may only modify its own credentials, and so does not need locking to\naccess or modify its own credentials.\n\nA mutex (cred_replace_mutex) is added to the task_struct to control the effect\nof PTRACE_ATTACHED on credential calculations, particularly with respect to\nexecve().\n\nWith this patch, the contents of an active credentials struct may not be\nchanged directly; rather a new set of credentials must be prepared, modified\nand committed using something like the following sequence of events:\n\n\tstruct cred *new \u003d prepare_creds();\n\tint ret \u003d blah(new);\n\tif (ret \u003c 0) {\n\t\tabort_creds(new);\n\t\treturn ret;\n\t}\n\treturn commit_creds(new);\n\nThere are some exceptions to this rule: the keyrings pointed to by the active\ncredentials may be instantiated - keyrings violate the COW rule as managing\nCOW keyrings is tricky, given that it is possible for a task to directly alter\nthe keys in a keyring in use by another task.\n\nTo help enforce this, various pointers to sets of credentials, such as those in\nthe task_struct, are declared const.  The purpose of this is compile-time\ndiscouragement of altering credentials through those pointers.  Once a set of\ncredentials has been made public through one of these pointers, it may not be\nmodified, except under special circumstances:\n\n  (1) Its reference count may incremented and decremented.\n\n  (2) The keyrings to which it points may be modified, but not replaced.\n\nThe only safe way to modify anything else is to create a replacement and commit\nusing the functions described in Documentation/credentials.txt (which will be\nadded by a later patch).\n\nThis patch and the preceding patches have been tested with the LTP SELinux\ntestsuite.\n\nThis patch makes several logical sets of alteration:\n\n (1) execve().\n\n     This now prepares and commits credentials in various places in the\n     security code rather than altering the current creds directly.\n\n (2) Temporary credential overrides.\n\n     do_coredump() and sys_faccessat() now prepare their own credentials and\n     temporarily override the ones currently on the acting thread, whilst\n     preventing interference from other threads by holding cred_replace_mutex\n     on the thread being dumped.\n\n     This will be replaced in a future patch by something that hands down the\n     credentials directly to the functions being called, rather than altering\n     the task\u0027s objective credentials.\n\n (3) LSM interface.\n\n     A number of functions have been changed, added or removed:\n\n     (*) security_capset_check(), -\u003ecapset_check()\n     (*) security_capset_set(), -\u003ecapset_set()\n\n     \t Removed in favour of security_capset().\n\n     (*) security_capset(), -\u003ecapset()\n\n     \t New.  This is passed a pointer to the new creds, a pointer to the old\n     \t creds and the proposed capability sets.  It should fill in the new\n     \t creds or return an error.  All pointers, barring the pointer to the\n     \t new creds, are now const.\n\n     (*) security_bprm_apply_creds(), -\u003ebprm_apply_creds()\n\n     \t Changed; now returns a value, which will cause the process to be\n     \t killed if it\u0027s an error.\n\n     (*) security_task_alloc(), -\u003etask_alloc_security()\n\n     \t Removed in favour of security_prepare_creds().\n\n     (*) security_cred_free(), -\u003ecred_free()\n\n     \t New.  Free security data attached to cred-\u003esecurity.\n\n     (*) security_prepare_creds(), -\u003ecred_prepare()\n\n     \t New. Duplicate any security data attached to cred-\u003esecurity.\n\n     (*) security_commit_creds(), -\u003ecred_commit()\n\n     \t New. Apply any security effects for the upcoming installation of new\n     \t security by commit_creds().\n\n     (*) security_task_post_setuid(), -\u003etask_post_setuid()\n\n     \t Removed in favour of security_task_fix_setuid().\n\n     (*) security_task_fix_setuid(), -\u003etask_fix_setuid()\n\n     \t Fix up the proposed new credentials for setuid().  This is used by\n     \t cap_set_fix_setuid() to implicitly adjust capabilities in line with\n     \t setuid() changes.  Changes are made to the new credentials, rather\n     \t than the task itself as in security_task_post_setuid().\n\n     (*) security_task_reparent_to_init(), -\u003etask_reparent_to_init()\n\n     \t Removed.  Instead the task being reparented to init is referred\n     \t directly to init\u0027s credentials.\n\n\t NOTE!  This results in the loss of some state: SELinux\u0027s osid no\n\t longer records the sid of the thread that forked it.\n\n     (*) security_key_alloc(), -\u003ekey_alloc()\n     (*) security_key_permission(), -\u003ekey_permission()\n\n     \t Changed.  These now take cred pointers rather than task pointers to\n     \t refer to the security context.\n\n (4) sys_capset().\n\n     This has been simplified and uses less locking.  The LSM functions it\n     calls have been merged.\n\n (5) reparent_to_kthreadd().\n\n     This gives the current thread the same credentials as init by simply using\n     commit_thread() to point that way.\n\n (6) __sigqueue_alloc() and switch_uid()\n\n     __sigqueue_alloc() can\u0027t stop the target task from changing its creds\n     beneath it, so this function gets a reference to the currently applicable\n     user_struct which it then passes into the sigqueue struct it returns if\n     successful.\n\n     switch_uid() is now called from commit_creds(), and possibly should be\n     folded into that.  commit_creds() should take care of protecting\n     __sigqueue_alloc().\n\n (7) [sg]et[ug]id() and co and [sg]et_current_groups.\n\n     The set functions now all use prepare_creds(), commit_creds() and\n     abort_creds() to build and check a new set of credentials before applying\n     it.\n\n     security_task_set[ug]id() is called inside the prepared section.  This\n     guarantees that nothing else will affect the creds until we\u0027ve finished.\n\n     The calling of set_dumpable() has been moved into commit_creds().\n\n     Much of the functionality of set_user() has been moved into\n     commit_creds().\n\n     The get functions all simply access the data directly.\n\n (8) security_task_prctl() and cap_task_prctl().\n\n     security_task_prctl() has been modified to return -ENOSYS if it doesn\u0027t\n     want to handle a function, or otherwise return the return value directly\n     rather than through an argument.\n\n     Additionally, cap_task_prctl() now prepares a new set of credentials, even\n     if it doesn\u0027t end up using it.\n\n (9) Keyrings.\n\n     A number of changes have been made to the keyrings code:\n\n     (a) switch_uid_keyring(), copy_keys(), exit_keys() and suid_keys() have\n     \t all been dropped and built in to the credentials functions directly.\n     \t They may want separating out again later.\n\n     (b) key_alloc() and search_process_keyrings() now take a cred pointer\n     \t rather than a task pointer to specify the security context.\n\n     (c) copy_creds() gives a new thread within the same thread group a new\n     \t thread keyring if its parent had one, otherwise it discards the thread\n     \t keyring.\n\n     (d) The authorisation key now points directly to the credentials to extend\n     \t the search into rather pointing to the task that carries them.\n\n     (e) Installing thread, process or session keyrings causes a new set of\n     \t credentials to be created, even though it\u0027s not strictly necessary for\n     \t process or session keyrings (they\u0027re shared).\n\n(10) Usermode helper.\n\n     The usermode helper code now carries a cred struct pointer in its\n     subprocess_info struct instead of a new session keyring pointer.  This set\n     of credentials is derived from init_cred and installed on the new process\n     after it has been cloned.\n\n     call_usermodehelper_setup() allocates the new credentials and\n     call_usermodehelper_freeinfo() discards them if they haven\u0027t been used.  A\n     special cred function (prepare_usermodeinfo_creds()) is provided\n     specifically for call_usermodehelper_setup() to call.\n\n     call_usermodehelper_setkeys() adjusts the credentials to sport the\n     supplied keyring as the new session keyring.\n\n(11) SELinux.\n\n     SELinux has a number of changes, in addition to those to support the LSM\n     interface changes mentioned above:\n\n     (a) selinux_setprocattr() no longer does its check for whether the\n     \t current ptracer can access processes with the new SID inside the lock\n     \t that covers getting the ptracer\u0027s SID.  Whilst this lock ensures that\n     \t the check is done with the ptracer pinned, the result is only valid\n     \t until the lock is released, so there\u0027s no point doing it inside the\n     \t lock.\n\n(12) is_single_threaded().\n\n     This function has been extracted from selinux_setprocattr() and put into\n     a file of its own in the lib/ directory as join_session_keyring() now\n     wants to use it too.\n\n     The code in SELinux just checked to see whether a task shared mm_structs\n     with other tasks (CLONE_VM), but that isn\u0027t good enough.  We really want\n     to know if they\u0027re part of the same thread group (CLONE_THREAD).\n\n(13) nfsd.\n\n     The NFS server daemon now has to use the COW credentials to set the\n     credentials it is going to use.  It really needs to pass the credentials\n     down to the functions it calls, but it can\u0027t do that until other patches\n     in this series have been applied.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6cc88bc45ce8043171089c9592da223dfab91823",
      "tree": "f89bf8162895a5eb89ea7969098876e08a8999d8",
      "parents": [
        "bb952bb98a7e479262c7eb25d5592545a3af147d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:21 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:21 2008 +1100"
      },
      "message": "CRED: Rename is_single_threaded() to is_wq_single_threaded()\n\nRename is_single_threaded() to is_wq_single_threaded() so that a new\nis_single_threaded() can be created that refers to tasks rather than\nwaitqueues.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "bb952bb98a7e479262c7eb25d5592545a3af147d",
      "tree": "9a2158c07a22a5fbddcec412944d2e7534eecc8f",
      "parents": [
        "275bb41e9d058fbb327e7642f077e1beaeac162e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:20 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:20 2008 +1100"
      },
      "message": "CRED: Separate per-task-group keyrings from signal_struct\n\nSeparate per-task-group keyrings from signal_struct and dangle their anchor\nfrom the cred struct rather than the signal_struct.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "c69e8d9c01db2adc503464993c358901c9af9de4",
      "tree": "bed94aaa9aeb7a7834d1c880f72b62a11a752c78",
      "parents": [
        "86a264abe542cfececb4df129bc45a0338d8cdb9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "message": "CRED: Use RCU to access another task\u0027s creds and to release a task\u0027s own creds\n\nUse RCU to access another task\u0027s creds and to release a task\u0027s own creds.\nThis means that it will be possible for the credentials of a task to be\nreplaced without another task (a) requiring a full lock to read them, and (b)\nseeing deallocated memory.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "86a264abe542cfececb4df129bc45a0338d8cdb9",
      "tree": "30152f04ba847f311028d5ca697f864c16c7ebb3",
      "parents": [
        "f1752eec6145c97163dbce62d17cf5d928e28a27"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "message": "CRED: Wrap current-\u003ecred and a few other accessors\n\nWrap current-\u003ecred and a few other accessors to hide their actual\nimplementation.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f1752eec6145c97163dbce62d17cf5d928e28a27",
      "tree": "16bc51166d38815092de36a461b845b0b4b522f9",
      "parents": [
        "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:17 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:17 2008 +1100"
      },
      "message": "CRED: Detach the credentials from task_struct\n\nDetach the credentials from task_struct, duplicating them in copy_process()\nand releasing them in __put_task_struct().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a",
      "tree": "9e76f972eb7ce9b84e0146c8e4126a3f86acb428",
      "parents": [
        "15a2460ed0af7538ca8e6c610fe607a2cd9da142"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "message": "CRED: Separate task security context from task_struct\n\nSeparate the task security context from task_struct.  At this point, the\nsecurity data is temporarily embedded in the task_struct with two pointers\npointing to it.\n\nNote that the Alpha arch is altered as it refers to (E)UID and (E)GID in\nentry.S via asm-offsets.\n\nWith comment fixes Signed-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1cdcbec1a3372c0c49c59d292e708fd07b509f18",
      "tree": "d1bd302c8d66862da45b494cbc766fb4caa5e23e",
      "parents": [
        "8bbf4976b59fc9fc2861e79cab7beb3f6d647640"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:14 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:14 2008 +1100"
      },
      "message": "CRED: Neuter sys_capset()\n\nTake away the ability for sys_capset() to affect processes other than current.\n\nThis means that current will not need to lock its own credentials when reading\nthem against interference by other processes.\n\nThis has effectively been the case for a while anyway, since:\n\n (1) Without LSM enabled, sys_capset() is disallowed.\n\n (2) With file-based capabilities, sys_capset() is neutered.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8bbf4976b59fc9fc2861e79cab7beb3f6d647640",
      "tree": "9bd621217cbdfcf94aca5b220de7363254d7fc23",
      "parents": [
        "e9e349b051d98799b743ebf248cc2d986fedf090"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:14 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:14 2008 +1100"
      },
      "message": "KEYS: Alter use of key instantiation link-to-keyring argument\n\nAlter the use of the key instantiation and negation functions\u0027 link-to-keyring\narguments.  Currently this specifies a keyring in the target process to link\nthe key into, creating the keyring if it doesn\u0027t exist.  This, however, can be\na problem for copy-on-write credentials as it means that the instantiating\nprocess can alter the credentials of the requesting process.\n\nThis patch alters the behaviour such that:\n\n (1) If keyctl_instantiate_key() or keyctl_negate_key() are given a specific\n     keyring by ID (ringid \u003e\u003d 0), then that keyring will be used.\n\n (2) If keyctl_instantiate_key() or keyctl_negate_key() are given one of the\n     special constants that refer to the requesting process\u0027s keyrings\n     (KEY_SPEC_*_KEYRING, all \u003c\u003d 0), then:\n\n     (a) If sys_request_key() was given a keyring to use (destringid) then the\n     \t key will be attached to that keyring.\n\n     (b) If sys_request_key() was given a NULL keyring, then the key being\n     \t instantiated will be attached to the default keyring as set by\n     \t keyctl_set_reqkey_keyring().\n\n (3) No extra link will be made.\n\nDecision point (1) follows current behaviour, and allows those instantiators\nwho\u0027ve searched for a specifically named keyring in the requestor\u0027s keyring so\nas to partition the keys by type to still have their named keyrings.\n\nDecision point (2) allows the requestor to make sure that the key or keys that\nget produced by request_key() go where they want, whilst allowing the\ninstantiator to request that the key is retained.  This is mainly useful for\nsituations where the instantiator makes a secondary request, the key for which\nshould be retained by the initial requestor:\n\n\t+-----------+        +--------------+        +--------------+\n\t|           |        |              |        |              |\n\t| Requestor |-------\u003e| Instantiator |-------\u003e| Instantiator |\n\t|           |        |              |        |              |\n\t+-----------+        +--------------+        +--------------+\n\t           request_key()           request_key()\n\nThis might be useful, for example, in Kerberos, where the requestor requests a\nticket, and then the ticket instantiator requests the TGT, which someone else\nthen has to go and fetch.  The TGT, however, should be retained in the\nkeyrings of the requestor, not the first instantiator.  To make this explict\nan extra special keyring constant is also added.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "76aac0e9a17742e60d408be1a706e9aaad370891",
      "tree": "e873a000d9c96209726e0958e311f005c13b2ed5",
      "parents": [
        "b103c59883f1ec6e4d548b25054608cb5724453c"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:12 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the core kernel\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-audit@redhat.com\nCc: containers@lists.linux-foundation.org\nCc: linux-mm@kvack.org\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "4ffaf869c7780bbdfc11291e5fd4b61dde662b1c",
      "tree": "bdd513a1dba0c7fc99645453aef5bc7bb7343a0e",
      "parents": [
        "65131cd52b9e7c5814298e05c3b7843f13e78d24",
        "5cbd54ef470d880fc37fbe4b21eb514806d51e0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:22:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:22:44 2008 -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 init_idle()\u0027s use of sched_clock()\n  sched: fix stale value in average load per task\n"
    },
    {
      "commit": "7e036d040a28bf95255d7eb9faf0ffbba3677e99",
      "tree": "98203974c15ae4fc5aee5723b385b0f45c331ec7",
      "parents": [
        "084c304980f05833bc8a91b856af7dc7a7bb7d60"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Nov 12 13:26:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:17 2008 -0800"
      },
      "message": "kernel/kprobes.c: don\u0027t pad kretprobe_table_locks[] on uniprocessor builds\n\nWe only need the cacheline padding on SMP kernels.  Saves 6k:\n\n   text    data     bss     dec     hex filename\n   5713     388    8840   14941    3a5d kernel/kprobes.o\n   5713     388    2632    8733    221d kernel/kprobes.o\n\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: 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": "a189d0350f387786b1fb5a5d19e3a5ab0bc0cceb",
      "tree": "d6133d035e0d23a8271f12204e53338f8f343351",
      "parents": [
        "3b1b3f6e57064aa8f91c290fe51cda4c74642902"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Wed Nov 12 13:26:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "kprobes: disable preempt for module_text_address() and kernel_text_address()\n\n__register_kprobe() can be preempted after checking probing address but\nbefore module_text_address() or try_module_get(), and in this interval\nthe module can be unloaded.  In that case, try_module_get(probed_mod)\nwill access to invalid address, or kprobe will probe invalid address.\n\nThis patch uses preempt_disable() to protect it and uses\n__module_text_address() and __kernel_text_address().\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.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": "3b1b3f6e57064aa8f91c290fe51cda4c74642902",
      "tree": "2cf60a7bae5f184acbea4bff859be4e4132f9794",
      "parents": [
        "687446760bd008df96655cb8c5900f8e48a7118c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: disable writing freezer.state of root cgroup\n\nWith this change, control file \u0027freezer.state\u0027 doesn\u0027t exist in root\ncgroup, making root cgroup unfreezable.\n\nI think it\u0027s reasonable to disallow freeze tasks in the root cgroup.  And\nthen we can avoid fork overhead when freezer subsystem is compiled but not\nused.\n\nAlso make writing invalid value to freezer.state returns EINVAL rather\nthan EIO.  This is more consistent with other cgroup subsystem.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Serge E. 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": "687446760bd008df96655cb8c5900f8e48a7118c",
      "tree": "b4834a1e88d98234cfad90a0880b54ba1cc3cc59",
      "parents": [
        "0bcb6069a6e1af5c114a2a8873ec43ada8933596"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: remove task_lock from freezer_fork()\n\nIn theory the task can be moved to another cgroup and the freezer will be\nfreed right after task_lock is dropped, so the lock results in zero\nprotection.\n\nBut in the case of freezer_fork() no lock is needed, since the task is not\nin tasklist yet so it won\u0027t be moved to another cgroup, so task-\u003ecgroups\nwon\u0027t be changed or invalidated.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.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": "5cbd54ef470d880fc37fbe4b21eb514806d51e0d",
      "tree": "db9a73e605e0a2e7cfa13bd9697a113b5f6649eb",
      "parents": [
        "a2d477778e82a60a0b7114cefdb70aa43af28782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 20:05:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 20:05:50 2008 +0100"
      },
      "message": "sched: fix init_idle()\u0027s use of sched_clock()\n\nMaciej Rutecki reported:\n\n\u003e I have this bug during suspend to disk:\n\u003e\n\u003e [  188.592151] Enabling non-boot CPUs ...\n\u003e [  188.592151] SMP alternatives: switching to SMP code\n\u003e [  188.666058] BUG: using smp_processor_id() in preemptible\n\u003e [00000000]\n\u003e code: suspend_to_disk/2934\n\u003e [  188.666064] caller is native_sched_clock+0x2b/0x80\n\nWhich, as noted by Linus, was caused by me, via:\n\n  7cbaef9c \"sched: optimize sched_clock() a bit\"\n\nMove the rq locking a bit earlier in the initialization sequence,\nthat will make the sched_clock() call in init_idle() non-preemptible.\n\nReported-by: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a2d477778e82a60a0b7114cefdb70aa43af28782",
      "tree": "52fb05ee2d63765ddddcf4a2e06f310510607735",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Nov 12 16:19:00 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 12:33:50 2008 +0100"
      },
      "message": "sched: fix stale value in average load per task\n\nImpact: fix load balancer load average calculation accuracy\n\ncpu_avg_load_per_task() returns a stale value when nr_running is 0.\nIt returns an older stale (caculated when nr_running was non zero) value.\n\nThis patch returns and sets rq-\u003eavg_load_per_task to zero when nr_running\nis 0.\n\nCompile and boot tested on a x86_64 box.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "621a0d5207c18012cb39932f2d9830a11a6cb03d",
      "tree": "0e18c30c91620108b413197f9bc153ceb6e430ec",
      "parents": [
        "f21f237cf55494c3a4209de323281a3b0528da10"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 12 09:36:35 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 09:54:40 2008 +0100"
      },
      "message": "hrtimer: clean up unused callback modes\n\nImpact: cleanup\n\ngit grep HRTIMER_CB_IRQSAFE revealed half the callback modes are actually\nunused.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f21f237cf55494c3a4209de323281a3b0528da10",
      "tree": "40ebad408aebbc5bf4e54bd51a7c0077ad04508b",
      "parents": [
        "2f96cb57cde9957bac0991c712068d29364b2ac9",
        "5d5254f0d3b9bebc47d97e357374c0ad0c291a7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:53:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:53:50 2008 -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  timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context\n  nohz: disable tick_nohz_kick_tick() for now\n  irq: call __irq_enter() before calling the tick_idle_check\n  x86: HPET: enter hpet_interrupt_handler with interrupts disabled\n  x86: HPET: read from HPET_Tn_CMP() not HPET_T0_CMP\n  x86: HPET: convert WARN_ON to WARN_ON_ONCE\n"
    },
    {
      "commit": "2f96cb57cde9957bac0991c712068d29364b2ac9",
      "tree": "60e3f985b9e865f3a1fdda131599fa84159cc73e",
      "parents": [
        "09eb3b5b1bcab7b25e9dd57e90ee9753adf7afe2",
        "2002c69595a092518107f7e3c1294c9710bc92ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 11 10:52:25 2008 -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: release buddies on yield\n  fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n  sched: clean up debug info\n"
    },
    {
      "commit": "637d32dc720897616e8a1a4f9e9609e29d431800",
      "tree": "6b9e500f4f9fa624da3b6bd28d6d161a615a3a63",
      "parents": [
        "e68b75a027bb94066576139ee33676264f867b87"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed Oct 29 15:42:12 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 11 22:01:24 2008 +1100"
      },
      "message": "Capabilities: BUG when an invalid capability is requested\n\nIf an invalid (large) capability is requested the capabilities system\nmay panic as it is dereferencing an array of fixed (short) length.  Its\npossible (and actually often happens) that the capability system\naccidentally stumbled into a valid memory region but it also regularly\nhappens that it hits invalid memory and BUGs.  If such an operation does\nget past cap_capable then the selinux system is sure to have problems as\nit already does a (simple) validity check and BUG.  This is known to\nhappen by the broken and buggy firegl driver.\n\nThis patch cleanly checks all capable calls and BUG if a call is for an\ninvalid capability.  This will likely break the firegl driver for some\nsituations, but it is the right thing to do.  Garbage into a security\nsystem gets you killed/bugged\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2002c69595a092518107f7e3c1294c9710bc92ae",
      "tree": "5935add4d4cd426b5b824474b7ec2ffea48d2951",
      "parents": [
        "ad474caca3e2a0550b7ce0706527ad5ab389a4d4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Nov 11 11:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 11:57:22 2008 +0100"
      },
      "message": "sched: release buddies on yield\n\nClear buddies on yield, so that the buddy rules don\u0027t schedule them\ndespite them being placed right-most.\n\nThis fixed a performance regression with yield-happy binary JVMs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Lin Ming \u003cming.m.lin@intel.com\u003e\n"
    },
    {
      "commit": "e68b75a027bb94066576139ee33676264f867b87",
      "tree": "2c31f59a4abe9d7bb3cb75fdf3b57772feeeb6f6",
      "parents": [
        "3fc689e96c0c90b6fede5946d6c31075e9464f69"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Nov 11 21:48:22 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 11 21:48:22 2008 +1100"
      },
      "message": "When the capset syscall is used it is not possible for audit to record the\nactual capbilities being added/removed.  This patch adds a new record type\nwhich emits the target pid and the eff, inh, and perm cap sets.\n\nexample output if you audit capset syscalls would be:\n\ntype\u003dSYSCALL msg\u003daudit(1225743140.465:76): arch\u003dc000003e syscall\u003d126 success\u003dyes exit\u003d0 a0\u003d17f2014 a1\u003d17f201c a2\u003d80000000 a3\u003d7fff2ab7f060 items\u003d0 ppid\u003d2160 pid\u003d2223 auid\u003d0 uid\u003d0 gid\u003d0 euid\u003d0 suid\u003d0 fsuid\u003d0 egid\u003d0 sgid\u003d0 fsgid\u003d0 tty\u003dpts0 ses\u003d1 comm\u003d\"setcap\" exe\u003d\"/usr/sbin/setcap\" subj\u003dunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key\u003d(null)\ntype\u003dUNKNOWN[1322] msg\u003daudit(1225743140.465:76): pid\u003d0 cap_pi\u003dffffffffffffffff cap_pp\u003dffffffffffffffff cap_pe\u003dffffffffffffffff\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "3fc689e96c0c90b6fede5946d6c31075e9464f69",
      "tree": "5e59b6c607eb595ababa74bad18787cfa49b16e9",
      "parents": [
        "851f7ff56d9c21272f289dd85fb3f1b6cf7a6e10"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Nov 11 21:48:18 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 11 21:48:18 2008 +1100"
      },
      "message": "Any time fcaps or a setuid app under SECURE_NOROOT is used to result in a\nnon-zero pE we will crate a new audit record which contains the entire set\nof known information about the executable in question, fP, fI, fE, fversion\nand includes the process\u0027s pE, pI, pP.  Before and after the bprm capability\nare applied.  This record type will only be emitted from execve syscalls.\n\nan example of making ping use fcaps instead of setuid:\n\nsetcap \"cat_net_raw+pe\" /bin/ping\n\ntype\u003dSYSCALL msg\u003daudit(1225742021.015:236): arch\u003dc000003e syscall\u003d59 success\u003dyes exit\u003d0 a0\u003d1457f30 a1\u003d14606b0 a2\u003d1463940 a3\u003d321b770a70 items\u003d2 ppid\u003d2929 pid\u003d2963 auid\u003d0 uid\u003d500 gid\u003d500 euid\u003d500 suid\u003d500 fsuid\u003d500 egid\u003d500 sgid\u003d500 fsgid\u003d500 tty\u003dpts0 ses\u003d3 comm\u003d\"ping\" exe\u003d\"/bin/ping\" subj\u003dunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key\u003d(null)\ntype\u003dUNKNOWN[1321] msg\u003daudit(1225742021.015:236): fver\u003d2 fp\u003d0000000000002000 fi\u003d0000000000000000 fe\u003d1 old_pp\u003d0000000000000000 old_pi\u003d0000000000000000 old_pe\u003d0000000000000000 new_pp\u003d0000000000002000 new_pi\u003d0000000000000000 new_pe\u003d0000000000002000\ntype\u003dEXECVE msg\u003daudit(1225742021.015:236): argc\u003d2 a0\u003d\"ping\" a1\u003d\"127.0.0.1\"\ntype\u003dCWD msg\u003daudit(1225742021.015:236):  cwd\u003d\"/home/test\"\ntype\u003dPATH msg\u003daudit(1225742021.015:236): item\u003d0 name\u003d\"/bin/ping\" inode\u003d49256 dev\u003dfd:00 mode\u003d0100755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003dsystem_u:object_r:ping_exec_t:s0 cap_fp\u003d0000000000002000 cap_fe\u003d1 cap_fver\u003d2\ntype\u003dPATH msg\u003daudit(1225742021.015:236): item\u003d1 name\u003d(null) inode\u003d507915 dev\u003dfd:00 mode\u003d0100755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003dsystem_u:object_r:ld_so_t:s0\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "851f7ff56d9c21272f289dd85fb3f1b6cf7a6e10",
      "tree": "42c72104230d93bf785a4cdda1e1ea5895339db0",
      "parents": [
        "c0b004413a46a0a5744e6d2b85220fe9d2c33d48"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Nov 11 21:48:14 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 11 21:48:14 2008 +1100"
      },
      "message": "This patch will print cap_permitted and cap_inheritable data in the PATH\nrecords of any file that has file capabilities set.  Files which do not\nhave fcaps set will not have different PATH records.\n\nAn example audit record if you run:\nsetcap \"cap_net_admin+pie\" /bin/bash\n/bin/bash\n\ntype\u003dSYSCALL msg\u003daudit(1225741937.363:230): arch\u003dc000003e syscall\u003d59 success\u003dyes exit\u003d0 a0\u003d2119230 a1\u003d210da30 a2\u003d20ee290 a3\u003d8 items\u003d2 ppid\u003d2149 pid\u003d2923 auid\u003d0 uid\u003d0 gid\u003d0 euid\u003d0 suid\u003d0 fsuid\u003d0 egid\u003d0 sgid\u003d0 fsgid\u003d0 tty\u003dpts0 ses\u003d3 comm\u003d\"ping\" exe\u003d\"/bin/ping\" subj\u003dunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key\u003d(null)\ntype\u003dEXECVE msg\u003daudit(1225741937.363:230): argc\u003d2 a0\u003d\"ping\" a1\u003d\"www.google.com\"\ntype\u003dCWD msg\u003daudit(1225741937.363:230):  cwd\u003d\"/root\"\ntype\u003dPATH msg\u003daudit(1225741937.363:230): item\u003d0 name\u003d\"/bin/ping\" inode\u003d49256 dev\u003dfd:00 mode\u003d0104755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003dsystem_u:object_r:ping_exec_t:s0 cap_fp\u003d0000000000002000 cap_fi\u003d0000000000002000 cap_fe\u003d1 cap_fver\u003d2\ntype\u003dPATH msg\u003daudit(1225741937.363:230): item\u003d1 name\u003d(null) inode\u003d507915 dev\u003dfd:00 mode\u003d0100755 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 obj\u003dsystem_u:object_r:ld_so_t:s0\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "5d5254f0d3b9bebc47d97e357374c0ad0c291a7d",
      "tree": "fea216db5914228fe80139f5e31621de86cc9e5d",
      "parents": [
        "ae99286b4f1be7788f2d6947c66a91dbd6351eec"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Sat Oct 25 10:22:38 2008 +0530"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 11 10:46:42 2008 +0100"
      },
      "message": "timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context\n\nImpact: fix incorrect locking triggered during hotplug-intense stress-tests\n\nWhile migrating the the CB_IRQSAFE_UNLOCKED timers during a cpu-offline,\nwe queue them on the cb_pending list, so that they won\u0027t go\nstale.\n\nThus, when the callbacks of the timers run from the softirq context,\nthey could run into potential deadlocks, since these callbacks\nassume that they\u0027re running with irq\u0027s disabled, thereby annoying\nlockdep!\n\nFix this by emulating hardirq context while running these callbacks from\nthe hrtimer softirq.\n\n\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[ INFO: inconsistent lock state ]\n2.6.27 #2\n--------------------------------\ninconsistent {in-hardirq-W} -\u003e {hardirq-on-W} usage.\nksoftirqd/0/4 [HC0[0]:SC1[1]:HE1:SE0] takes:\n (\u0026rq-\u003elock){++..}, at: [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n{in-hardirq-W} state was registered at:\n  [\u003cc014103c\u003e] __lock_acquire+0x549/0x121e\n  [\u003cc0107890\u003e] native_sched_clock+0x88/0x99\n  [\u003cc013aa12\u003e] clocksource_get_next+0x39/0x3f\n  [\u003cc0139abc\u003e] update_wall_time+0x616/0x7df\n  [\u003cc0141d6b\u003e] lock_acquire+0x5a/0x74\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc047ed45\u003e] _spin_lock+0x1c/0x45\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc0121724\u003e] scheduler_tick+0x3a/0x18d\n  [\u003cc012c436\u003e] update_process_times+0x3a/0x44\n  [\u003cc013c044\u003e] tick_periodic+0x63/0x6d\n  [\u003cc013c062\u003e] tick_handle_periodic+0x14/0x5e\n  [\u003cc010568c\u003e] timer_interrupt+0x44/0x4a\n  [\u003cc0150c9f\u003e] handle_IRQ_event+0x13/0x3d\n  [\u003cc0151c14\u003e] handle_level_irq+0x79/0xbd\n  [\u003cc0105634\u003e] do_IRQ+0x69/0x7d\n  [\u003cc01041e4\u003e] common_interrupt+0x28/0x30\n  [\u003cc047007b\u003e] aac_probe_one+0x1a3/0x3f3\n  [\u003cc047ec2d\u003e] _spin_unlock_irqrestore+0x36/0x39\n  [\u003cc01512b4\u003e] setup_irq+0x1be/0x1f9\n  [\u003cc065d70b\u003e] start_kernel+0x259/0x2c5\n  [\u003cffffffff\u003e] 0xffffffff\nirq event stamp: 50102\nhardirqs last  enabled at (50102): [\u003cc047ebf4\u003e] _spin_unlock_irq+0x20/0x23\nhardirqs last disabled at (50101): [\u003cc047edc2\u003e] _spin_lock_irq+0xa/0x4b\nsoftirqs last  enabled at (50088): [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\nsoftirqs last disabled at (50099): [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\n\nother info that might help us debug this:\nno locks held by ksoftirqd/0/4.\n\nstack backtrace:\nPid: 4, comm: ksoftirqd/0 Not tainted 2.6.27 #2\n [\u003cc013f6cb\u003e] print_usage_bug+0x13e/0x147\n [\u003cc013fef5\u003e] mark_lock+0x493/0x797\n [\u003cc01410b1\u003e] __lock_acquire+0x5be/0x121e\n [\u003cc0141d6b\u003e] lock_acquire+0x5a/0x74\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc047ed45\u003e] _spin_lock+0x1c/0x45\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc011db84\u003e] sched_rt_period_timer+0x9e/0x1fc\n [\u003cc01210fd\u003e] finish_task_switch+0x41/0xbd\n [\u003cc0107890\u003e] native_sched_clock+0x88/0x99\n [\u003cc011dae6\u003e] sched_rt_period_timer+0x0/0x1fc\n [\u003cc0136dda\u003e] run_hrtimer_pending+0x54/0xe5\n [\u003cc011dae6\u003e] sched_rt_period_timer+0x0/0x1fc\n [\u003cc0128afb\u003e] __do_softirq+0x7b/0xef\n [\u003cc0128ba6\u003e] do_softirq+0x37/0x4d\n [\u003cc0128c12\u003e] ksoftirqd+0x56/0xc5\n [\u003cc0128bbc\u003e] ksoftirqd+0x0/0xc5\n [\u003cc0134649\u003e] kthread+0x38/0x5d\n [\u003cc0134611\u003e] kthread+0x0/0x5d\n [\u003cc0104477\u003e] kernel_thread_helper+0x7/0x10\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45b86a96f17cb2900f291129b0e67287400e45b2",
      "tree": "f7968bf36e3947ee42251f7eebc6ea5f24aca202",
      "parents": [
        "072ba49838b42c873c496d72c91bb237914cf3b6",
        "4143c5cb36331155a1823af8b3a8c761a59fed71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 09:16:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 09:16:20 2008 +0100"
      },
      "message": "Merge branch \u0027devel\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent\n"
    },
    {
      "commit": "ad474caca3e2a0550b7ce0706527ad5ab389a4d4",
      "tree": "6d4e5cbcee3a85230317a33d66655ece0c873f5c",
      "parents": [
        "5ac5c4d604bf894ef672a7971d03fefdc7ea7e49"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Nov 10 15:39:30 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 11 08:01:43 2008 +0100"
      },
      "message": "fix for account_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under rq-\u003elock\n\nImpact: fix hang/crash on ia64 under high load\n\nThis is ugly, but the simplest patch by far.\n\nUnlike other similar routines, account_group_exec_runtime() could be\ncalled \"implicitly\" from within scheduler after exit_notify(). This\nmeans we can race with the parent doing release_task(), we can\u0027t just\ncheck -\u003esignal !\u003d NULL.\n\nChange __exit_signal() to do spin_unlock_wait(\u0026task_rq(tsk)-\u003elock)\nbefore __cleanup_signal() to make sure -\u003esignal can\u0027t be freed under\ntask_rq(tsk)-\u003elock. Note that task_rq_unlock_wait() doesn\u0027t care\nabout the case when tsk changes cpu/rq under us, this should be OK.\n\nThanks to Ingo who nacked my previous buggy patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Doug Chapman \u003cdoug.chapman@hp.com\u003e\n"
    },
    {
      "commit": "4143c5cb36331155a1823af8b3a8c761a59fed71",
      "tree": "14ba50cd2a0acb5f18d7c657f08eaa586827fe27",
      "parents": [
        "bf5e6519b85b3853f2d0bb4f17a4e2eaeffeb574"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:46:01 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:47:37 2008 -0500"
      },
      "message": "ring-buffer: prevent infinite looping on time stamping\n\nImpact: removal of unnecessary looping\n\nThe lockless part of the ring buffer allows for reentry into the code\nfrom interrupts. A timestamp is taken, a test is preformed and if it\ndetects that an interrupt occurred that did tracing, it tries again.\n\nThe problem arises if the timestamp code itself causes a trace.\nThe detection will detect this and loop again. The difference between\nthis and an interrupt doing tracing, is that this will fail every time,\nand cause an infinite loop.\n\nCurrently, we test if the loop happens 1000 times, and if so, it will\nproduce a warning and disable the ring buffer.\n\nThe problem with this approach is that it makes it difficult to perform\nsome types of tracing (tracing the timestamp code itself).\n\nEach trace entry has a delta timestamp from the previous entry.\nIf a trace entry is reserved but and interrupt occurs and traces before\nthe previous entry is commited, the delta timestamp for that entry will\nbe zero. This actually makes sense in terms of tracing, because the\ninterrupt entry happened before the preempted entry was commited, so\none may consider the two happening at the same time. The order is\nstill preserved in the buffer.\n\nWith this idea, instead of trying to get a new timestamp if an interrupt\nmade it in between the timestamp and the test, the entry could simply\nmake the delta zero and continue. This will prevent interrupts or\ntracers in the timer code from causing the above loop.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "bf5e6519b85b3853f2d0bb4f17a4e2eaeffeb574",
      "tree": "d5560a28100aed24e3bb09e68c17a0ea1fbde07b",
      "parents": [
        "3ad4f597058301c97f362e500a32f63f5c950a45"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:46:00 2008 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Nov 10 21:47:35 2008 -0500"
      },
      "message": "ftrace: disable tracing on resize\n\nImpact: fix for bug on resize\n\nThis patch addresses the bug found here:\n\n http://bugzilla.kernel.org/show_bug.cgi?id\u003d11996\n\nWhen ftrace converted to the new unified trace buffer, the resizing of\nthe buffer was not protected as much as it was originally. If tracing\nis performed while the resize occurs, then the buffer can be corrupted.\n\nThis patch disables all ftrace buffer modifications before a resize\ntakes place.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\n"
    },
    {
      "commit": "ae99286b4f1be7788f2d6947c66a91dbd6351eec",
      "tree": "a403ffaeaad1cb38afa79e2cca40ecc00ea694ab",
      "parents": [
        "ee5f80a993539490a07477ff2526bf62c503fbb4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Nov 10 13:20:23 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@apollo.(none)",
        "time": "Mon Nov 10 22:39:27 2008 +0100"
      },
      "message": "nohz: disable tick_nohz_kick_tick() for now\n\nImpact: nohz powersavings and wakeup regression\n\ncommit fb02fbc14d17837b4b7b02dbb36142c16a7bf208 (NOHZ: restart tick\ndevice from irq_enter()) causes a serious wakeup regression.\n\nWhile the patch is correct it does not take into account that spurious\nwakeups happen on x86. A fix for this issue is available, but we just\nrevert to the .27 behaviour and let long running softirqs screw\nthemself.\n\nDisable it for now.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ee5f80a993539490a07477ff2526bf62c503fbb4",
      "tree": "4c23450fb35f9dfdb491506a3864647aae7e8e78",
      "parents": [
        "5ceb1a04187553e08c6ab60d30cee7c454ee139a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Nov 07 11:06:00 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@apollo.(none)",
        "time": "Mon Nov 10 22:36:39 2008 +0100"
      },
      "message": "irq: call __irq_enter() before calling the tick_idle_check\n\nImpact: avoid spurious ksoftirqd wakeups\n\nThe tick idle check which is called from irq_enter() was run before\nthe call to __irq_enter() which did not set the in_interrupt() bits in\npreempt_count. That way the raise of a softirq woke up softirqd for\nnothing as the softirq was handled on return from interrupt.\n\nCall __irq_enter() before calling into the tick idle check code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5ac5c4d604bf894ef672a7971d03fefdc7ea7e49",
      "tree": "ee7b71de46c0c71dec9e9ebb0efd2e66ce1c7a6d",
      "parents": [
        "f7160c7573615ec82c691e294cf80d920b5d588d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 10 10:46:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 10 10:51:51 2008 +0100"
      },
      "message": "sched: clean up debug info\n\nImpact: clean up and fix debug info printout\n\nWhile looking over the sched_debug code I noticed that we printed the rq\nschedstats for every cfs_rq, ammend this.\n\nAlso change nr_spead_over into an int, and fix a little buglet in\nmin_vruntime printing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb56d98e2a7530615899597551db685d68a2e852",
      "tree": "458a2dc64385f35799c55971ea7b3fe1a2ec218f",
      "parents": [
        "6209344f5a3795d34b7f2c0061f49802283b6bdd",
        "984f2f377fdfd098f5ae58d09ee04d5e29e6112b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:20:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 12:20:56 2008 -0800"
      },
      "message": "Merge branch \u0027cpus4096\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpumask: introduce new API, without changing anything, v3\n  cpumask: new API, v2\n  cpumask: introduce new API, without changing anything\n"
    },
    {
      "commit": "ca3273f9646694e0419cfb9d6c12deb1c9aff27c",
      "tree": "53e0b28edddd5c29691c9ccc8a7f3c8c11ee9c83",
      "parents": [
        "f29c9b1ccb52904ee442a933cf3dee628f9f4e62"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Nov 07 14:47:21 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 08:29:58 2008 +0100"
      },
      "message": "sched: fix memory leak in a failure path\n\nImpact: fix rare memory leak in the sched-domains manual reconfiguration code\n\nIn the failure path, rd is not attached to a sched domain,\nso it causes a leak.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f29c9b1ccb52904ee442a933cf3dee628f9f4e62",
      "tree": "836b4383a89a5aac64e50afd752a48b4bb0c167a",
      "parents": [
        "4bab0ea1d42dd1927af9df6fbf0003fc00617c50"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Nov 06 09:45:16 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 07 08:29:57 2008 +0100"
      },
      "message": "sched: fix a bug in sched domain degenerate\n\nImpact: re-add incorrectly eliminated sched domain layers\n\n(1) on i386 with SCHED_SMT and SCHED_MC enabled\n\t# mount -t cgroup -o cpuset xxx /mnt\n\t# echo 0 \u003e /mnt/cpuset.sched_load_balance\n\t# mkdir /mnt/0\n\t# echo 0 \u003e /mnt/0/cpuset.cpus\n\t# dmesg\n\tCPU0 attaching sched-domain:\n\t domain 0: span 0 level CPU\n\t  groups: 0\n\n(2) on i386 with SCHED_MC enabled but SCHED_SMT disabled\n\t# same with (1)\n\t# dmesg\n\tCPU0 attaching NULL sched-domain.\n\nThe bug is that some sched domains may be skipped unintentionally when\ndegenerating (optimizing) sched domains.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e252f4db187ef02d06c8551069d944d327b8bb9a",
      "tree": "0e704cc34161fc839ef203fbf71106de52e19a7d",
      "parents": [
        "2e93960c4d712096902c16fe5511fc91502c2527",
        "7838c15b8dd18e78a523513749e5b54bda07b0cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Block: use round_jiffies_up()\n  Add round_jiffies_up and related routines\n  block: fix __blkdev_get() for removable devices\n  generic-ipi: fix the smp_mb() placement\n  blk: move blk_delete_timer call in end_that_request_last\n  block: add timer on blkdev_dequeue_request() not elv_next_request()\n  bio: define __BIOVEC_PHYS_MERGEABLE\n  block: remove unused ll_new_mergeable()\n"
    },
    {
      "commit": "067ab19923673e3d8c982d877bedb9d65c976c22",
      "tree": "b11c20e4b5a6671355924b656f9348d4ece5523f",
      "parents": [
        "7597bc94d6f3bdccb086ac7f2ad91292fdaee2a4",
        "9fcd18c9e63e325dbd2b4c726623f760788d5aa8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:45:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:45:40 2008 -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: re-tune balancing\n  sched: fix buddies for group scheduling\n  sched: backward looking buddy\n  sched: fix fair preempt check\n  sched: cleanup fair task selection\n"
    },
    {
      "commit": "24eb089950ce44603b30a3145a2c8520e2b55bb1",
      "tree": "3cccd3e15589c693c8c4e6484a938d2343ef1abc",
      "parents": [
        "b41ad14c30acf023d09ac064096a4cf41248ce46"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Nov 06 12:53:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "cgroups: fix invalid cgrp-\u003edentry before cgroup has been completely removed\n\nThis fixes an oops when reading /proc/sched_debug.\n\nA cgroup won\u0027t be removed completely until finishing cgroup_diput(), so we\nshouldn\u0027t invalidate cgrp-\u003edentry in cgroup_rmdir().  Otherwise, when a\ngroup is being removed while cgroup_path() gets called, we may trigger\nNULL dereference BUG.\n\nThe bug can be reproduced:\n\n # cat test.sh\n #!/bin/sh\n mount -t cgroup -o cpu xxx /mnt\n for (( ; ; ))\n {\n\tmkdir /mnt/sub\n\trmdir /mnt/sub\n }\n # ./test.sh \u0026\n # cat /proc/sched_debug\n\nBUG: unable to handle kernel NULL pointer dereference at 00000038\nIP: [\u003cc045a47f\u003e] cgroup_path+0x39/0x90\n...\nCall Trace:\n [\u003cc0420344\u003e] ? print_cfs_rq+0x6e/0x75d\n [\u003cc0421160\u003e] ? sched_debug_show+0x72d/0xc1e\n...\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.26.x, 2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3854a37e8b767a51aba38ed6d22817b0631e33",
      "tree": "3b55cc93720b2e525460216b196ed20298ae985b",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 05 13:39:10 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 09:05:33 2008 +0100"
      },
      "message": "cpumask: introduce new API, without changing anything\n\nImpact: introduce new APIs\n\nWe want to deprecate cpumasks on the stack, as we are headed for\ngynormous numbers of CPUs.  Eventually, we want to head towards an\nundefined \u0027struct cpumask\u0027 so they can never be declared on stack.\n\n1) New cpumask functions which take pointers instead of copies.\n   (cpus_* -\u003e cpumask_*)\n\n2) Several new helpers to reduce requirements for temporary cpumasks\n   (cpumask_first_and, cpumask_next_and, cpumask_any_and)\n\n3) Helpers for declaring cpumasks on or offstack for large NR_CPUS\n   (cpumask_var_t, alloc_cpumask_var and free_cpumask_var)\n\n4) \u0027struct cpumask\u0027 for explicitness and to mark new-style code.\n\n5) Make iterator functions stop at nr_cpu_ids (a runtime constant),\n   not NR_CPUS for time efficiency and for smaller dynamic allocations\n   in future.\n\n6) cpumask_copy() so we can allocate less than a full cpumask eventually\n   (for alloc_cpumask_var), and so we can eliminate the \u0027struct cpumask\u0027\n   definition eventually.\n\n7) work_on_cpu() helper for doing task on a CPU, rather than saving old\n   cpumask for current thread and manipulating it.\n\n8) smp_call_function_many() which is smp_call_function_mask() except\n   taking a cpumask pointer.\n\nNote that this patch simply introduces the new functions and leaves\nthe obsolescent ones in place.  This is to simplify the transition\npatches.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c133c469d38043d5aadaa03f2fb840d88d1cf4f",
      "tree": "c9af63f0c25efc7454fc3f46b362c80056977341",
      "parents": [
        "89f97496e81d2112b5e41416fe3020688c443818"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Nov 06 08:42:48 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 06 08:42:48 2008 +0100"
      },
      "message": "Add round_jiffies_up and related routines\n\nThis patch (as1158b) adds round_jiffies_up() and friends.  These\nroutines work like the analogous round_jiffies() functions, except\nthat they will never round down.\n\nThe new routines will be useful for timeouts where we don\u0027t care\nexactly when the timer expires, provided it doesn\u0027t expire too soon.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "561920a0d2bb6d63343e83acfd784c0a77bd28d1",
      "tree": "7b87d9d867296d4a14e9b287129fcfd0b2cd1b47",
      "parents": [
        "e78042e5b83936b1d12a4b5bbb492bdd88ad76c6"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Oct 30 18:28:41 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 06 08:41:56 2008 +0100"
      },
      "message": "generic-ipi: fix the smp_mb() placement\n\nsmp_mb() is needed (to make the memory operations visible globally) before\nsending the ipi on the sender and the receiver (on Alpha atleast) needs\nsmp_read_barrier_depends() in the handler before reading the call_single_queue\nlist in a lock-free fashion.\n\nOn x86, x2apic mode register accesses for sending IPI\u0027s don\u0027t have serializing\nsemantics. So the need for smp_mb() before sending the IPI becomes more\ncritical in x2apic mode.\n\nRemove the unnecessary smp_mb() in csd_flag_wait(), as the presence of that\nsmp_mb() doesn\u0027t mean anything on the sender, when the ipi receiver is not\ndoing any thing special (like memory fence) after clearing the CSD_FLAG_WAIT.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1f29fae29709b4668979e244c09b2fa78ff1ad59",
      "tree": "d50129066cd1f131551eb364d04542dfcf923050",
      "parents": [
        "e21e696edb498c7f7eed42ba3096f6bbe13927b6"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Wed Nov 05 16:08:52 2008 -0600"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Nov 06 07:14:51 2008 +0800"
      },
      "message": "file capabilities: add no_file_caps switch (v4)\n\nAdd a no_file_caps boot option when file capabilities are\ncompiled into the kernel (CONFIG_SECURITY_FILE_CAPABILITIES\u003dy).\n\nThis allows distributions to ship a kernel with file capabilities\ncompiled in, without forcing users to use (and understand and\ntrust) them.\n\nWhen no_file_caps is specified at boot, then when a process executes\na file, any file capabilities stored with that file will not be\nused in the calculation of the process\u0027 new capability sets.\n\nThis means that booting with the no_file_caps boot option will\nnot be the same as booting a kernel with file capabilities\ncompiled out - in particular a task with  CAP_SETPCAP will not\nhave any chance of passing capabilities to another task (which\nisn\u0027t \"really\" possible anyway, and which may soon by killed\naltogether by David Howells in any case), and it will instead\nbe able to put new capabilities in its pI.  However since fI\nwill always be empty and pI is masked with fI, it gains the\ntask nothing.\n\nWe also support the extra prctl options, setting securebits and\ndropping capabilities from the per-process bounding set.\n\nThe other remaining difference is that killpriv, task_setscheduler,\nsetioprio, and setnice will continue to be hooked.  That will\nbe noticable in the case where a root task changed its uid\nwhile keeping some caps, and another task owned by the new uid\ntries to change settings for the more privileged task.\n\nChangelog:\n\tNov 05 2008: (v4) trivial port on top of always-start-\\\n\t\twith-clear-caps patch\n\tSep 23 2008: nixed file_caps_enabled when file caps are\n\t\tnot compiled in as it isn\u0027t used.\n\t\tDocument no_file_caps in kernel-parameters.txt.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "02479099c286894644f8e96c6bbb535ab64662fd",
      "tree": "df25bc51ddb31a44c91b672311b532de626fadcb",
      "parents": [
        "4793241be408b3926ee00c704d7da3b3faf3a05f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:10 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:15 2008 +0100"
      },
      "message": "sched: fix buddies for group scheduling\n\nImpact: scheduling order fix for group scheduling\n\nFor each level in the hierarchy, set the buddy to point to the right entity.\nTherefore, when we do the hierarchical schedule, we have a fair chance of\nending up where we meant to.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4793241be408b3926ee00c704d7da3b3faf3a05f",
      "tree": "d74144510d5258e5e941a8499538c3a0cdc868a7",
      "parents": [
        "d95f98d0691d3aba5e35850011946a08c9b36428"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:09 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:14 2008 +0100"
      },
      "message": "sched: backward looking buddy\n\nImpact: improve/change/fix wakeup-buddy scheduling\n\nCurrently we only have a forward looking buddy, that is, we prefer to\nschedule to the task we last woke up, under the presumption that its\ngoing to consume the data we just produced, and therefore will have\ncache hot benefits.\n\nThis allows co-waking producer/consumer task pairs to run ahead of the\npack for a little while, keeping their cache warm. Without this, we\nwould interleave all pairs, utterly trashing the cache.\n\nThis patch introduces a backward looking buddy, that is, suppose that\nin the above scenario, the consumer preempts the producer before it\ncan go to sleep, we will therefore miss the wakeup from consumer to\nproducer (its already running, after all), breaking the cycle and\nreverting to the cache-trashing interleaved schedule pattern.\n\nThe backward buddy will try to schedule back to the task that woke us\nup in case the forward buddy is not available, under the assumption\nthat the last task will be the one with the most cache hot task around\nbarring current.\n\nThis will basically allow a task to continue after it got preempted.\n\nIn order to avoid starvation, we allow either buddy to get wakeup_gran\nahead of the pack.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d95f98d0691d3aba5e35850011946a08c9b36428",
      "tree": "51cef12b6ad712379b63b04bd5e16292e0bbe8f0",
      "parents": [
        "f4b6755fb37595da3630d1d6fc130ea6888cd48f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:13 2008 +0100"
      },
      "message": "sched: fix fair preempt check\n\nImpact: fix cross-class preemption\n\nInter-class wakeup preemptions should go on class order.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4b6755fb37595da3630d1d6fc130ea6888cd48f",
      "tree": "04501dab4a1573b5b6bc6932db08262806c2c0e2",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 04 21:25:07 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:30:13 2008 +0100"
      },
      "message": "sched: cleanup fair task selection\n\nImpact: cleanup\n\nClean up task selection\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "072ba49838b42c873c496d72c91bb237914cf3b6",
      "tree": "305ede989155e1d213255ead9101331bfd09f1cb",
      "parents": [
        "42ec632e7b0185d3776aa5d23380cbdc963151f2"
      ],
      "author": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Sun Oct 26 15:26:57 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 05 10:22:42 2008 +0100"
      },
      "message": "ftrace: fix breakage in bin_fmt results\n\nIn 777e208d40d0953efc6fb4ab58590da3f7d8f02d we changed from outputting\nfield-\u003ecpu (a char) to iter-\u003ecpu (unsigned int), increasing the resulting\nstructure size by 3 bytes.\n\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "818e3dd30a4ff34fff6d90e87ae59c73f6a53691",
      "tree": "ab9db9dec53a0c0383476c8dfca17d75c83317f6",
      "parents": [
        "b3aa557722b3d5858f14ca559e03461c24125aaf"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 31 09:58:35 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 11:10:04 2008 +0100"
      },
      "message": "tracing, ring-buffer: add paranoid checks for loops\n\nWhile writing a new tracer, I had a bug where I caused the ring-buffer\nto recurse in a bad way. The bug was with the tracer I was writing\nand not the ring-buffer itself. But it took a long time to find the\nproblem.\n\nThis patch adds paranoid checks into the ring-buffer infrastructure\nthat will catch bugs of this nature.\n\nNote: I put the bug back in the tracer and this patch showed the error\n      nicely and prevented the lockup.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3aa557722b3d5858f14ca559e03461c24125aaf",
      "tree": "37a8814cd1d1584e77d9d999797ff0f0de8ed19c",
      "parents": [
        "c2c80529460095035752bf0ecc1af82c1e0f6e0f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 31 15:44:07 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 10:41:29 2008 +0100"
      },
      "message": "ftrace: use kretprobe trampoline name to test in output\n\nImpact: ia64+tracing build fix\n\nWhen a function is kprobed, the return address is set to the\nkprobe_trampoline, or something similar. This caused the output\nof the trace to look confusing when the parent seemed to be this\n\"kprobe_trampoline\" function.\n\nTo fix this, Abhishek Sagar added a test of the instruction pointer\nof the parent to see if it matched the kprobe_trampoline. If it\ndid, the output would print a \"[unknown/kretprobe\u0027d]\" instead.\n\nUnfortunately, not all archs do this the same way, and the trampoline\nfunction may not be exported, which causes failures in builds.\n\nThis patch will compare the name instead of the pointer to see\nif it matches. This prevents us from depending on a function from\nbeing exported, and should work on all archs. The worst that can\nhappen is that an arch might use a different name and then we\ngo back to the confusing output. At least the arch will still build.\n\nReported-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nAcked-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\n"
    },
    {
      "commit": "c2c80529460095035752bf0ecc1af82c1e0f6e0f",
      "tree": "e1fe0fdccb2d467666bfc8ed81f8a38016764f1c",
      "parents": [
        "45beca08dd8b6d6a65c5ffd730af2eac7a2c7a03"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 19:50:41 2008 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 10:12:13 2008 +0100"
      },
      "message": "tracing, alpha: undefined reference to `save_stack_trace\u0027\n\nImpact: build fix on !stacktrace architectures\n\nonly select STACKTRACE on architectures that have STACKTRACE_SUPPORT\n\n... since we also need to ifdef out the guts of ftrace_trace_stack().\nWe also want to disallow setting TRACE_ITER_STACKTRACE in trace_flags\non such configs, but that can wait.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "28959742c14918f153c1de641bb12b4ea44315a1",
      "tree": "d58404ebbdd572a2b86d62bafd7af0697cd9624e",
      "parents": [
        "4b30fbde910dd40b831528e916cb8a91823f618f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 01 18:20:09 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 12:40:38 2008 -0700"
      },
      "message": "PM_TEST_SUSPEND should depend on RTC_CLASS, not RTC_LIB\n\nInsufficient dependency - we really want CONFIG_RTC_CLASS\u003dy there.\nThat will give us CONFIG_RTC_LIB\u003dy, so the old dependency can be\nsimply replaced.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42c0202363194007a1ac377d047a95aa39246eb0",
      "tree": "305e145fe0ee60580a127a7b72ce0d7ad582258e",
      "parents": [
        "cdce1f0931831cebfbeb811a266a2f4adf5c8a35"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:53:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:53:58 2008 -0700"
      },
      "message": "reserve_region_with_split: Fix GFP_KERNEL usage under spinlock\n\nThis one apparently doesn\u0027t generate any warnings, because the function\nis only used during system bootup, when the warnings are disabled.  But\nit\u0027s still very wrong.\n\nThe __reserve_region_with_split() function is called with the\nresource_lock held for writing, so it must only ever do GFP_ATOMIC\nallocations.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b23e30b48b0b634fdc8c8198ea9dfec8c091968",
      "tree": "d4c172bda3212250c44a07b24968877d414eb496",
      "parents": [
        "147db6e9474b444149238b77ceae335ca20e7b4a",
        "a0e5ebdc1d16871222f9815f5066e4ca47e368fa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 18:32:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 18:32:03 2008 -0700"
      },
      "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: remove sched-design.txt from 00-INDEX\n  sched: change sched_debug\u0027s mode to 0444\n"
    },
    {
      "commit": "147db6e9474b444149238b77ceae335ca20e7b4a",
      "tree": "fefae0ecba79917efbbf22054474271af8f291ae",
      "parents": [
        "43908195e04ee27779a60c55b5bb47aebf1c46ae",
        "9244489a7b69fe0746dc7cb3957f02e05bd1ceb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 18:31:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 18:31:42 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: handle archs that do not support irqs_disabled_flags\n"
    },
    {
      "commit": "43908195e04ee27779a60c55b5bb47aebf1c46ae",
      "tree": "8f60144840b81677ce195e6ddf09b78fd8078226",
      "parents": [
        "7105212bd309752b589a3ba816afdd7fed190b85",
        "d68612b257b5f4ea2e6535859c5a26b10011a9df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 18:31:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 18:31:27 2008 -0700"
      },
      "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  resources: fix x86info results ioremap.c:226 __ioremap_caller+0xf2/0x2d6() WARNINGs\n"
    },
    {
      "commit": "9244489a7b69fe0746dc7cb3957f02e05bd1ceb0",
      "tree": "f0fb4a422667f67e7e3ac587bbbc6b03fa83756a",
      "parents": [
        "f3384b28a05624783b53836ccfed95ecde66a7ad"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Oct 24 09:42:59 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 31 00:03:26 2008 +0100"
      },
      "message": "ftrace: handle archs that do not support irqs_disabled_flags\n\nImpact: build fix on non-lockdep architectures\n\nSome architectures do not support a way to read the irq flags that\nis set from \"local_irq_save(flags)\" to determine if interrupts were\ndisabled or enabled. Ftrace uses this information to display to the user\nif the trace occurred with interrupts enabled or disabled.\n\nBesides the fact that those archs that do not support this will fail to\ncompile, unless they fix it, we do not want to have the trace simply\nsay interrupts were not disabled or they were enabled, without knowing\nthe real answer.\n\nThis patch adds a \u0027X\u0027 in the output to let the user know that the\narchitecture they are running on does not support a way for the tracer\nto determine if interrupts were enabled or disabled. It also lets those\nsame archs compile with tracing enabled.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b54968f667585aa4b98a7225f4d4df63917703c",
      "tree": "6d354dade8bfe96f00bbba55eaf3c87fc9593fe4",
      "parents": [
        "effdb9492de01a51f8123e62e87e3330688f9bf1",
        "f3384b28a05624783b53836ccfed95ecde66a7ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:44:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:44:09 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: fix trace_nop config select\n  ftrace: perform an initialization for ftrace to enable it\n"
    },
    {
      "commit": "d25141a818383b3c3b09f065698c544a7a0ec6e7",
      "tree": "fb2f868b42ccdde710ddf426e1c90f8ffcc83368",
      "parents": [
        "e74481e23283fb080d4591c258de20785cc3b6c3"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Oct 29 14:01:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:46 2008 -0700"
      },
      "message": "\u0027kill sig -1\u0027 must only apply to caller\u0027s namespace\n\nCurrently \"kill \u003csig\u003e -1\" kills processes in all namespaces and breaks the\nisolation of namespaces.  Earlier attempt to fix this was discussed at:\n\n\thttp://lkml.org/lkml/2008/7/23/148\n\nAs suggested by Oleg Nesterov in that thread, use \"task_pid_vnr() \u003e 1\"\ncheck since task_pid_vnr() returns 0 if process is outside the caller\u0027s\nnamespace.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nTested-by: Daniel Hokka Zakrisson \u003cdaniel@hozac.com\u003e\nSigned-off-by: 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": "ce05fcc30ea41c85f9d50bee1ce289f7cb7fb223",
      "tree": "925dff669191e3a539febf74ad7aadc940ff3d88",
      "parents": [
        "84ad6d70001df969d7e8569dd18d98d9550277fb"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Oct 29 14:01:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:46 2008 -0700"
      },
      "message": "kernel/profile: fix profile_init() section mismatch\n\nprofile_init() calls in to alloc_bootmem() on early initialization.  While\nalloc_bootmem() is __init, the reference itself is safe in that it is\ntucked below a !slab_is_available() check.  So, flag profile_init() as\n__ref.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51308ee59dee1136ed599d875ea8968d7be55c91",
      "tree": "8976509c5fbf8171774e7eb7007cf0d4d00f0f83",
      "parents": [
        "00c2e63c31d0f431952ff2a671c5c6997dd4f8b2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: simplify freezer_change_state()\n\nJust call unfreeze_cgroup() if goal_state \u003d\u003d THAWED, and call\ntry_to_freeze_cgroup() if goal_state \u003d\u003d FROZEN.\n\nNo behavior has been changed.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "00c2e63c31d0f431952ff2a671c5c6997dd4f8b2",
      "tree": "2277b400fef79e55c13d7045aa63d5bed9ad5883",
      "parents": [
        "80a6a2cf3bebcf20285cf05373b9c5ec96816577"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: use thaw_process() in unfreeze_cgroup()\n\nDon\u0027t duplicate the implementation of thaw_process().\n\n[akpm@linux-foundation.org: make __thaw_process() static]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "80a6a2cf3bebcf20285cf05373b9c5ec96816577",
      "tree": "b934c6b9c55e7f0979312bdec9f679680d73aac1",
      "parents": [
        "7ccb97437bcc818d0ba6067513475f6ee8177a15"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: remove redundant check in freezer_can_attach()\n\nIt is sufficient to check if @task is frozen, and no need to check if the\noriginal freezer is frozen.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "7ccb97437bcc818d0ba6067513475f6ee8177a15",
      "tree": "5d9209002ea50383ffc256f89c25743552b5c637",
      "parents": [
        "df8bc08c192f00f155185bfd6f052d46a728814a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: fix improper BUG_ON() causing oops\n\nThe BUG_ON() should be protected by freezer-\u003elock, otherwise it can be\ntriggered easily when a task has been unfreezed but the corresponding\ncgroup hasn\u0027t been changed to FROZEN state.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "a9cf4ddb3b2ce03c3027929b22a920aeff933009",
      "tree": "8c8162f098ea1f75c96277d41eb6c42afa6b31ea",
      "parents": [
        "e946217e4fdaa67681bbabfa8e6b18641921f750"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Oct 30 15:23:34 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 30 11:37:57 2008 +0100"
      },
      "message": "sched: change sched_debug\u0027s mode to 0444\n\nImpact: change /proc/sched/debug from rw-r--r-- to r--r--r--\n\n/proc/sched_debug is read-only.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3384b28a05624783b53836ccfed95ecde66a7ad",
      "tree": "e5fa8281ef1e4a9e638160204291556d42ed8a06",
      "parents": [
        "0b6e4d56bf71866a2b58daa8323cf747988ce7e4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 29 11:15:57 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 29 17:21:05 2008 +0100"
      },
      "message": "ftrace: fix trace_nop config select\n\nImpact: build fix on non-function-tracing architectures\n\nThe trace_nop is the tracer that is defined when no tracer is set in\nthe ftrace infrastructure.\n\nThe trace_nop was mistakenly selected by HAVE_FTRACE due to the confusion\nbetween ftrace infrastructure and the ftrace function tracer (which has\nbeen solved by renaming the function tracer).\n\nThis patch changes the select to the approriate TRACING.\n\nThis patch should fix compile errors on architectures that do not define\nthe FUNCTION_TRACER.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d68612b257b5f4ea2e6535859c5a26b10011a9df",
      "tree": "abbc11c7ec95d97d11c9c7f9e0e87fd4ef0b4a58",
      "parents": [
        "e946217e4fdaa67681bbabfa8e6b18641921f750"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Oct 28 11:45:42 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 19:56:17 2008 +0100"
      },
      "message": "resources: fix x86info results ioremap.c:226 __ioremap_caller+0xf2/0x2d6() WARNINGs\n\nImpact: avoid false-positive WARN_ON()\n\nAndi Kleen reported:\n\u003e When running x86info on a 2.6.27-git8 system I get\n\u003e\n\u003e resource map sanity check conflict: 0x9e000 0x9efff 0x10000 0x9e7ff System RAM\n\u003e ------------[ cut here ]------------\n\u003e WARNING: at /home/lsrc/linux/arch/x86/mm/ioremap.c:226 __ioremap_caller+0xf2/0x2d6()\n\u003e ...\n\nSome of the pages below the 1MB ISA addresses will be shared typically by both\nBIOS and system usable RAM. For example:\n\tBIOS-e820: 0000000000000000 - 000000000009f800 (usable)\n\tBIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)\n\nx86info reads the low physical address using /dev/mem, which internally\nuses ioremap() for accessing non RAM pages. ioremap() of such low\npages conflicts with multiple resource entities leading to the\nabove warning.\n\nChange the iomem_map_sanity_check() to allow mapping a page spanning multiple\nresource entities (minimum granularity that one can map is a page anyhow).\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b6e4d56bf71866a2b58daa8323cf747988ce7e4",
      "tree": "abda53ec941c887283d496abf5d364ba80f72d5e",
      "parents": [
        "e946217e4fdaa67681bbabfa8e6b18641921f750"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Oct 28 20:17:38 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 19:15:58 2008 +0100"
      },
      "message": "ftrace: perform an initialization for ftrace to enable it\n\nImpact: corrects a bug which made the non-dyn function tracer not functional\n\nWith latest git, the non-dynamic function tracer didn\u0027t get any trace.\n\nThe problem was the fact that ftrace_enabled wasn\u0027t initialized to 1\nbecause ftrace hasn\u0027t any init function when DYNAMIC_FTRACE is disabled.\n\nSo when a tracer tries to register an ftrace_ops struct,\n__register_ftrace_function failed to set the hook.\n\nThis patch corrects it by setting an init function to initialize\nftrace during the boot.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e946217e4fdaa67681bbabfa8e6b18641921f750",
      "tree": "057ad6cb5869e20db7b93f154319560b55cbc725",
      "parents": [
        "a1865769254dd4eefbc1e857d17bc2a77d5f8580",
        "60063a66236c15f5613f91390631e06718689782"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:52:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:52:25 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)\n  ftrace: fix current_tracer error return\n  tracing: fix a build error on alpha\n  ftrace: use a real variable for ftrace_nop in x86\n  tracing/ftrace: make boot tracer select the sched_switch tracer\n  tracepoint: check if the probe has been registered\n  asm-generic: define DIE_OOPS in asm-generic\n  trace: fix printk warning for u64\n  ftrace: warning in kernel/trace/ftrace.c\n  ftrace: fix build failure\n  ftrace, powerpc, sparc64, x86: remove notrace from arch ftrace file\n  ftrace: remove ftrace hash\n  ftrace: remove mcount set\n  ftrace: remove daemon\n  ftrace: disable dynamic ftrace for all archs that use daemon\n  ftrace: add ftrace warn on to disable ftrace\n  ftrace: only have ftrace_kill atomic\n  ftrace: use probe_kernel\n  ftrace: comment arch ftrace code\n  ftrace: return error on failed modified text.\n  ftrace: dynamic ftrace process only text section\n  ...\n"
    },
    {
      "commit": "0d8762c9ee40cf83d5dbf3a22843bc566912b592",
      "tree": "d3ae691a55226e3671caa1f837e127693f6742e8",
      "parents": [
        "cf76dddb22c019f03ada6479210f894f19bd591b",
        "6afe40b4dace385d7ba2faf24b352f066f3b71bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:49:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:49:27 2008 -0700"
      },
      "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  lockdep: fix irqs on/off ip tracing\n  lockdep: minor fix for debug_show_all_locks()\n  x86: restore the old swiotlb alloc_coherent behavior\n  x86: use GFP_DMA for 24bit coherent_dma_mask\n  swiotlb: remove panic for alloc_coherent failure\n  xen: compilation fix of drivers/xen/events.c on IA64\n  xen: portability clean up and some minor clean up for xencomm.c\n  xen: don\u0027t reload cr3 on suspend\n  kernel/resource: fix reserve_region_with_split() section mismatch\n  printk: remove unused code from kernel/printk.c\n"
    },
    {
      "commit": "cf76dddb22c019f03ada6479210f894f19bd591b",
      "tree": "5a2e478fcf7d001f2d369141b9698398c352bf5e",
      "parents": [
        "8ca6215502462f564d7bcae2d8dcc825aa95d743",
        "3786fc710c32b61464c322e5cd0c3d1d34ae72d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:48:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:48:25 2008 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: make variable static\n"
    },
    {
      "commit": "8ca6215502462f564d7bcae2d8dcc825aa95d743",
      "tree": "1534f8ad77640ab6f6d9471679b6e4c2d11e739c",
      "parents": [
        "f8245e91a5121acc435e509aa56cd04d445a74c7",
        "4078e359c4688541a0093fde0dff35dc7190c4f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:46:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 28 09:46:20 2008 -0700"
      },
      "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 documentation reference for sched_min_granularity_ns\n  sched: virtual time buddy preemption\n  sched: re-instate vruntime based wakeup preemption\n  sched: weaken sync hint\n  sched: more accurate min_vruntime accounting\n  sched: fix a find_busiest_group buglet\n  sched: add CONFIG_SMP consistency\n"
    },
    {
      "commit": "60063a66236c15f5613f91390631e06718689782",
      "tree": "3625c15ade69e4f8cbb85d737290da1312123241",
      "parents": [
        "21798a84ab383cdac0e7ee3368e0792b718b867d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Oct 28 10:44:24 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 16:33:47 2008 +0100"
      },
      "message": "ftrace: fix current_tracer error return\n\nThe commit (in linux-tip) c2931e05ec5965597cbfb79ad332d4a29aeceb23\n ( ftrace: return an error when setting a nonexistent tracer )\nadded useful code that would error when a bad tracer was written into\nthe current_tracer file.\n\nBut this had a bug if the amount written was more than the amount read by\nthat code. The first iteration would set the tracer correctly, but since\nit did not consume the rest of what was written (usually whitespace), the\nuserspace utility would continue to write what was not consumed. This\nsecond iteration would fail to find a tracer and return -EINVAL. Funny\nthing is that the tracer would have already been set.\n\nThis patch just consumes all the data that is written to the file.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6afe40b4dace385d7ba2faf24b352f066f3b71bf",
      "tree": "017e672e83a1257b084036c2e79adef95a81b9c3",
      "parents": [
        "46fec7ac40e452a2ea5e63648d98b6bb2b5898f9"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Oct 28 11:14:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 11:19:07 2008 +0100"
      },
      "message": "lockdep: fix irqs on/off ip tracing\n\nImpact: fix lockdep lock-api-caller output when irqsoff tracing is enabled\n\n81d68a96 \"ftrace: trace irq disabled critical timings\" added wrappers around\ntrace_hardirqs_on/off_caller. However these functions use\n__builtin_return_address(0) to figure out which function actually disabled\nor enabled irqs. The result is that we save the ips of trace_hardirqs_on/off\ninstead of the real caller. Not very helpful.\n\nHowever since the patch from Steven the ip already gets passed. So use that\nand get rid of __builtin_return_address(0) in these two functions.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "46fec7ac40e452a2ea5e63648d98b6bb2b5898f9",
      "tree": "acde64c08983ff2421c33144c0ce1215218fde9f",
      "parents": [
        "03967c5267b0e7312d1d55dc814d94cf190ca573"
      ],
      "author": {
        "name": "qinghuang feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Tue Oct 28 17:24:28 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 10:30:04 2008 +0100"
      },
      "message": "lockdep: minor fix for debug_show_all_locks()\n\nWhen we failed to get tasklist_lock eventually (count equals 0),\nwe should only print \" ignoring it.\\n\", and not print\n\" locked it.\\n\" needlessly.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21798a84ab383cdac0e7ee3368e0792b718b867d",
      "tree": "3b13df7175f795b5d8020ad0c00c432bde4d606a",
      "parents": [
        "8115f3f0c939c5db0fe3c6c6c58911fd3a205b1e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Oct 28 09:43:26 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 28 09:53:28 2008 +0100"
      },
      "message": "tracing: fix a build error on alpha\n\nImpact: build fix on Alpha\n\nWhen tracing is enabled, some arch have included \u003clinux/irqflags.h\u003e\non their \u003casm/system.h\u003e but others like alpha or m68k don\u0027t.\n\nBuild error on alpha:\n\nkernel/trace/trace.c: In function \u0027tracing_cpumask_write\u0027:\nkernel/trace/trace.c:2145: error: implicit declaration of function \u0027raw_local_irq_disable\u0027\nkernel/trace/trace.c:2162: error: implicit declaration of function \u0027raw_local_irq_enable\u0027\n\nTested on Alpha through a cross-compiler (should correct a similar issue on m68k).\n\nReported-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea31e72d753e5817a97de552f152d0cb55c7defc",
      "tree": "a709254a0cd46c764f69649153de26b1d1233082",
      "parents": [
        "f66af459a931f25807e1df7915b2b66bb5978d82"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 22 19:26:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 16:47:13 2008 +0100"
      },
      "message": "tracing/ftrace: make boot tracer select the sched_switch tracer\n\nImpact: build fix\n\nIf the boot tracer is selected but not the sched_switch,\nthere will be a build failure:\n\n kernel/built-in.o: In function `boot_trace_init\u0027:\n trace_boot.c:(.text+0x5ee38): undefined reference to `sched_switch_trace\u0027\n kernel/built-in.o: In function `disable_boot_trace\u0027:\n (.text+0x5eee1): undefined reference to `tracing_stop_cmdline_record\u0027\n kernel/built-in.o: In function `enable_boot_trace\u0027:\n (.text+0x5ef11): undefined reference to `tracing_start_cmdline_record\u0027\n\nThis patch fixes it.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f66af459a931f25807e1df7915b2b66bb5978d82",
      "tree": "bb88917429fe1ea4f6d6e088ead040b25d205a86",
      "parents": [
        "5209f08dc8e5f520ca81b87fa9a7142f58a109f4"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 22 19:14:55 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 16:45:46 2008 +0100"
      },
      "message": "tracepoint: check if the probe has been registered\n\nImpact: fix kernel crash that can trigger during tracing\n\nIf we try to remove a probe that has not been already registered,\nthe tracepoint_entry_remove_probe() function will dereference a NULL\npointer.\n\nCheck the probe before removing it to avoid crashes.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2862c9470beb842d3f1c1965b03a2112114c160",
      "tree": "9e906a19340ba4f4d4145977c82a2b1a46d4edd7",
      "parents": [
        "4944dd62de21230af039eda7cd218e9a09021d11"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Oct 27 17:43:28 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 11:31:58 2008 +0100"
      },
      "message": "trace: fix printk warning for u64\n\nA powerpc ppc64_defconfig build produces these warnings:\n\nkernel/trace/ring_buffer.c: In function \u0027rb_add_time_stamp\u0027:\nkernel/trace/ring_buffer.c:969: warning: format \u0027%llu\u0027 expects type \u0027long long unsigned int\u0027, but argument 2 has type \u0027u64\u0027\nkernel/trace/ring_buffer.c:969: warning: format \u0027%llu\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027u64\u0027\nkernel/trace/ring_buffer.c:969: warning: format \u0027%llu\u0027 expects type \u0027long long unsigned int\u0027, but argument 4 has type \u0027u64\u0027\n\nJust cast the u64s to unsigned long long like we do everywhere else.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4944dd62de21230af039eda7cd218e9a09021d11",
      "tree": "bac70f7bab8506c7e1b0408bacbdb0b1d77262e9",
      "parents": [
        "f17845e5d97ead8fbdadfd40039e058ec7cf4a42",
        "0173a3265b228da319ceb9c1ec6a5682fd1b2d92"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 10:50:54 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 27 10:50:54 2008 +0100"
      },
      "message": "Merge commit \u0027v2.6.28-rc2\u0027 into tracing/urgent\n"
    },
    {
      "commit": "2077776641b6ffb0049f13018d2e162340ec51c7",
      "tree": "7fa3a58a4a8645f7a756e1f05c3f1d48ed6b639b",
      "parents": [
        "b1cd2ee3b95f1c3108c68c82342c614e58ce1f13"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Tue Oct 21 16:11:20 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 26 09:38:17 2008 -0700"
      },
      "message": "cgroup: remove unused variable\n\n/scratch/sfr/next/kernel/cgroup.c: In function \u0027cgroup_tasks_start\u0027:\n/scratch/sfr/next/kernel/cgroup.c:2107: warning: unused variable \u0027i\u0027\n\nIntroduced in commit cc31edceee04a7b87f2be48f9489ebb72d264844 \"cgroups:\nconvert tasks file to use a seq_file with shared pid array\".\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4403b406d4369a275d483ece6ddee0088cc0d592",
      "tree": "caefd6b7aabc1c517942be1abf25d841b181f323",
      "parents": [
        "e013e13bf605b9e6b702adffbe2853cfc60e7806"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 25 19:53:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 25 19:53:38 2008 -0700"
      },
      "message": "Revert \"Call init_workqueues before pre smp initcalls.\"\n\nThis reverts commit a802dd0eb5fc97a50cf1abb1f788a8f6cc5db635 by moving\nthe call to init_workqueues() back where it belongs - after SMP has been\ninitialized.\n\nIt also moves stop_machine_init() - which needs workqueues - to a later\nphase using a core_initcall() instead of early_initcall().  That should\nsatisfy all ordering requirements, and was apparently the reason why\ninit_workqueues() was moved to be too early.\n\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f17845e5d97ead8fbdadfd40039e058ec7cf4a42",
      "tree": "14c053143dad362fce72cc77f2beb41ab6c43dec",
      "parents": [
        "66b0de3569b00f61978782b9f97aa4803dbec0fb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:47:10 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:52:44 2008 +0200"
      },
      "message": "ftrace: warning in kernel/trace/ftrace.c\n\nthis warning:\n\n  kernel/trace/ftrace.c:189: warning: ‘frozen_record_count’ defined but not used\n\ntriggers because frozen_record_count is only used in the KCONFIG_MARKERS\ncase. Move the variable it there.\n\nAlas, this frozen-record facility seems to have little use. The\nfrozen_record_count variable is not used by anything, nor the flags.\n\nSo this section might need a bit of dead-code-removal care as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f3a490480d8ab96e0fe30a41f80f14e6a0c579d",
      "tree": "addbfb1207d816b1e1f5e4ab75f95a08c7b15202",
      "parents": [
        "464b75273f64be7c81fee975bd6ca9593df3427b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:03 2008 +0200"
      },
      "message": "sched: virtual time buddy preemption\n\nSince we moved wakeup preemption back to virtual time, it makes sense to move\nthe buddy stuff back as well. The purpose of the buddy scheduling is to allow\na quickly scheduling pair of tasks to run away from the group as far as a\nregular busy task would be allowed under wakeup preemption.\n\nThis has the advantage that the pair can ping-pong for a while, enjoying\ncache-hotness. Without buddy scheduling other tasks would interleave destroying\nthe cache.\n\nAlso, it saves a word in cfs_rq.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "464b75273f64be7c81fee975bd6ca9593df3427b",
      "tree": "c7efd037f65129ba9bff5b8a4a61d506e904715f",
      "parents": [
        "0d13033bc9257fe65c1aa25e84568b1608da0901"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:15 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:02 2008 +0200"
      },
      "message": "sched: re-instate vruntime based wakeup preemption\n\nThe advantage is that vruntime based wakeup preemption has a better\nconceptual model. Here wakeup_gran \u003d 0 means: preempt when \u0027fair\u0027.\nTherefore wakeup_gran is the granularity of unfairness we allow in order\nto make progress.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d13033bc9257fe65c1aa25e84568b1608da0901",
      "tree": "312a3bbad942d2c27ee7e394bd5328dd9fe58fe1",
      "parents": [
        "1af5f730fc1bf7c62ec9fb2d307206e18bf40a69"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Oct 24 11:06:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:01 2008 +0200"
      },
      "message": "sched: weaken sync hint\n\nMysql+oltp and pgsql+oltp peaks are still shifted right. The below puts\nthe peaks back to 1 client/server pair per core.\n\nUse the avg_overlap information to weaken the sync hint.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1af5f730fc1bf7c62ec9fb2d307206e18bf40a69",
      "tree": "6b9a1e5aa380abaaca68d3ba427ecec1a3b51a88",
      "parents": [
        "01c8c57d668d94f1036d9ab11a22aa24ca16a35d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:13 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:51:00 2008 +0200"
      },
      "message": "sched: more accurate min_vruntime accounting\n\nMike noticed the current min_vruntime tracking can go wrong and skip the\ncurrent task. If the only remaining task in the tree is a nice 19 task\nwith huge vruntime, new tasks will be inserted too far to the right too,\ncausing some interactibity issues.\n\nmin_vruntime can only change due to the leftmost entry disappearing\n(dequeue_entity()), or by the leftmost entry being incremented past the\nnext entry, which elects a new leftmost (__update_curr())\n\nDue to the current entry not being part of the actual tree, we have to\ncompare the leftmost tree entry with the current entry, and take the\nleftmost of these two.\n\nSo create a update_min_vruntime() function that takes computes the\nleftmost vruntime in the system (either tree of current) and increases\nthe cfs_rq-\u003emin_vruntime if the computed value is larger than the\npreviously found min_vruntime. And call this from the two sites we\u0027ve\nidentified that can change min_vruntime.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "01c8c57d668d94f1036d9ab11a22aa24ca16a35d",
      "tree": "a5bad4df146982e55bdd9dba73912f6bace036df",
      "parents": [
        "8c82a17e9c924c0e9f13e75e4c2f6bca19a4b516"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 24 11:06:12 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:50:59 2008 +0200"
      },
      "message": "sched: fix a find_busiest_group buglet\n\nIn one of the group load balancer patches:\n\n\tcommit 408ed066b11cf9ee4536573b4269ee3613bd735e\n\tAuthor: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\tDate:   Fri Jun 27 13:41:28 2008 +0200\n\tSubject: sched: hierarchical load vs find_busiest_group\n\nThe following change:\n\n-               if (max_load - this_load + SCHED_LOAD_SCALE_FUZZ \u003e\u003d\n+               if (max_load - this_load + 2*busiest_load_per_task \u003e\u003d\n                                        busiest_load_per_task * imbn) {\n\nmade the condition always true, because imbn is [1,2].\nTherefore, remove the 2*, and give the it a fair chance.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8c82a17e9c924c0e9f13e75e4c2f6bca19a4b516",
      "tree": "d535f46a917e14e90deccb29ad00aac016ad18dd",
      "parents": [
        "4ce72a2c063a7fa8e42a9435440ae3364115a58d",
        "57f8f7b60db6f1ed2c6918ab9230c4623a9dbe37"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:48:46 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 24 12:48:46 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.28-rc1\u0027 into sched/urgent\n"
    },
    {
      "commit": "bea92112415635ecb7e681355834413c7c048f67",
      "tree": "b725a07dfe256d9bb2c28d3cb8b810a2a1be17d7",
      "parents": [
        "acff181d3574244e651913df77332e897b88bff4"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Oct 22 19:31:11 2008 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 21:54:34 2008 +0200"
      },
      "message": "kernel/resource: fix reserve_region_with_split() section mismatch\n\nImpact: cleanup, small kernel text size reduction, no functionality changed\n\nreserve_region_with_split() calls in to __reserve_region_with_split(),\nwhich is an __init function. The only caller of reserve_region_with_split()\nis an __init function, so make it __init too.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "acff181d3574244e651913df77332e897b88bff4",
      "tree": "ff3ccaeb76856d7b6e14a6bf35f3d356be34adb9",
      "parents": [
        "d2441183dc222d12961ff2201f5086c846505d93"
      ],
      "author": {
        "name": "roel kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Oct 21 19:49:09 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 23 21:54:29 2008 +0200"
      },
      "message": "printk: remove unused code from kernel/printk.c\n\nboth log_buf_copy() and log_buf_len are unused.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d2441183dc222d12961ff2201f5086c846505d93",
      "tree": "dcede8bab98871d7fd4739a063c533d6fd79921d",
      "parents": [
        "88ed86fee6651033de9b7038dac7869a9f19775a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:07:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:09:00 2008 -0700"
      },
      "message": "Fix compile warning in kernel/params.c\n\nMove free_module_param_attrs() into the CONFIG_MODULES section, since\nit\u0027s only used inside there. Thus avoiding the warning\n\n  kernel/params.c:514: warning: \u0027free_module_param_attrs\u0027 defined but not used\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88ed86fee6651033de9b7038dac7869a9f19775a",
      "tree": "38b638d2e7cba110ec271275738f221feb7e0a37",
      "parents": [
        "3856d30ded1fe43c6657927ebad402d25cd128f4",
        "59c7572e82d69483a66eaa67b46548baeb69ecf4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "message": "Merge branch \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: (35 commits)\n  proc: remove fs/proc/proc_misc.c\n  proc: move /proc/vmcore creation to fs/proc/vmcore.c\n  proc: move pagecount stuff to fs/proc/page.c\n  proc: move all /proc/kcore stuff to fs/proc/kcore.c\n  proc: move /proc/schedstat boilerplate to kernel/sched_stats.h\n  proc: move /proc/modules boilerplate to kernel/module.c\n  proc: move /proc/diskstats boilerplate to block/genhd.c\n  proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmstat boilerplate to mm/vmstat.c\n  proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n  proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmallocinfo to mm/vmalloc.c\n  proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n  proc: move /proc/slab_allocators boilerplate to mm/slab.c\n  proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c\n  proc: move /proc/stat to fs/proc/stat.c\n  proc: move rest of /proc/partitions code to block/genhd.c\n  proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c\n  proc: move /proc/devices code to fs/proc/devices.c\n  proc: move rest of /proc/locks to fs/locks.c\n  ...\n"
    },
    {
      "commit": "1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4",
      "tree": "be7a2d20b1728da5a0d844a6f4cd382b2c2569fb",
      "parents": [
        "db563fc2e80534f98c7f9121a6f7dfe41f177a79",
        "268a3dcfea2077fca60d3715caa5c96f9b5e6ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:53:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:53:02 2008 -0700"
      },
      "message": "Merge branch \u0027v28-range-hrtimers-for-linus-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027v28-range-hrtimers-for-linus-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (37 commits)\n  hrtimers: add missing docbook comments to struct hrtimer\n  hrtimers: simplify hrtimer_peek_ahead_timers()\n  hrtimers: fix docbook comments\n  DECLARE_PER_CPU needs linux/percpu.h\n  hrtimers: fix typo\n  rangetimers: fix the bug reported by Ingo for real\n  rangetimer: fix BUG_ON reported by Ingo\n  rangetimer: fix x86 build failure for the !HRTIMERS case\n  select: fix alpha OSF wrapper\n  select: fix alpha OSF wrapper\n  hrtimer: peek at the timer queue just before going idle\n  hrtimer: make the futex() system call use the per process slack value\n  hrtimer: make the nanosleep() syscall use the per process slack\n  hrtimer: fix signed/unsigned bug in slack estimator\n  hrtimer: show the timer ranges in /proc/timer_list\n  hrtimer: incorporate feedback from Peter Zijlstra\n  hrtimer: add a hrtimer_start_range() function\n  hrtimer: another build fix\n  hrtimer: fix build bug found by Ingo\n  hrtimer: make select() and poll() use the hrtimer range feature\n  ...\n"
    },
    {
      "commit": "22484856402bfa1ff3defe47f6029ab0418240d9",
      "tree": "140c67bf59674da350a7b51765d6ff7eb101b597",
      "parents": [
        "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47",
        "56b26add02b4bdea81d5e0ebda60db1fe3311ad4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev: (66 commits)\n  [PATCH] kill the rest of struct file propagation in block ioctls\n  [PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET\n  [PATCH] get rid of blkdev_locked_ioctl()\n  [PATCH] get rid of blkdev_driver_ioctl()\n  [PATCH] sanitize blkdev_get() and friends\n  [PATCH] remember mode of reiserfs journal\n  [PATCH] propagate mode through swsusp_close()\n  [PATCH] propagate mode through open_bdev_excl/close_bdev_excl\n  [PATCH] pass fmode_t to blkdev_put()\n  [PATCH] kill the unused bsize on the send side of /dev/loop\n  [PATCH] trim file propagation in block/compat_ioctl.c\n  [PATCH] end of methods switch: remove the old ones\n  [PATCH] switch sr\n  [PATCH] switch sd\n  [PATCH] switch ide-scsi\n  [PATCH] switch tape_block\n  [PATCH] switch dcssblk\n  [PATCH] switch dasd\n  [PATCH] switch mtd_blkdevs\n  [PATCH] switch mmc\n  ...\n"
    }
  ],
  "next": "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47"
}
