)]}'
{
  "log": [
    {
      "commit": "d2c1d40487bb1884be085c187233084f80df052d",
      "tree": "11ea6d2f331ed75935d0e65643d657f74278d881",
      "parents": [
        "493008a8e475771a2126e0ce95a73e35b371d277"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:04 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:04 2013 -0700"
      },
      "message": "workqueue: restructure __alloc_workqueue_key()\n\n* Move initialization and linking of pool_workqueues into\n  init_and_link_pwq().\n\n* Make the failure path use destroy_workqueue() once pool_workqueue\n  initialization succeeds.\n\nThese changes are to prepare for dynamic management of pool_workqueues\nand don\u0027t introduce any functional changes.\n\nWhile at it, convert list_del(\u0026wq-\u003elist) to list_del_init() as a\nprecaution as scheduled changes will make destruction more complex.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "493008a8e475771a2126e0ce95a73e35b371d277",
      "tree": "0e67b51ade42bb623456aa186cec7a5722a8420c",
      "parents": [
        "ac6104cdf87cc162b0a0d78280d1dcb9752e25bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "message": "workqueue: drop WQ_RESCUER and test workqueue-\u003erescuer for NULL instead\n\nWQ_RESCUER is superflous.  WQ_MEM_RECLAIM indicates that the user\nwants a rescuer and testing wq-\u003erescuer for NULL can answer whether a\ngiven workqueue has a rescuer or not.  Drop WQ_RESCUER and test\nwq-\u003erescuer directly.\n\nThis will help simplifying __alloc_workqueue_key() failure path by\nallowing it to use destroy_workqueue() on a partially constructed\nworkqueue, which in turn will help implementing dynamic management of\npool_workqueues.\n\nWhile at it, clear wq-\u003erescuer after freeing it in\ndestroy_workqueue().  This is a precaution as scheduled changes will\nmake destruction more complex.\n\nThis patch doesn\u0027t introduce any functional changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "ac6104cdf87cc162b0a0d78280d1dcb9752e25bb",
      "tree": "dd62f586800cd7e0eb491469eaba763316c3f1cd",
      "parents": [
        "f02ae73aaa4f285199683862ac59972877a11c5d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "message": "workqueue: add pool ID to the names of unbound kworkers\n\nThere are gonna be multiple unbound pools.  Include pool ID in the\nname of unbound kworkers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "f02ae73aaa4f285199683862ac59972877a11c5d",
      "tree": "ca517312e1ed5bfaff9b18ebefcd8faf064ad040",
      "parents": [
        "7a62c2c87e3bc174fe4b9e9720e148427510fcfb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "message": "workqueue: drop \"std\" from cpu_std_worker_pools and for_each_std_worker_pool()\n\nAll per-cpu pools are standard, so there\u0027s no need to use both \"cpu\"\nand \"std\" and for_each_std_worker_pool() is confusing in that it can\nbe used only for per-cpu pools.\n\n* s/cpu_std_worker_pools/cpu_worker_pools/\n\n* s/for_each_std_worker_pool()/for_each_cpu_worker_pool()/\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "7a62c2c87e3bc174fe4b9e9720e148427510fcfb",
      "tree": "9da41de39c7d55d0b54250eadb2980d12e1e825d",
      "parents": [
        "29c91e9912bed7060df6116af90286500f5a700d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "message": "workqueue: remove unbound_std_worker_pools[] and related helpers\n\nWorkqueue no longer makes use of unbound_std_worker_pools[].  All\nunbound worker_pools are created dynamically and there\u0027s nothing\nspecial about the standard ones.  With unbound_std_worker_pools[]\nunused, workqueue no longer has places where it needs to treat the\nper-cpu pools-cpu and unbound pools together.\n\nRemove unbound_std_worker_pools[] and the helpers wrapping it to\npresent unified per-cpu and unbound standard worker_pools.\n\n* for_each_std_worker_pool() now only walks through per-cpu pools.\n\n* for_each[_online]_wq_cpu() which don\u0027t have any users left are\n  removed.\n\n* std_worker_pools() and std_worker_pool_pri() are unused and removed.\n\n* get_std_worker_pool() is removed.  Its only user -\n  alloc_and_link_pwqs() - only used it for per-cpu pools anyway.  Open\n  code per_cpu access in alloc_and_link_pwqs() instead.\n\nThis patch doesn\u0027t introduce any functional changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "29c91e9912bed7060df6116af90286500f5a700d",
      "tree": "f5de35e3da85b2f90bda13f7bfb5ea98fbd4d86d",
      "parents": [
        "7a4e344c5675eefbde93ed9a98ef45e0e4957bc2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:03 2013 -0700"
      },
      "message": "workqueue: implement attribute-based unbound worker_pool management\n\nThis patch makes unbound worker_pools reference counted and\ndynamically created and destroyed as workqueues needing them come and\ngo.  All unbound worker_pools are hashed on unbound_pool_hash which is\nkeyed by the content of worker_pool-\u003eattrs.\n\nWhen an unbound workqueue is allocated, get_unbound_pool() is called\nwith the attributes of the workqueue.  If there already is a matching\nworker_pool, the reference count is bumped and the pool is returned.\nIf not, a new worker_pool with matching attributes is created and\nreturned.\n\nWhen an unbound workqueue is destroyed, put_unbound_pool() is called\nwhich decrements the reference count of the associated worker_pool.\nIf the refcnt reaches zero, the worker_pool is destroyed in sched-RCU\nsafe way.\n\nNote that the standard unbound worker_pools - normal and highpri ones\nwith no specific cpumask affinity - are no longer created explicitly\nduring init_workqueues().  init_workqueues() only initializes\nworkqueue_attrs to be used for standard unbound pools -\nunbound_std_wq_attrs[].  The pools are spawned on demand as workqueues\nare created.\n\nv2: - Comment added to init_worker_pool() explaining that @pool should\n      be in a condition which can be passed to put_unbound_pool() even\n      on failure.\n\n    - pool-\u003erefcnt reaching zero and the pool being removed from\n      unbound_pool_hash should be dynamic.  pool-\u003erefcnt is converted\n      to int from atomic_t and now manipulated inside workqueue_lock.\n\n    - Removed an incorrect sanity check on nr_idle in\n      put_unbound_pool() which may trigger spuriously.\n\n    All changes were suggested by Lai Jiangshan.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "7a4e344c5675eefbde93ed9a98ef45e0e4957bc2",
      "tree": "7a4383063512328184db9d20e27164824c44dc2c",
      "parents": [
        "4e1a1f9a051b4c9a2821a2a0f7f4a27c701fba51"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "message": "workqueue: introduce workqueue_attrs\n\nIntroduce struct workqueue_attrs which carries worker attributes -\ncurrently the nice level and allowed cpumask along with helper\nroutines alloc_workqueue_attrs() and free_workqueue_attrs().\n\nEach worker_pool now carries -\u003eattrs describing the attributes of its\nworkers.  All functions dealing with cpumask and nice level of workers\nare updated to follow worker_pool-\u003eattrs instead of determining them\nfrom other characteristics of the worker_pool, and init_workqueues()\nis updated to set worker_pool-\u003eattrs appropriately for all standard\npools.\n\nNote that create_worker() is updated to always perform set_user_nice()\nand use set_cpus_allowed_ptr() combined with manual assertion of\nPF_THREAD_BOUND instead of kthread_bind().  This simplifies handling\nrandom attributes without affecting the outcome.\n\nThis patch doesn\u0027t introduce any behavior changes.\n\nv2: Missing cpumask_var_t definition caused build failure on some\n    archs.  linux/cpumask.h included.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "4e1a1f9a051b4c9a2821a2a0f7f4a27c701fba51",
      "tree": "637cab0901bc51e12b1453c4f67a5387b8a673d1",
      "parents": [
        "34a06bd6b6fa92ccd9d3e6866b6cb91264c3cd20"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "message": "workqueue: separate out init_worker_pool() from init_workqueues()\n\nThis will be used to implement unbound pools with custom attributes.\n\nThis patch doesn\u0027t introduce any functional changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "34a06bd6b6fa92ccd9d3e6866b6cb91264c3cd20",
      "tree": "546c715508dd2d4a80c754b24e41e1d4d2899775",
      "parents": [
        "fa1b54e69bc6c04674c9bb96a6cfa8b2c9f44771"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "message": "workqueue: replace POOL_MANAGING_WORKERS flag with worker_pool-\u003emanager_arb\n\nPOOL_MANAGING_WORKERS is used to synchronize the manager role.\nSynchronizing among workers doesn\u0027t need blocking and that\u0027s why it\u0027s\nimplemented as a flag.\n\nIt got converted to a mutex a while back to add blocking wait from CPU\nhotplug path - 6037315269 (\"workqueue: use mutex for global_cwq\nmanager exclusion\").  Later it turned out that synchronization among\nworkers and cpu hotplug need to be done separately.  Eventually,\nPOOL_MANAGING_WORKERS is restored and workqueue-\u003emanager_mutex got\nmorphed into workqueue-\u003eassoc_mutex - 552a37e936 (\"workqueue: restore\nPOOL_MANAGING_WORKERS\") and b2eb83d123 (\"workqueue: rename\nmanager_mutex to assoc_mutex\").\n\nNow, we\u0027re gonna need to be able to lock out managers from\ndestroy_workqueue() to support multiple unbound pools with custom\nattributes making it again necessary to be able to block on the\nmanager role.  This patch replaces POOL_MANAGING_WORKERS with\nworker_pool-\u003emanager_arb.\n\nThis patch doesn\u0027t introduce any behavior changes.\n\nv2: s/manager_mutex/manager_arb/\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "fa1b54e69bc6c04674c9bb96a6cfa8b2c9f44771",
      "tree": "d04342a5015b1b88fdefeceabdb1f26479dcff65",
      "parents": [
        "76af4d936153afec176c53378e6ba8671e7e237d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "message": "workqueue: update synchronization rules on worker_pool_idr\n\nMake worker_pool_idr protected by workqueue_lock for writes and\nsched-RCU protected for reads.  Lockdep assertions are added to\nfor_each_pool() and get_work_pool() and all their users are converted\nto either hold workqueue_lock or disable preemption/irq.\n\nworker_pool_assign_id() is updated to hold workqueue_lock when\nallocating a pool ID.  As idr_get_new() always performs RCU-safe\nassignment, this is enough on the writer side.\n\nAs standard pools are never destroyed, there\u0027s nothing to do on that\nside.\n\nThe locking is superflous at this point.  This is to help\nimplementation of unbound pools/pwqs with custom attributes.\n\nThis patch doesn\u0027t introduce any behavior changes.\n\nv2: Updated for_each_pwq() use if/else for the hidden assertion\n    statement instead of just if as suggested by Lai.  This avoids\n    confusing the following else clause.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "76af4d936153afec176c53378e6ba8671e7e237d",
      "tree": "94db54e019cc5c66305381f532506cc767df1930",
      "parents": [
        "7fb98ea79cecb14fc1735544146be06fdb1944c3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "message": "workqueue: update synchronization rules on workqueue-\u003epwqs\n\nMake workqueue-\u003epwqs protected by workqueue_lock for writes and\nsched-RCU protected for reads.  Lockdep assertions are added to\nfor_each_pwq() and first_pwq() and all their users are converted to\neither hold workqueue_lock or disable preemption/irq.\n\nalloc_and_link_pwqs() is updated to use list_add_tail_rcu() for\nconsistency which isn\u0027t strictly necessary as the workqueue isn\u0027t\nvisible.  destroy_workqueue() isn\u0027t updated to sched-RCU release pwqs.\nThis is okay as the workqueue should have on users left by that point.\n\nThe locking is superflous at this point.  This is to help\nimplementation of unbound pools/pwqs with custom attributes.\n\nThis patch doesn\u0027t introduce any behavior changes.\n\nv2: Updated for_each_pwq() use if/else for the hidden assertion\n    statement instead of just if as suggested by Lai.  This avoids\n    confusing the following else clause.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "7fb98ea79cecb14fc1735544146be06fdb1944c3",
      "tree": "1110c0288884b507b1fcf4dddb823ea626415be2",
      "parents": [
        "420c0ddb1f205a3511b766d0dfee2cc87ed9dae0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:30:00 2013 -0700"
      },
      "message": "workqueue: replace get_pwq() with explicit per_cpu_ptr() accesses and first_pwq()\n\nget_pwq() takes @cpu, which can also be WORK_CPU_UNBOUND, and @wq and\nreturns the matching pwq (pool_workqueue).  We want to move away from\nusing @cpu for identifying pools and pwqs for unbound pools with\ncustom attributes and there is only one user - workqueue_congested() -\nwhich makes use of the WQ_UNBOUND conditional in get_pwq().  All other\nusers already know whether they\u0027re dealing with a per-cpu or unbound\nworkqueue.\n\nReplace get_pwq() with explicit per_cpu_ptr(wq-\u003ecpu_pwqs, cpu) for\nper-cpu workqueues and first_pwq() for unbound ones, and open-code\nWQ_UNBOUND conditional in workqueue_congested().\n\nNote that this makes workqueue_congested() behave sligntly differently\nwhen @cpu other than WORK_CPU_UNBOUND is specified.  It ignores @cpu\nfor unbound workqueues and always uses the first pwq instead of\noopsing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "420c0ddb1f205a3511b766d0dfee2cc87ed9dae0",
      "tree": "b40f69b265def3d67d2ea67b06584bc2e7437678",
      "parents": [
        "d84ff0512f1bfc0d8c864efadb4523fce68919cc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:59 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:59 2013 -0700"
      },
      "message": "workqueue: remove workqueue_struct-\u003epool_wq.single\n\nworkqueue-\u003epool_wq union is used to point either to percpu pwqs\n(pool_workqueues) or single unbound pwq.  As the first pwq can be\naccessed via workqueue-\u003epwqs list, there\u0027s no reason for the single\npointer anymore.\n\nUse list_first_entry(workqueue-\u003epwqs) to access the unbound pwq and\ndrop workqueue-\u003epool_wq.single pointer and the pool_wq union.  It\nsimplifies the code and eases implementing multiple unbound pools w/\ncustom attributes.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "d84ff0512f1bfc0d8c864efadb4523fce68919cc",
      "tree": "b91fe48e9bd59e0709b00869cd200c79f882afff",
      "parents": [
        "493a1724fef9a3e931d9199f1a19e358e526a6e7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:59 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:59 2013 -0700"
      },
      "message": "workqueue: consistently use int for @cpu variables\n\nWorkqueue is mixing unsigned int and int for @cpu variables.  There\u0027s\nno point in using unsigned int for cpus - many of cpu related APIs\ntake int anyway.  Consistently use int for @cpu variables so that we\ncan use negative values to mark special ones.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "493a1724fef9a3e931d9199f1a19e358e526a6e7",
      "tree": "5cb9ae483904b26b885ae5fb9fc7e7fdca635e71",
      "parents": [
        "24b8a84718ed28a51b452881612c267ba3f2b263"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:59 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:59 2013 -0700"
      },
      "message": "workqueue: add wokrqueue_struct-\u003emaydays list to replace mayday cpu iterators\n\nSimilar to how pool_workqueue iteration used to be, raising and\nservicing mayday requests is based on CPU numbers.  It\u0027s hairy because\ncpumask_t may not be able to handle WORK_CPU_UNBOUND and cpumasks are\nassumed to be always set on UP.  This is ugly and can\u0027t handle\nmultiple unbound pools to be added for unbound workqueues w/ custom\nattributes.\n\nAdd workqueue_struct-\u003emaydays.  When a pool_workqueue needs rescuing,\nit gets chained on the list through pool_workqueue-\u003emayday_node and\nrescuer_thread() consumes the list until it\u0027s empty.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "24b8a84718ed28a51b452881612c267ba3f2b263",
      "tree": "af47f74e181a6a431aee517f149015f769b7ed0a",
      "parents": [
        "171169695555831e8cc41dbc1783700868631ea5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:58 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:58 2013 -0700"
      },
      "message": "workqueue: restructure pool / pool_workqueue iterations in freeze/thaw functions\n\nThe three freeze/thaw related functions - freeze_workqueues_begin(),\nfreeze_workqueues_busy() and thaw_workqueues() - need to iterate\nthrough all pool_workqueues of all freezable workqueues.  They did it\nby first iterating pools and then visiting all pwqs (pool_workqueues)\nof all workqueues and process it if its pwq-\u003epool matches the current\npool.  This is rather backwards and done this way partly because\nworkqueue didn\u0027t have fitting iteration helpers and partly to avoid\nthe number of lock operations on pool-\u003elock.\n\nWorkqueue now has fitting iterators and the locking operation overhead\nisn\u0027t anything to worry about - those locks are unlikely to be\ncontended and the same CPU visiting the same set of locks multiple\ntimes isn\u0027t expensive.\n\nRestructure the three functions such that the flow better matches the\nlogical steps and pwq iteration is done using for_each_pwq() inside\nworkqueue iteration.\n\n* freeze_workqueues_begin(): Setting of FREEZING is moved into a\n  separate for_each_pool() iteration.  pwq iteration for clearing\n  max_active is updated as described above.\n\n* freeze_workqueues_busy(): pwq iteration updated as described above.\n\n* thaw_workqueues(): The single for_each_wq_cpu() iteration is broken\n  into three discrete steps - clearing FREEZING, restoring max_active,\n  and kicking workers.  The first and last steps use for_each_pool()\n  and the second step uses pwq iteration described above.\n\nThis makes the code easier to understand and removes the use of\nfor_each_wq_cpu() for walking pwqs, which can\u0027t support multiple\nunbound pwqs which will be needed to implement unbound workqueues with\ncustom attributes.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "171169695555831e8cc41dbc1783700868631ea5",
      "tree": "62e774a7298eadb486a7148796b2e8cd627d6e77",
      "parents": [
        "49e3cf44df0663a521aa71e7667c52a9dbd0fce9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:58 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:58 2013 -0700"
      },
      "message": "workqueue: introduce for_each_pool()\n\nWith the scheduled unbound pools with custom attributes, there will be\nmultiple unbound pools, so it wouldn\u0027t be able to use\nfor_each_wq_cpu() + for_each_std_worker_pool() to iterate through all\npools.\n\nIntroduce for_each_pool() which iterates through all pools using\nworker_pool_idr and use it instead of for_each_wq_cpu() +\nfor_each_std_worker_pool() combination in freeze_workqueues_begin().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "49e3cf44df0663a521aa71e7667c52a9dbd0fce9",
      "tree": "6abded05fad30819d5f417cd967ffe468d25b629",
      "parents": [
        "30cdf2496d8ac2ef94b9b85f1891cf069490c8c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:58 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:58 2013 -0700"
      },
      "message": "workqueue: replace for_each_pwq_cpu() with for_each_pwq()\n\nIntroduce for_each_pwq() which iterates all pool_workqueues of a\nworkqueue using the recently added workqueue-\u003epwqs list and replace\nfor_each_pwq_cpu() usages with it.\n\nThis is primarily to remove the single unbound CPU assumption from pwq\niteration for the scheduled unbound pools with custom attributes\nsupport which would introduce multiple unbound pwqs per workqueue;\nhowever, it also simplifies iterator users.\n\nNote that pwq-\u003epool initialization is moved to alloc_and_link_pwqs()\nas that now is the only place which is explicitly handling the two pwq\ntypes.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "30cdf2496d8ac2ef94b9b85f1891cf069490c8c4",
      "tree": "0a3e95d353c7395cf92f03b3a23b5d2a9c86bb10",
      "parents": [
        "e904e6c2668bba78497c660aec812ca3f77f4ef9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "message": "workqueue: add workqueue_struct-\u003epwqs list\n\nAdd workqueue_struct-\u003epwqs list and chain all pool_workqueues\nbelonging to a workqueue there.  This will be used to implement\ngeneric pool_workqueue iteration and handle multiple pool_workqueues\nfor the scheduled unbound pools with custom attributes.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "e904e6c2668bba78497c660aec812ca3f77f4ef9",
      "tree": "96aa53109506d97703c1195bc2dba7a47553d702",
      "parents": [
        "e98d5b16cf4df992c40a7c83f1eae61db5bb03da"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "message": "workqueue: introduce kmem_cache for pool_workqueues\n\npool_workqueues need to be aligned to 1 \u003c\u003c WORK_STRUCT_FLAG_BITS as\nthe lower bits of work-\u003edata are used for flags when they\u0027re pointing\nto pool_workqueues.\n\nDue to historical reasons, unbound pool_workqueues are allocated using\nkzalloc() with sufficient buffer area for alignment and aligned\nmanually.  The original pointer is stored at the end which free_pwqs()\nretrieves when freeing it.\n\nThere\u0027s no reason for this hackery anymore.  Set alignment of struct\npool_workqueue to 1 \u003c\u003c WORK_STRUCT_FLAG_BITS, add kmem_cache for\npool_workqueues with proper alignment and replace the hacky alloc and\nfree implementation with plain kmem_cache_zalloc/free().\n\nIn case WORK_STRUCT_FLAG_BITS gets shrunk too much and makes fields of\npool_workqueues misaligned, trigger WARN if the alignment of struct\npool_workqueue becomes smaller than that of long long.\n\nNote that assertion on IS_ALIGNED() is removed from alloc_pwqs().  We\nalready have another one in pwq init loop in __alloc_workqueue_key().\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "e98d5b16cf4df992c40a7c83f1eae61db5bb03da",
      "tree": "57bb6a301fde2b7e5a8bf8f2a8198e3b344acdd2",
      "parents": [
        "6183c009f6cd94b42e5812adcfd4ba6220a196e1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "message": "workqueue: make workqueue_lock irq-safe\n\nworkqueue_lock will be used to synchronize areas which require\nirq-safety and there isn\u0027t much benefit in keeping it not irq-safe.\nMake it irq-safe.\n\nThis patch doesn\u0027t introduce any visible behavior changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "6183c009f6cd94b42e5812adcfd4ba6220a196e1",
      "tree": "a0df8377ea42816c541a45fce4a1700f3cb342c1",
      "parents": [
        "b31041042a8cdece67f925e4bae55b5f5fd754ca"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 12 11:29:57 2013 -0700"
      },
      "message": "workqueue: make sanity checks less punshing using WARN_ON[_ONCE]()s\n\nWorkqueue has been using mostly BUG_ON()s for sanity checks, which\nfail unnecessarily harshly when the assertion doesn\u0027t hold.  Most\nassertions can converted to be less drastic such that things can limp\nalong instead of dying completely.  Convert BUG_ON()s to\nWARN_ON[_ONCE]()s with softer failure behaviors - e.g. if assertion\ncheck fails in destroy_worker(), trigger WARN and silently ignore\ndestruction request.\n\nMost conversions are trivial.  Note that sanity checks in\ndestroy_workqueue() are moved above removal from workqueues list so\nthat it can bail out without side-effects if assertion checks fail.\n\nThis patch doesn\u0027t introduce any visible behavior changes during\nnormal operation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "b31041042a8cdece67f925e4bae55b5f5fd754ca",
      "tree": "6392271c537c05d59e0d72ac72463343d2a29249",
      "parents": [
        "f36dc67b27a689eeb3631b11ebef17bbff257fbb"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Feb 19 12:17:02 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 04 09:44:58 2013 -0800"
      },
      "message": "workqueue: better define synchronization rule around rescuer-\u003epool updates\n\nRescuers visit different worker_pools to process work items from pools\nunder pressure.  Currently, rescuer-\u003epool is updated outside any\nlocking and when an outsider looks at a rescuer, there\u0027s no way to\ntell when and whether rescuer-\u003epool is gonna change.  While this\ndoesn\u0027t currently cause any problem, it is nasty.\n\nWith recent worker_maybe_bind_and_lock() changes, we can move\nrescuer-\u003epool updates inside pool locks such that if rescuer-\u003epool\nequals a locked pool, it\u0027s guaranteed to stay that way until the pool\nis unlocked.\n\nMove rescuer-\u003epool inside pool-\u003elock.\n\nThis patch doesn\u0027t introduce any visible behavior difference.\n\ntj: Updated the description.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "f36dc67b27a689eeb3631b11ebef17bbff257fbb",
      "tree": "d93c4310742fae4633af6ebddf53fe649ca4965d",
      "parents": [
        "f5faa0774e07eada85b0c55ec789b3f337d01412"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Feb 19 12:17:02 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 04 09:44:58 2013 -0800"
      },
      "message": "workqueue: change argument of worker_maybe_bind_and_lock() to @pool\n\nworker_maybe_bind_and_lock() currently takes @worker but only cares\nabout @worker-\u003epool.  This patch updates worker_maybe_bind_and_lock()\nto take @pool instead of @worker.  This will be used to better define\nsynchronization rules regarding rescuer-\u003epool updates.\n\nThis doesn\u0027t introduce any functional change.\n\ntj: Updated the comments and description.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "f5faa0774e07eada85b0c55ec789b3f337d01412",
      "tree": "439566bd5b8d0187d380b950ef386c349448aca9",
      "parents": [
        "45d9550a0e7e9230606ca3c4c6f4dc6297848b2f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Feb 19 12:17:02 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 04 09:44:58 2013 -0800"
      },
      "message": "workqueue: use %current instead of worker-\u003etask in worker_maybe_bind_and_lock()\n\nworker_maybe_bind_and_lock() uses both @worker-\u003etask and @current at\nthe same time.  As worker_maybe_bind_and_lock() can only be called by\nthe current worker task, they are always the same.\n\nUpdate worker_maybe_bind_and_lock() to use %current consistently.\n\nThis doesn\u0027t introduce any functional change.\n\ntj: Massaged the description.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "45d9550a0e7e9230606ca3c4c6f4dc6297848b2f",
      "tree": "f7630d4336447782233f333379ffdd2c258f8b01",
      "parents": [
        "6dbe51c251a327e012439c4772097a13df43c5b8"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Feb 19 12:17:01 2013 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 04 09:44:57 2013 -0800"
      },
      "message": "workqueue: allow more off-queue flag space\n\nWhen a work item is off-queue, its work-\u003edata contains WORK_STRUCT_*\nand WORK_OFFQ_* flags.  As WORK_OFFQ_* flags are used only while a\nwork item is off-queue, it can occupy bits of work-\u003edata which aren\u0027t\nused while off-queue.  WORK_OFFQ_* currently only use bits used by\non-queue CWQ pointer.  As color bits aren\u0027t used while off-queue,\nthere\u0027s no reason to not use them.\n\nLower WORK_OFFQ_FLAG_BASE from WORK_STRUCT_FLAG_BITS to\nWORK_STRUCT_COLOR_SHIFT thus giving 4 more bits to off-queue flag\nspace which is also used to record worker_pool ID while off-queue.\n\nThis doesn\u0027t introduce any visible behavior difference.\n\ntj: Rewrote the description.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6dbe51c251a327e012439c4772097a13df43c5b8",
      "tree": "845c25789f595df374cbb2188a64ff96015e3dee",
      "parents": [
        "ea882c2ece7c68462a3734c71c60e2572e528fe7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 15:11:05 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 15:11:05 2013 -0800"
      },
      "message": "Linux 3.9-rc1\n"
    },
    {
      "commit": "ea882c2ece7c68462a3734c71c60e2572e528fe7",
      "tree": "39fc3c731034492db5a7f13e68290403b1353280",
      "parents": [
        "8e8b180a5f1b237345f6e2d960bcceb8b6bc3793",
        "b889fcf63cb62e7fdb7816565e28f44dbe4a76a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 14:24:59 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 14:24:59 2013 -0800"
      },
      "message": "Merge tag \u0027disintegrate-fbdev-20121220\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\nPull fbdev UAPI disintegration from David Howells:\n \"You\u0027ll be glad to here that the end is nigh for the UAPI patches.\n  Only the fbdev/framebuffer piece remains now that the SCSI stuff has\n  gone in.\n\n  Here are the UAPI disintegration bits for the fbdev drivers.  It\n  appears that Florian hasn\u0027t had time to deal with my patch, but back\n  in December he did say he didn\u0027t mind if I pushed it forward.\"\n\nYay.  No more uapi movement.  And hopefully no more big header file\ncleanups coming up either, it just tends to be very painful.\n\n* tag \u0027disintegrate-fbdev-20121220\u0027 of git://git.infradead.org/users/dhowells/linux-headers:\n  UAPI: (Scripted) Disintegrate include/video\n"
    },
    {
      "commit": "8e8b180a5f1b237345f6e2d960bcceb8b6bc3793",
      "tree": "9f10c874b0d13cc4929ff2b68c65ae2d48d4fb9d",
      "parents": [
        "56a79b7b021bf1b08334e63c2c14b280e2dbf47a",
        "45e27161c62216c163880d7aed751cb55a65c8e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 14:22:53 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 14:22:53 2013 -0800"
      },
      "message": "Merge tag \u0027stable/for-linus-3.9-rc1-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\nPull Xen bug-fixes from Konrad Rzeszutek Wilk:\n - Update the Xen ACPI memory and CPU hotplug locking mechanism.\n - Fix PAT issues wherein various applications would not start\n - Fix handling of multiple MSI as AHCI now does it.\n - Fix ARM compile failures.\n\n* tag \u0027stable/for-linus-3.9-rc1-tag\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xenbus: fix compile failure on ARM with Xen enabled\n  xen/pci: We don\u0027t do multiple MSI\u0027s.\n  xen/pat: Disable PAT using pat_enabled value.\n  xen/acpi: xen cpu hotplug minor updates\n  xen/acpi: xen memory hotplug minor updates\n"
    },
    {
      "commit": "56a79b7b021bf1b08334e63c2c14b280e2dbf47a",
      "tree": "0419233e6194f4f12073c9284852885aa8984bec",
      "parents": [
        "1c82315a12144cde732636e259d39e3ee81b3c5b",
        "dcf787f39162ce32ca325b3e784aba2d2444619a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:23:02 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:23:03 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull  more VFS bits from Al Viro:\n \"Unfortunately, it looks like xattr series will have to wait until the\n  next cycle ;-/\n\n  This pile contains 9p cleanups and fixes (races in v9fs_fid_add()\n  etc), fixup for nommu breakage in shmem.c, several cleanups and a bit\n  more file_inode() work\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  constify path_get/path_put and fs_struct.c stuff\n  fix nommu breakage in shmem.c\n  cache the value of file_inode() in struct file\n  9p: if v9fs_fid_lookup() gets to asking server, it\u0027d better have hashed dentry\n  9p: make sure -\u003elookup() adds fid to the right dentry\n  9p: untangle -\u003elookup() a bit\n  9p: double iput() in -\u003elookup() if d_materialise_unique() fails\n  9p: v9fs_fid_add() can\u0027t fail now\n  v9fs: get rid of v9fs_dentry\n  9p: turn fid-\u003edlist into hlist\n  9p: don\u0027t bother with private lock in -\u003ed_fsdata; dentry-\u003ed_lock will do just fine\n  more file_inode() open-coded instances\n  selinux: opened file can\u0027t have NULL or negative -\u003ef_path.dentry\n\n(In the meantime, the hlist traversal macros have changed, so this\nrequired a semantic conflict fixup for the newly hlistified fid-\u003edlist)\n"
    },
    {
      "commit": "1c82315a12144cde732636e259d39e3ee81b3c5b",
      "tree": "904770abe925abf1e37bad1a6d7d7f576257b194",
      "parents": [
        "530ede14cf63ef4a207b0003e14af2f750484180",
        "d7011f5b9dd3c88feb5cebad7d0b719ed6816ebd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:13:20 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:13:20 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixup from Chris Mason:\n \"Geert and James both sent this one in, sorry guys\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  btrfs/raid56: Add missing #include \u003clinux/vmalloc.h\u003e\n"
    },
    {
      "commit": "530ede14cf63ef4a207b0003e14af2f750484180",
      "tree": "2849be2c8fd6d2d6a8a71447aebe5d7400317c8d",
      "parents": [
        "6977c6fc77b864dc1851e100c8528c2f3ed5bd9b",
        "72a6b43e4bbb818ac1875a3a572cb2aa8c9af820"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:58:43 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:58:43 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux\n\nPull second set of s390 patches from Martin Schwidefsky:\n \"The main part of this merge are Heikos uaccess patches.  Together with\n  commit 09884964335e (\"mm: do not grow the stack vma just because of an\n  overrun on preceding vma\") the user string access is hopefully fixed\n  for good.\n\n  In addition some bug fixes and two cleanup patches.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:\n  s390/module: fix compile warning\n  qdio: remove unused parameters\n  s390/uaccess: fix kernel ds access for page table walk\n  s390/uaccess: fix strncpy_from_user string length check\n  input: disable i8042 PC Keyboard controller for s390\n  s390/dis: Fix invalid array size\n  s390/uaccess: remove pointless access_ok() checks\n  s390/uaccess: fix strncpy_from_user/strnlen_user zero maxlen case\n  s390/uaccess: shorten strncpy_from_user/strnlen_user\n  s390/dasd: fix unresponsive device after all channel paths were lost\n  s390/mm: ignore change bit for vmemmap\n  s390/page table dumper: add support for change-recording override bit\n"
    },
    {
      "commit": "6977c6fc77b864dc1851e100c8528c2f3ed5bd9b",
      "tree": "d43b5e8e33a01ebf7a4f356342c700e4f46ec8e3",
      "parents": [
        "8fd5e7a2d9574b3cac1c9264ad1aed3b613ed6fe",
        "cf8e18ea2f8be26e8f9e44ed677d25f558ca301a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:57:38 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:57:38 2013 -0800"
      },
      "message": "Merge branch \u0027fixes-for-3.9-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux\n\nPull second round of PARISC updates from Helge Deller:\n \"The most important fix in this branch is the switch of io_setup,\n  io_getevents and io_submit syscalls to use the available compat\n  syscalls when running 32bit userspace on 64bit kernel.  Other than\n  that it\u0027s mostly removal of compile warnings.\"\n\n* \u0027fixes-for-3.9-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:\n  parisc: fix redefinition of SET_PERSONALITY\n  parisc: do not install modules when installing kernel\n  parisc: fix compile warnings triggered by atomic_sub(sizeof(),v)\n  parisc: check return value of down_interruptible() in hp_sdc_rtc.c\n  parisc: avoid unitialized variable warning in pa_memcpy()\n  parisc: remove unused variable \u0027compat_val\u0027\n  parisc: switch to compat_functions of io_setup, io_getevents and io_submit\n  parisc: select ARCH_WANT_FRAME_POINTERS\n"
    },
    {
      "commit": "8fd5e7a2d9574b3cac1c9264ad1aed3b613ed6fe",
      "tree": "5696f5d31c6c75b71bfc4852fb234b773e266cfe",
      "parents": [
        "529e5fbcd8d3cb48cf824ac8fde91cc80a9e985f",
        "c60ac31542e93499b58dcfc1e3f6550ba5b5728e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "message": "Merge tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag\n\nPull new ImgTec Meta architecture from James Hogan:\n \"This adds core architecture support for Imagination\u0027s Meta processor\n  cores, followed by some later miscellaneous arch/metag cleanups and\n  fixes which I kept separate to ease review:\n\n   - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture\n   - A few fixes all over, particularly for symbol prefixes\n   - A few privilege protection fixes\n   - Several cleanups (setup.c includes, split out a lot of\n     metag_ksyms.c)\n   - Fix some missing exports\n   - Convert hugetlb to use vm_unmapped_area()\n   - Copy device tree to non-init memory\n   - Provide dma_get_sgtable()\"\n\n* tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)\n  metag: Provide dma_get_sgtable()\n  metag: prom.h: remove declaration of metag_dt_memblock_reserve()\n  metag: copy devicetree to non-init memory\n  metag: cleanup metag_ksyms.c includes\n  metag: move mm/init.c exports out of metag_ksyms.c\n  metag: move usercopy.c exports out of metag_ksyms.c\n  metag: move setup.c exports out of metag_ksyms.c\n  metag: move kick.c exports out of metag_ksyms.c\n  metag: move traps.c exports out of metag_ksyms.c\n  metag: move irq enable out of irqflags.h on SMP\n  genksyms: fix metag symbol prefix on crc symbols\n  metag: hugetlb: convert to vm_unmapped_area()\n  metag: export clear_page and copy_page\n  metag: export metag_code_cache_flush_all\n  metag: protect more non-MMU memory regions\n  metag: make TXPRIVEXT bits explicit\n  metag: kernel/setup.c: sort includes\n  perf: Enable building perf tools for Meta\n  metag: add boot time LNKGET/LNKSET check\n  metag: add __init to metag_cache_probe()\n  ...\n"
    },
    {
      "commit": "529e5fbcd8d3cb48cf824ac8fde91cc80a9e985f",
      "tree": "5b6792ea3fe35ba3a2900978b1679d5d0a8bbee3",
      "parents": [
        "686c09407d24123755ee05aae5be680be886a233",
        "16af43fef87512f7324205783526f543ddcf09cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 11:54:39 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 11:54:39 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull late ARM updates from Russell King:\n \"Here is the late set of ARM updates for this merge window; in here is:\n\n   - The ARM parts of the broadcast timer support, core parts merged\n     through tglx\u0027s tree.  This was left over from the previous merge to\n     allow the dependency on tglx\u0027s tree to be resolved.\n\n   - A fix to the VFP code which shows up on Raspberry Pi\u0027s, as well as\n     fixing the fallout from a previous commit in this area.\n\n   - A number of smaller fixes scattered throughout the ARM tree\"\n\n* \u0027for-linus\u0027 of git://git.linaro.org/people/rmk/linux-arm:\n  ARM: Fix broken commit 0cc41e4a21d43 corrupting kernel messages\n  ARM: fix scheduling while atomic warning in alignment handling code\n  ARM: VFP: fix emulation of second VFP instruction\n  ARM: 7656/1: uImage: Error out on build of multiplatform without LOADADDR\n  ARM: 7640/1: memory: tegra_ahb_enable_smmu() depends on TEGRA_IOMMU_SMMU\n  ARM: 7654/1: Preserve L_PTE_VALID in pte_modify()\n  ARM: 7653/2: do not scale loops_per_jiffy when using a constant delay clock\n  ARM: 7651/1: remove unused smp_timer_broadcast #define\n"
    },
    {
      "commit": "686c09407d24123755ee05aae5be680be886a233",
      "tree": "c30976567e12b6c6b1ab4dd42be7ace3cc09ac06",
      "parents": [
        "bc2e4a90d9f75f1664c1587eb09ecd10bb71b022",
        "302a3c0f2757ae1a3e7df3f9fa1f20e2214ab945"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:25:47 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:25:47 2013 -0800"
      },
      "message": "Merge tag \u0027char-misc-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc\n\nPull char/misc patch from Greg Kroah-Hartman:\n \"Here is one remaining patch for 3.9-rc1.  It is for the hyper-v\n  drivers, and had to wait until some other patches went in through the\n  x86 tree.\"\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n* tag \u0027char-misc-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:\n  Drivers: hv: vmbus: Use the new infrastructure for delivering VMBUS interrupts\n"
    },
    {
      "commit": "bc2e4a90d9f75f1664c1587eb09ecd10bb71b022",
      "tree": "e58b88e0bd0cdb0fd2ce9f82fb5bc889fb6f38c0",
      "parents": [
        "68b86a25225d03f134f306caffc46df80906c3f8",
        "221f8dfca89276d8aec54c6d07fbe20c281668f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:24:57 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:24:57 2013 -0800"
      },
      "message": "Merge tag \u0027usb-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB patch revert from Greg Kroah-Hartman:\n \"Here is one remaining USB patch for 3.9-rc1, it reverts a 3.8 patch\n  that has caused a lot of regressions for some VIA EHCI controllers.\"\n\n* tag \u0027usb-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:\n  USB: EHCI: revert \"remove ASS/PSS polling timeout\"\n"
    },
    {
      "commit": "68b86a25225d03f134f306caffc46df80906c3f8",
      "tree": "d5f6556e07e3fb376199c2ba70153c17d47b7607",
      "parents": [
        "527c680f7c36ff17d49efc99632232dba3549c51",
        "41e9f3f71bc7a5d41a2b925cfdc0dc22a77f7d8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:23:29 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:23:29 2013 -0800"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\nPull watchdog updates from Wim Van Sebroeck:\n \"This contains:\n   - fixes and improvements\n   - devicetree bindings\n   - conversion to watchdog generic framework of the following drivers:\n        - booke_wdt\n        - bcm47xx_wdt.c\n        - at91sam9_wdt\n   - Removal of old STMP3xxx driver\n   - Addition of following new drivers:\n        - new driver for STMP3xxx and i.MX23/28\n        - Retu watchdog driver\"\n\n* git://www.linux-watchdog.org/linux-watchdog: (30 commits)\n  watchdog: sp805_wdt depends on ARM\n  watchdog: davinci_wdt: update to devm_* API\n  watchdog: davinci_wdt: use devm managed clk get\n  watchdog: at91rm9200: add DT support\n  watchdog: add timeout-sec property binding\n  watchdog: at91sam9_wdt: Convert to use the watchdog framework\n  watchdog: omap_wdt: Add option nowayout\n  watchdog: core: dt: add support for the timeout-sec dt property\n  watchdog: bcm47xx_wdt.c: add hard timer\n  watchdog: bcm47xx_wdt.c: rename wdt_time to timeout\n  watchdog: bcm47xx_wdt.c: rename ops methods\n  watchdog: bcm47xx_wdt.c: use platform device\n  watchdog: bcm47xx_wdt.c: convert to watchdog core api\n  watchdog: Convert BookE watchdog driver to watchdog infrastructure\n  watchdog: s3c2410_wdt: Use devm_* functions\n  watchdog: remove old STMP3xxx driver\n  watchdog: add new driver for STMP3xxx and i.MX23/28\n  rtc: stmp3xxx: add wdt-accessor function\n  watchdog: introduce retu_wdt driver\n  watchdog: intel_scu_watchdog: fix Kconfig dependency\n  ...\n"
    },
    {
      "commit": "527c680f7c36ff17d49efc99632232dba3549c51",
      "tree": "ae72c69971ff8dce4cc17b0035bd6abb2651a110",
      "parents": [
        "23caaeea271cfe3176f0e27374d2016bd7583ea8",
        "f9c6a655a94042f94c0adb30d07d93cfd8915e95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:20:22 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:20:22 2013 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma\n\nPull second set of slave-dmaengine updates from Vinod Koul:\n \"Arnd\u0027s patch moves the dw_dmac to use generic DMA binding.  I agreed\n  to merge this late as it will avoid the conflicts between trees.\n\n  The second patch from Matt adding a dma_request_slave_channel_compat\n  API was supposed to be picked up, but somehow never got picked up.\n  Some patches dependent on this are already in -next :(\"\n\n* \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma:\n  dmaengine: dw_dmac: move to generic DMA binding\n  dmaengine: add dma_request_slave_channel_compat()\n"
    },
    {
      "commit": "23caaeea271cfe3176f0e27374d2016bd7583ea8",
      "tree": "b603b654347c87cf211ce667e2406daa1339164a",
      "parents": [
        "a7c1120d2dcc83691bafa034d98f70285757e826",
        "445e8d007c29d7f4d497c7912236b69f608340c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:16:19 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 10:16:19 2013 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://cavan.codon.org.uk/platform-drivers-x86\n\nPull x86 platform driver updates from Matthew Garrett:\n \"Mostly relatively small updates, along with some hardware enablement\n  for Sony hardware and a pile of updates to Google\u0027s Chromebook driver\"\n\n* \u0027for_linus\u0027 of git://cavan.codon.org.uk/platform-drivers-x86: (49 commits)\n  ideapad-laptop: Depend on BACKLIGHT_CLASS_DEVICE instead of selecting it\n  ideapad: depends on backlight subsystem and update comment\n  Platform: x86: chromeos_laptop - add i915 gmbuses to adapter names\n  Platform: x86: chromeos_laptop - Add isl light sensor for Pixel\n  Platform: x86: chromeos_laptop - Add a more general add_i2c_device\n  Platform: x86: chromeos_laptop - Add Pixel Touchscreen\n  Platform: x86: chromeos_laptop - Add support for probing devices\n  Platform: x86: chromeos_laptop - Add Pixel Trackpad\n  hp-wmi: fix handling of platform device\n  sony-laptop: leak in error handling sony_nc_lid_resume_setup()\n  hp-wmi: Add support for SMBus hotkeys\n  asus-wmi: Fix unused function build warning\n  acer-wmi: avoid the warning of \u0027devices\u0027 may be used uninitialized\n  drivers/platform/x86/thinkpad_acpi.c: Handle HKEY event 0x6040\n  Platform: x86: chromeos_laptop - Add HP Pavilion 14\n  Platform: x86: chromeos_laptop - Add Taos tsl2583 device\n  Platform: x86: chromeos_laptop - Add Taos tsl2563 device\n  Platform: x86: chromeos_laptop - Add Acer C7 trackpad\n  Platform: x86: chromeos_laptop - Rename setup_lumpy_tp to setup_cyapa_smbus_tp\n  asus-laptop: always report brightness key events\n  ...\n"
    },
    {
      "commit": "d7011f5b9dd3c88feb5cebad7d0b719ed6816ebd",
      "tree": "12f607ef9e2da4b72db3941443184be1273619c0",
      "parents": [
        "180e001cd5fc2950dc6a7997dde5b65c954d0e79"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Mar 03 04:44:41 2013 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sun Mar 03 06:53:41 2013 -0500"
      },
      "message": "btrfs/raid56: Add missing #include \u003clinux/vmalloc.h\u003e\n\ntilegx_defconfig:\n\nfs/btrfs/raid56.c: In function \u0027btrfs_alloc_stripe_hash_table\u0027:\nfs/btrfs/raid56.c:206:3: error: implicit declaration of function \u0027vzalloc\u0027 [-Werror\u003dimplicit-function-declaration]\nfs/btrfs/raid56.c:206:9: warning: assignment makes pointer from integer without a cast [enabled by default]\nfs/btrfs/raid56.c:226:4: error: implicit declaration of function \u0027vfree\u0027 [-Werror\u003dimplicit-function-declaration]\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a7c1120d2dcc83691bafa034d98f70285757e826",
      "tree": "56779f292c2dea78feff290c3ce26724d33b3f3e",
      "parents": [
        "6ec40b423032ca769c96fbf9a080db822821893d",
        "9b2ff35753c0512bc8c6adae9e9c87cbeee86f82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:33:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:33:21 2013 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 bug fixes from Ted Ts\u0027o:\n \"Various bug fixes for ext4.  The most important is a fix for the new\n  extent cache\u0027s slab shrinker which can cause significant, user-visible\n  pauses when the system is under memory pressure.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: enable quotas before orphan cleanup\n  ext4: don\u0027t allow quota mount options when quota feature enabled\n  ext4: fix a warning from sparse check for ext4_dir_llseek\n  ext4: convert number of blocks to clusters properly\n  ext4: fix possible memory leak in ext4_remount()\n  jbd2: fix ERR_PTR dereference in jbd2__journal_start\n  ext4: use percpu counter for extent cache count\n  ext4: optimize ext4_es_shrink()\n"
    },
    {
      "commit": "6ec40b423032ca769c96fbf9a080db822821893d",
      "tree": "862950eb804bd849e22d6abca7b02a21c9c430df",
      "parents": [
        "8d05b3771da8775799673212b57d62f57c70d68a",
        "db61ec29fd56e089007cb7d9a646ea9ddf518c4d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:32:06 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:32:06 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull sigprocmask compat fix from Al Viro:\n \"generic compat_sys_rt_sigprocmask() had a very dumb braino; I\u0027d spent\n  quite a while staring at the offending commit before finally managing\n  to spot the idiocy ;-/\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  fix compat_sys_rt_sigprocmask()\n"
    },
    {
      "commit": "db61ec29fd56e089007cb7d9a646ea9ddf518c4d",
      "tree": "77e78fc7538ea4e2beef06c10afa916898255e4c",
      "parents": [
        "0e803bafbb7d1b8a9031104f1a982a01b45da4c6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 02 20:39:15 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 02 20:39:15 2013 -0500"
      },
      "message": "fix compat_sys_rt_sigprocmask()\n\nConverting bitmask to 32bit granularity is fine, but we\u0027d better\n_do_ something with the result.  Such as \"copy it to userland\"...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d05b3771da8775799673212b57d62f57c70d68a",
      "tree": "ebce0455032cec54428227022c92a480fa726da0",
      "parents": [
        "b695188dd39162a1a6bff11fdbcc4c0b65b933ab",
        "512e4b291c0e97af24619a91f3e8963697da00d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:46:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:46:07 2013 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.9-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes from Trond Myklebust:\n \"We\u0027ve just concluded another Connectathon interoperability testing\n  week, and so here are the fixes for the bugs that were discovered:\n\n   - Don\u0027t allow NFS silly-renamed files to be deleted\n   - Don\u0027t start the retransmission timer when out of socket space\n   - Fix a couple of pnfs-related Oopses.\n   - Fix one more NFSv4 state recovery deadlock\n   - Don\u0027t loop forever when LAYOUTGET returns NFS4ERR_LAYOUTTRYLATER\"\n\n* tag \u0027nfs-for-3.9-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  SUNRPC: One line comment fix\n  NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS\n  SUNRPC: add call to get configured timeout\n  PNFS: set the default DS timeout to 60 seconds\n  NFSv4: Fix another open/open_recovery deadlock\n  nfs: don\u0027t allow nfs_find_actor to match inodes of the wrong type\n  NFSv4.1: Hold reference to layout hdr in layoutget\n  pnfs: fix resend_to_mds for directio\n  SUNRPC: Don\u0027t start the retransmission timer when out of socket space\n  NFS: Don\u0027t allow NFS silly-renamed files to be deleted, no signal\n"
    },
    {
      "commit": "b695188dd39162a1a6bff11fdbcc4c0b65b933ab",
      "tree": "a3df7c052d38b5bfaf335fbf3130abcc5c6ca577",
      "parents": [
        "48476df99894492a0f7239f2f3c9a2dde4ff38e2",
        "180e001cd5fc2950dc6a7997dde5b65c954d0e79"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:41:54 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:41:54 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs update from Chris Mason:\n \"The biggest feature in the pull is the new (and still experimental)\n  raid56 code that David Woodhouse started long ago.  I\u0027m still working\n  on the parity logging setup that will avoid inconsistent parity after\n  a crash, so this is only for testing right now.  But, I\u0027d really like\n  to get it out to a broader audience to hammer out any performance\n  issues or other problems.\n\n  scrub does not yet correct errors on raid5/6 either.\n\n  Josef has another pass at fsync performance.  The big change here is\n  to combine waiting for metadata with waiting for data, which is a big\n  latency win.  It is also step one toward using atomics from the\n  hardware during a commit.\n\n  Mark Fasheh has a new way to use btrfs send/receive to send only the\n  metadata changes.  SUSE is using this to make snapper more efficient\n  at finding changes between snapshosts.\n\n  Snapshot-aware defrag is also included.\n\n  Otherwise we have a large number of fixes and cleanups.  Eric Sandeen\n  wins the award for removing the most lines, and I\u0027m hoping we steal\n  this idea from XFS over and over again.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)\n  btrfs: fixup/remove module.h usage as required\n  Btrfs: delete inline extents when we find them during logging\n  btrfs: try harder to allocate raid56 stripe cache\n  Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic\n  Btrfs: don\u0027t call btrfs_qgroup_free if just btrfs_qgroup_reserve fails\n  Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree\n  Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails\n  Btrfs: fix missing deleted items in btrfs_clean_quota_tree\n  btrfs: use only inline_pages from extent buffer\n  Btrfs: fix wrong reserved space when deleting a snapshot/subvolume\n  Btrfs: fix wrong reserved space in qgroup during snap/subv creation\n  Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot\n  btrfs: remove a printk from scan_one_device\n  Btrfs: fix NULL pointer after aborting a transaction\n  Btrfs: fix memory leak of log roots\n  Btrfs: copy everything if we\u0027ve created an inline extent\n  btrfs: cleanup for open-coded alignment\n  Btrfs: do not change inode flags in rename\n  Btrfs: use reserved space for creating a snapshot\n  clear chunk_alloc flag on retryable failure\n  ...\n"
    },
    {
      "commit": "48476df99894492a0f7239f2f3c9a2dde4ff38e2",
      "tree": "5a1b80f20449968f0de6e5bfbcda5e360e31ba1f",
      "parents": [
        "37cae6ad4c484030fa972241533c32730ec79b7d",
        "24dea0c9feccf699749f860fa2f4ccd84d30390d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:33:54 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:33:54 2013 -0800"
      },
      "message": "Merge tag \u0027for-linus-20130301\u0027 of git://git.infradead.org/linux-mtd\n\nPull MTD update from David Woodhouse:\n \"Fairly unexciting MTD merge for 3.9:\n\n   - misc clean-ups in the MTD command-line partitioning parser\n     (cmdlinepart)\n   - add flash locking support for STmicro chips serial flash chips, as\n     well as for CFI command set 2 chips.\n   - new driver for the ELM error correction HW module found in various\n     TI chips, enable the OMAP NAND driver to use the ELM HW error\n     correction\n   - added number of new serial flash IDs\n   - various fixes and improvements in the gpmi NAND driver\n   - bcm47xx NAND driver improvements\n   - make the mtdpart module actually removable\"\n\n* tag \u0027for-linus-20130301\u0027 of git://git.infradead.org/linux-mtd: (45 commits)\n  mtd: map: BUG() in non handled cases\n  mtd: bcm47xxnflash: use pr_fmt for module prefix in messages\n  mtd: davinci_nand: Use managed resources\n  mtd: mtd_torturetest can cause stack overflows\n  mtd: physmap_of: Convert device allocation to managed devm_kzalloc()\n  mtd: at91: atmel_nand: for PMECC, add code to check the ONFI parameter ECC requirement.\n  mtd: atmel_nand: make pmecc-cap, pmecc-sector-size in dts is optional.\n  mtd: atmel_nand: avoid to report an error when lookup table offset is 0.\n  mtd: bcm47xxsflash: adjust names of bus-specific functions\n  mtd: bcm47xxpart: improve probing of nvram partition\n  mtd: bcm47xxpart: add support for other erase sizes\n  mtd: bcm47xxnflash: register this as normal driver\n  mtd: bcm47xxnflash: fix message\n  mtd: bcm47xxsflash: register this as normal driver\n  mtd: bcm47xxsflash: write number of written bytes\n  mtd: gpmi: add sanity check for the ECC\n  mtd: gpmi: set the Golois Field bit for mx6q\u0027s BCH\n  mtd: devices: elm: Removes \u003cxx\u003e literals in elm DT node\n  mtd: gpmi: fix a dereferencing freed memory error\n  mtd: fix the wrong timeo for panic_nand_wait()\n  ...\n"
    },
    {
      "commit": "16af43fef87512f7324205783526f543ddcf09cf",
      "tree": "28995abd8604d61ba84d97d28448ccccb91467c9",
      "parents": [
        "9664ffe6a16676fa4d6a238ad3d9bb6cc24825a1",
        "ded3ef0fa71696d3cf631fa4b8ac65313f370b4c",
        "653a761e4ba70bf12174dedcd5fbbf54f431abb3"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sun Mar 03 00:32:50 2013 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sun Mar 03 00:32:50 2013 +0000"
      },
      "message": "Merge branches \u0027devel-stable\u0027, \u0027fixes\u0027 and \u0027mmci\u0027 into for-linus\n"
    },
    {
      "commit": "512e4b291c0e97af24619a91f3e8963697da00d8",
      "tree": "b9ea33c54cd17170c2876e8a30cb9c1d1cf0cac2",
      "parents": [
        "3000512137602b84d1ad5fd89d62984993a19bb6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 02 15:54:11 2013 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 02 15:54:11 2013 -0800"
      },
      "message": "SUNRPC: One line comment fix\n\nReported-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9b2ff35753c0512bc8c6adae9e9c87cbeee86f82",
      "tree": "5d9962637abdf6d9a88d78942971ced5d8c002b7",
      "parents": [
        "262b4662f42787bff24453ddd3e657265b5d0039"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Mar 02 18:22:38 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 18:22:38 2013 -0500"
      },
      "message": "ext4: enable quotas before orphan cleanup\n\nWhen using quota feature we need to enable quotas before orphan cleanup\nso that changes happening during it are properly reflected in quota\naccounting.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "262b4662f42787bff24453ddd3e657265b5d0039",
      "tree": "30bc20d8e36a09509f083b139b6c73ff95ab182d",
      "parents": [
        "d4e439549127d3ca544482551f5f1af4f114debd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Mar 02 17:57:08 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:57:08 2013 -0500"
      },
      "message": "ext4: don\u0027t allow quota mount options when quota feature enabled\n\nSo far we silently ignored when quota mount options were set while quota\nfeature was enabled.  But this can create confusion in userspace when\nmount options are set but silently ignored and also creates opportunities\nfor bugs when we don\u0027t properly test all quota types.  Actually\next4_mark_dquot_dirty() forgets to test for quota feature so it was\ndependent on journaled quota options being set.  OTOH ext4_orphan_cleanup()\ntries to enable journaled quota when quota options are specified which is\nwrong when quota feature is enabled.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4e439549127d3ca544482551f5f1af4f114debd",
      "tree": "b0c16bce8e6b6273cedf0df32ad7ceea85053060",
      "parents": [
        "810da240f221d64bf90020f25941b05b378186fe"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Sat Mar 02 17:24:05 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:24:05 2013 -0500"
      },
      "message": "ext4: fix a warning from sparse check for ext4_dir_llseek\n\next4_dir_llseek is only used as a callback function, and no one calls\nit directly.  So make it as a static function in order to remove a\nwarning message from sparse check.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "810da240f221d64bf90020f25941b05b378186fe",
      "tree": "9fb624e43c624bf8e38077804ca2f95026c11b53",
      "parents": [
        "3e36a16375eee390a9d80f99499fe630efa08128"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Sat Mar 02 17:18:58 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:18:58 2013 -0500"
      },
      "message": "ext4: convert number of blocks to clusters properly\n\nWe\u0027re using macro EXT4_B2C() to convert number of blocks to number of\nclusters for bigalloc file systems.  However, we should be using\nEXT4_NUM_B2C().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "3e36a16375eee390a9d80f99499fe630efa08128",
      "tree": "c07bece14821d3b66c781b969c4ec0ed5ee37a26",
      "parents": [
        "df05c1b85a88888b92725ef27ba70086f38fb083"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Sat Mar 02 17:13:55 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:13:55 2013 -0500"
      },
      "message": "ext4: fix possible memory leak in ext4_remount()\n\n\u0027orig_data\u0027 is malloced in ext4_remount() and should be freed\nbefore leaving from the error handling cases, otherwise it will\ncause memory leak.\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "df05c1b85a88888b92725ef27ba70086f38fb083",
      "tree": "ba25e9388be51f30fd464eea4c6f4f50eb384080",
      "parents": [
        "1ac6466f253ef7bd063b7877fb056afe1820841c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Mar 02 17:08:46 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:08:46 2013 -0500"
      },
      "message": "jbd2: fix ERR_PTR dereference in jbd2__journal_start\n\nIf start_this_handle() failed handle will be initialized\nto ERR_PTR() and can not be dereferenced.\n\npaging request at fffffffffffffff6\nIP: [\u003cffffffff813c073f\u003e] jbd2__journal_start+0x18f/0x290\nPGD 200e067 PUD 200f067 PMD 0\nOops: 0000 [#1] SMP\nModules linked in: cpufreq_ondemand acpi_cpufreq freq_table mperf coretemp kvm_intel kvm crc32c_intel ghash_clmulni_intel microcode sg xhci_hcd button sd_mod crc_t10dif aesni_intel ablk_helper cryptd lrw aes_x86_64 xts gf128mul ahci libahci pata_acpi ata_generic dm_mirror dm_region_hash dm_log dm_mod\nCPU 0 journal commit I/O error\n\nPid: 2694, comm: fio Not tainted 3.8.0-rc3+ #79                  /DQ67SW\nRIP: 0010:[\u003cffffffff813c073f\u003e]  [\u003cffffffff813c073f\u003e] jbd2__journal_start+0x18f/0x290\nRSP: 0018:ffff880233b8ba58  EFLAGS: 00010292\nRAX: 00000000ffffffe2 RBX: ffffffffffffffe2 RCX: 0000000000000006\nRDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff82128f48\nRBP: ffff880233b8ba98 R08: 0000000000000000 R09: ffff88021440a6e0\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c60ac31542e93499b58dcfc1e3f6550ba5b5728e",
      "tree": "9546eac961af7a343eefc302f81f0e70d1298cf9",
      "parents": [
        "2742c52655cff867fbf55e2e9cb993b8f965b7d7"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Feb 19 13:25:46 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:17 2013 +0000"
      },
      "message": "metag: Provide dma_get_sgtable()\n\nmetag/allmodconfig:\n\ndrivers/media/v4l2-core/videobuf2-dma-contig.c: In function \u0027vb2_dc_get_base_sgt\u0027:\ndrivers/media/v4l2-core/videobuf2-dma-contig.c:387: error: implicit declaration of function \u0027dma_get_sgtable\u0027\n\nFor architectures using dma_map_ops, dma_get_sgtable() is provided in\n\u003casm-generic/dma-mapping-common.h\u003e.\n\nMetag does not use dma_map_ops yet, hence it should implement it as an\ninline stub using dma_common_get_sgtable().\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\n"
    },
    {
      "commit": "2742c52655cff867fbf55e2e9cb993b8f965b7d7",
      "tree": "e0e13e15d11f5e211fe3f43d0e6ecfc9f0a45a63",
      "parents": [
        "2270e6d30bb6601ffd42e9d972442df0499ad547"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 20 14:19:54 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:17 2013 +0000"
      },
      "message": "metag: prom.h: remove declaration of metag_dt_memblock_reserve()\n\nMetag doesn\u0027t have a metag_dt_memblock_reserve() function so remove the\ndeclaration from asm/prom.h.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "2270e6d30bb6601ffd42e9d972442df0499ad547",
      "tree": "c72e32a15d041cfe38560dca277f335da3f6e7cf",
      "parents": [
        "d7900504480ea9d49a6b5f8811f2678ad08d3255"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 20 13:59:13 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:17 2013 +0000"
      },
      "message": "metag: copy devicetree to non-init memory\n\nMake a copy of the device tree blob in non-init memory. It is required\nwhen using built-in device tree files that the platform code copies the\nblob to non-init memory prior to calling unflatten_device_tree(),\notherwise the strings that the device tree refer to will get poisoned\nand potentially reused, breaking later reading of the device tree\npost-init (such as compatible matching in modules, debugfs, and the\nprocfs interface).\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nReviewed-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\n"
    },
    {
      "commit": "d7900504480ea9d49a6b5f8811f2678ad08d3255",
      "tree": "f2759833b469d4a3aa25984da9d17b4ec8ec15e6",
      "parents": [
        "44c2451080ab3896688c852253814f5eabb2ecce"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 13 13:30:15 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:16 2013 +0000"
      },
      "message": "metag: cleanup metag_ksyms.c includes\n\nMinimise metag_ksyms.c includes to directly include the \u003casm/*.h\u003e files\nthat declare a particular symbol, and not include any unnecessary ones.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "44c2451080ab3896688c852253814f5eabb2ecce",
      "tree": "2b7063e255da7a127cd8264ca0f392cccd01e232",
      "parents": [
        "9da3ee9aa8a9c9fcf94188d4c0ae280afbeb63c1"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 13 13:19:15 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:16 2013 +0000"
      },
      "message": "metag: move mm/init.c exports out of metag_ksyms.c\n\nIt\u0027s less error prone to have function symbols exported immediately\nafter the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL\nin metag_ksyms.c for symbols defined in mm/init.c into mm/init.c.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "9da3ee9aa8a9c9fcf94188d4c0ae280afbeb63c1",
      "tree": "b6c3890534b2b3ee49fda2bc5a342030378e4079",
      "parents": [
        "7293dbed9d8be1916034dbfcf2f203e96bd8fae1"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 13 12:57:10 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:15 2013 +0000"
      },
      "message": "metag: move usercopy.c exports out of metag_ksyms.c\n\nIt\u0027s less error prone to have function symbols exported immediately\nafter the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL\nin metag_ksyms.c for symbols defined in usercopy.c into usercopy.c\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "7293dbed9d8be1916034dbfcf2f203e96bd8fae1",
      "tree": "c8f691277091762579a264d976a72c5f9acd45f9",
      "parents": [
        "aa29ec5f79f61ad880771d53d37a341cc7f5dfa6"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 13 12:55:51 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:15 2013 +0000"
      },
      "message": "metag: move setup.c exports out of metag_ksyms.c\n\nIt\u0027s less error prone to have function symbols exported immediately\nafter the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL\nin metag_ksyms.c for symbols defined in setup.c into setup.c\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "aa29ec5f79f61ad880771d53d37a341cc7f5dfa6",
      "tree": "7e2aa91b2acd4a0466b1b7b38285219350ffe7dc",
      "parents": [
        "9fb4aa8723f6b332ee3089dc59c9ff7dcf2c0d47"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 13 13:01:55 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:15 2013 +0000"
      },
      "message": "metag: move kick.c exports out of metag_ksyms.c\n\nIt\u0027s less error prone to have function symbols exported immediately\nafter the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL\nin metag_ksyms.c for symbols defined in kick.c into kick.c\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "9fb4aa8723f6b332ee3089dc59c9ff7dcf2c0d47",
      "tree": "2c69f2ed034ca57ab8f172f75fe6c8659f9cdf62",
      "parents": [
        "fa771d029af8f8a23089c97b6ab6a5745e98ad7e"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Feb 13 12:19:03 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:14 2013 +0000"
      },
      "message": "metag: move traps.c exports out of metag_ksyms.c\n\nIt\u0027s less error prone to have function symbols exported immediately\nafter the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL\nin metag_ksyms.c for symbols defined in traps.c into traps.c\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "fa771d029af8f8a23089c97b6ab6a5745e98ad7e",
      "tree": "949fbbe9278e5da6711d2da055888e82772c2a62",
      "parents": [
        "97c3ec63089fdcd2abf66619b913900909841dc0"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Feb 12 16:04:53 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:14 2013 +0000"
      },
      "message": "metag: move irq enable out of irqflags.h on SMP\n\nThe SMP version of arch_local_irq_enable() uses preempt_disable(), but\n\u003casm/irqflags.h\u003e doesn\u0027t include \u003clinux/preempt.h\u003e causing the following\nerrors on SMP when pstore/ftrace is enabled (caught by buildbot smp\nallyesconfig):\n\nIn file included from include/linux/irqflags.h:15,\n                 from fs/pstore/ftrace.c:16:\narch/metag/include/asm/irqflags.h: In function \u0027arch_local_irq_enable\u0027:\narch/metag/include/asm/irqflags.h:84: error: implicit declaration of function \u0027preempt_disable\u0027\narch/metag/include/asm/irqflags.h:86: error: implicit declaration of function \u0027preempt_enable_no_resched\u0027\n\nHowever \u003clinux/preempt.h\u003e cannot be easily included from\n\u003casm/irqflags.h\u003e as it can cause circular include dependencies in the\n!SMP case, and potentially in the SMP case in the future. Therefore move\nthe SMP implementation of arch_local_irq_enable() into traps.c and use\nan inline version of get_trigger_mask() which is also defined in traps.c\nfor SMP.\n\nThis adds an extra layer of function call / stack push when\npreempt_disable needs to call other functions, however in the\nnon-preemptive SMP case it should be about as fast, as it was already\ncalling the get_trigger_mask() function which is now used inline.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "97c3ec63089fdcd2abf66619b913900909841dc0",
      "tree": "ca93519b5a80421ed1f6d2f41f7c405c7841bcf3",
      "parents": [
        "f75c28d896f4dd0064e60bba1e82a4c98908d239"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Mon Feb 11 15:40:24 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:13 2013 +0000"
      },
      "message": "genksyms: fix metag symbol prefix on crc symbols\n\nMeta uses symbol prefixes, so add \"metag\" to the list of architectures\nto set the mod_prefix to \"_\" for. This fixes __crc_* symbols to add the\nextra underscore to match _CRC_SYMBOL macro in \u003clinux/export.h\u003e and so\nthat modpost finds them.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "f75c28d896f4dd0064e60bba1e82a4c98908d239",
      "tree": "18097d57e812bdcd86634d86b6089fc07605946a",
      "parents": [
        "c838e72a35e49ea51c39c2c634ece028fa49c565"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Mon Feb 11 17:28:10 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:13 2013 +0000"
      },
      "message": "metag: hugetlb: convert to vm_unmapped_area()\n\nConvert hugetlb_get_unmapped_area_new_pmd() to use vm_unmapped_area()\nrather than searching the virtual address space itself. This fixes the\nfollowing errors in linux-next due to the specified members being\nremoved after other architectures have already been converted:\n\narch/metag/mm/hugetlbpage.c: In function \u0027hugetlb_get_unmapped_area_new_pmd\u0027:\narch/metag/mm/hugetlbpage.c:199: error: \u0027struct mm_struct\u0027 has no member named \u0027cached_hole_size\u0027\narch/metag/mm/hugetlbpage.c:200: error: \u0027struct mm_struct\u0027 has no member named \u0027free_area_cache\u0027\narch/metag/mm/hugetlbpage.c:215: error: \u0027struct mm_struct\u0027 has no member named \u0027cached_hole_size\u0027\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nAcked-by: Michel Lespinasse \u003cwalken@google.com\u003e\n"
    },
    {
      "commit": "c838e72a35e49ea51c39c2c634ece028fa49c565",
      "tree": "1fdd87314187b1e2e1f429d803154f0ecc0f75f0",
      "parents": [
        "f626dc704e761761b37efbb6320308461f159375"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Mon Feb 11 11:47:02 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:13 2013 +0000"
      },
      "message": "metag: export clear_page and copy_page\n\nVarious file systems use clear_page() and copy_page(), so when they\u0027re\nbuilt as modules we get build errors like the following:\n\nERROR: \"clear_page\" [fs/ntfs/ntfs.ko] undefined!\nERROR: \"copy_page\" [fs/nilfs2/nilfs2.ko] undefined!\n\nTherefore export these functions to modules from metag_ksyms.c to fix\nthe errors. This was hit by a randconfig build.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "f626dc704e761761b37efbb6320308461f159375",
      "tree": "c9fe9bf98a74c359a6f4790a871ce3647a7eb5b4",
      "parents": [
        "3d6b7bb0a2c518d24bc3036f9bbb6f3fb35462c3"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Mon Feb 11 11:43:20 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:11:12 2013 +0000"
      },
      "message": "metag: export metag_code_cache_flush_all\n\nVarious file systems indirectly use metag_code_cache_flush_all(), so\nwhen they\u0027re built as modules we get build errors like the following:\n\nERROR: \"metag_code_cache_flush_all\" [fs/xfs/xfs.ko] undefined!\n\nTherefore export this function to modules to fix the errors. This was\nhit by a randconfig build.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "3d6b7bb0a2c518d24bc3036f9bbb6f3fb35462c3",
      "tree": "d9f8427f6be3a3ec2882ac4c3e9ee2e0dbe9256d",
      "parents": [
        "c787c2d62fe0c482f5fb3e5b869cd262fe69b244"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Thu Jan 31 13:42:03 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:58 2013 +0000"
      },
      "message": "metag: protect more non-MMU memory regions\n\nRename setup_txprivext() to setup_priv() and add initialisation of some\nmore per-thread privilege protection registers:\n\n - TxPRIVSYSR: 0x04400000-0x047fffff\n               0x05000000-0x07ffffff\n               0x84000000-0x87ffffff\n - TxPIOREG:   0x02000000-0x02ffffff\n               0x04800000-0x048fffff\n - TxSYREG:    0x04000000-0x04000fff (except write fetch system event)\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "c787c2d62fe0c482f5fb3e5b869cd262fe69b244",
      "tree": "ad3a653e8ce81536a9d2d57976f09a2211de4d80",
      "parents": [
        "82f0167aa4c4bbc06b5a2e1e83d252792f7c5754"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Thu Jan 31 13:27:35 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:58 2013 +0000"
      },
      "message": "metag: make TXPRIVEXT bits explicit\n\nDefine PRIV_BITS using explicit constants from \u003casm/metag_regs.h\u003e rather\nthan with a hard coded value. This also adds a couple of missing\ndefinitions for the TXPRIVEXT priv bits for protecting writes to TXTIMER\nand the trace registers.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "82f0167aa4c4bbc06b5a2e1e83d252792f7c5754",
      "tree": "6d945c917963c7ea32e19fb7f3db6ba9d4120dfc",
      "parents": [
        "1bea5b8188e98611e4d6961647809f87b023e14c"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Thu Jan 31 13:38:48 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:57 2013 +0000"
      },
      "message": "metag: kernel/setup.c: sort includes\n\nSort includes in kernel/setup.c.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "1bea5b8188e98611e4d6961647809f87b023e14c",
      "tree": "a91e89f51bff4ab69379ce28957adeb23df80b39",
      "parents": [
        "883a635591ef25bc6a325f8a43af17ec8ecfe011"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Thu Jan 31 12:22:37 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:57 2013 +0000"
      },
      "message": "perf: Enable building perf tools for Meta\n\nDefine rmb(), cpu_relax(), and CPUINFO_PROC for Meta so that the perf\ntools can be built for Meta.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "883a635591ef25bc6a325f8a43af17ec8ecfe011",
      "tree": "2bc087451e14343e35cc6159cb91bfe0b5dd48f5",
      "parents": [
        "0a38a8adc5d479c1e59a82d1fcee3bdf59b85ef3"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Thu Jan 31 11:06:03 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:56 2013 +0000"
      },
      "message": "metag: add boot time LNKGET/LNKSET check\n\nAdd boot time check for whether LNKGET/LNKSET go through or around the\ncache. Depending on the configuration an info message (no harm), warning\n(technically wrong but no harm), or big WARN (expect failure in either\nkernel or userland) may be emitted if the behaviour is not as expected:\n\nConfiguration                                Hardware   Response\n------------------------------------------   --------   --------\nAROUND_CACHE                                 through    pr_info\n!AROUND_CACHE \u0026\u0026 ATOMICITY_LNKGET            around     WARN (kernel)\n     \"        \u0026\u0026 !ATOMICITY_LNKGET \u0026\u0026 SMP    around     WARN (user)\n     \"                   \"         \u0026\u0026 !SMP   around     pr_warn\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "0a38a8adc5d479c1e59a82d1fcee3bdf59b85ef3",
      "tree": "1284cb30541ef39b7c4a5a97891a482e9ad160c1",
      "parents": [
        "ae85ac71b7433fa974759109c4380c620258f07f"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Thu Jan 31 11:04:49 2013 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:56 2013 +0000"
      },
      "message": "metag: add __init to metag_cache_probe()\n\nmetag_cache_probe() is only called from setup_arch(), so add the __init\nattribute to it.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "ae85ac71b7433fa974759109c4380c620258f07f",
      "tree": "066915c6c1f0f830c35ff12f4a84e233b6fd15da",
      "parents": [
        "690998b629a554d8004d3129a42176afafce9fae"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Sep 21 17:38:15 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:56 2013 +0000"
      },
      "message": "metag: Add JTAG Debug Adapter (DA) support\n\nAdd basic JTAG Debug Adapter (DA) support so that drivers which\ncommunicate with the DA can detect whether one is actually present\n(otherwise the target will halt indefinitely).\n\nThis allows the metag_da TTY driver and imgdafs filesystem driver to be\nbuilt, updates defconfigs, and sets up the metag_da console early if\nit\u0027s configured in.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "690998b629a554d8004d3129a42176afafce9fae",
      "tree": "3fbc7fb494be89383301fb68b14af82de7e7a276",
      "parents": [
        "00512bdd4573674d10af1c1d60328b4b0f9dcafd"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Oct 17 15:21:13 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:55 2013 +0000"
      },
      "message": "scripts/checkstack.pl: Add metag support\n\nAdapt checkstack.pl so that it works for metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "00512bdd4573674d10af1c1d60328b4b0f9dcafd",
      "tree": "31f0db0a3ea2887bc6b6bb17dd1e09c508d2f803",
      "parents": [
        "903b20ad6810e05bc5f7cc038257e80463e71001"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 16:27:31 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:55 2013 +0000"
      },
      "message": "metag: ftrace support\n\nAdd ftrace support for metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "903b20ad6810e05bc5f7cc038257e80463e71001",
      "tree": "592087306a334c55c00aba52ba1246da68f5f636",
      "parents": [
        "5633004cc2498ff50a5b88d415d3746ff0c301f2"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 16:54:55 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:54 2013 +0000"
      },
      "message": "metag: Perf\n\nAdd Perf support for metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\n"
    },
    {
      "commit": "5633004cc2498ff50a5b88d415d3746ff0c301f2",
      "tree": "b60265906c89e68022b8013e2aa2a19127fe3a24",
      "parents": [
        "79f83c02944ccb3dffbc5852e63e966ea34ed63e"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:32 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:54 2013 +0000"
      },
      "message": "metag: Build infrastructure\n\nAdd metag build infrastructure.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "79f83c02944ccb3dffbc5852e63e966ea34ed63e",
      "tree": "c23ee5762f2fd7f3d94c7245cf72f8bbb42c5f7e",
      "parents": [
        "9ca52ed979b6b45ae480a5fc56d593efb3bf16e8"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Wed Dec 05 11:34:13 2012 +0000"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:53 2013 +0000"
      },
      "message": "Kconfig.debug: add METAG to dependency lists\n\nAdd [!]METAG to a couple of Kconfig dependencies in lib/Kconfig.debug.\nDon\u0027t allow stack utilization instrumentation on metag, and allow\nbuilding with frame pointers.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: \"Paul E. McKenney\" \u003cpaul.mckenney@linaro.org\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "9ca52ed979b6b45ae480a5fc56d593efb3bf16e8",
      "tree": "ebf6aa82302ad45b22b95f2e5163897c1b1d4db4",
      "parents": [
        "1e57372eaccdd5959b8ae00bf99aa10d330f207d"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 16 10:16:14 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:53 2013 +0000"
      },
      "message": "mm: define VM_GROWSUP for CONFIG_METAG\n\nCommit cc2383ec06be093789469852e1fe96e1148e9a2c (\"mm: introduce\narch-specific vma flag VM_ARCH_1\") merged in v3.7-rc1.\n\nThe above commit combined several arch-specific vma flags into one, and\nin the process it changed the VM_GROWSUP definition to depend on\nspecific architectures rather than CONFIG_STACK_GROWSUP. Therefore add\nan ifdef for CONFIG_METAG to also set VM_GROWSUP.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-mm@kvack.org\n"
    },
    {
      "commit": "1e57372eaccdd5959b8ae00bf99aa10d330f207d",
      "tree": "aec9b42d31ba4026b7a6e24772f5877af984e973",
      "parents": [
        "e8de3486a4b06389d4f996eb2dda678a39f20115"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 16:22:14 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:52 2013 +0000"
      },
      "message": "metag: Various other headers\n\nAdd the remaining metag header files:\n - byteorder.h, swab.h (byte order and swapping)\n - barrier.h, cpu.h. hwthread.h, processor.h (hardware thread related)\n - bug.h, elf.h, gpio.h, linkage.h, resource.h (other)\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "e8de3486a4b06389d4f996eb2dda678a39f20115",
      "tree": "2a72c3bf3394335fb638cb27ae187919387c94f1",
      "parents": [
        "086e9dc0e2ca925b1b58caefd04ed2757d14790b"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 17:01:38 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:52 2013 +0000"
      },
      "message": "metag: Stack unwinding\n\nAdd stack unwinding support for metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "086e9dc0e2ca925b1b58caefd04ed2757d14790b",
      "tree": "cfe182f1d07d40d09d2cae09e337423462250cac",
      "parents": [
        "f507758ccbed5c354cc1ce3b8f53ea072d7bc222"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 17:02:09 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:52 2013 +0000"
      },
      "message": "metag: Optimised library functions\n\nAdd optimised library functions for metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "f507758ccbed5c354cc1ce3b8f53ea072d7bc222",
      "tree": "dd474b63b194039b5c6c97790016f55a02a93643",
      "parents": [
        "42682c6c42a5765b2c7cccfca170368fef6191ef"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 16:27:03 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:51 2013 +0000"
      },
      "message": "metag: DMA\n\nAdd DMA mapping code.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "42682c6c42a5765b2c7cccfca170368fef6191ef",
      "tree": "adcfa5e96cd98527ee75fc541efc279357bbe6a2",
      "parents": [
        "fdabf525b4b7aab3945c19eac39d3a65b68d0c4f"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 16:56:56 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:51 2013 +0000"
      },
      "message": "metag: SMP support\n\nAdd SMP support for metag. This allows Linux to take control of multiple\nhardware threads on a single Meta core, treating them as separate Linux\nCPUs.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "fdabf525b4b7aab3945c19eac39d3a65b68d0c4f",
      "tree": "d7e3612eb9e838e87b89fe322a08c00da0875439",
      "parents": [
        "6006c0d8ce9441dd1363bf14f18a8e28d3588460"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 11:00:27 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:50 2013 +0000"
      },
      "message": "metag: Basic documentation\n\nAdd basic metag documentation. This includes an outline description of\nthe ABIs (including syscall ABI) and calling conventions, similar to the\none in Documentation/frv/.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: linux-doc@vger.kernel.org\n"
    },
    {
      "commit": "6006c0d8ce9441dd1363bf14f18a8e28d3588460",
      "tree": "786183053c89e11b3058b8a16f7953744b819340",
      "parents": [
        "9b802d1f43978869fcd98e92b854fd8785cefee7"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 11:00:24 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:50 2013 +0000"
      },
      "message": "metag: Atomics, locks and bitops\n\nAdd header files to implement Meta hardware thread locks (used by some\nother atomic operations), atomics, spinlocks, and bitops.\n\nThere are 2 main types of atomic primitives for metag (in addition to\nIRQs off on UP):\n - LOCK instructions provide locking between hardware threads.\n - LNKGET/LNKSET instructions provide load-linked/store-conditional\n   operations allowing for lighter weight atomics on Meta2\n\nLOCK instructions allow for hardware threads to acquire voluntary or\nexclusive hardware thread locks:\n - LOCK0 releases exclusive and voluntary lock from the running hardware\n   thread.\n - LOCK1 acquires the voluntary hardware lock, blocking until it becomes\n   available.\n - LOCK2 implies LOCK1, and additionally acquires the exclusive hardware\n   lock, blocking all other hardware threads from executing.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "9b802d1f43978869fcd98e92b854fd8785cefee7",
      "tree": "67bc3e7d033cab101dd1cdaa00500b2787572376",
      "parents": [
        "44dea393cf98a09b4b9f00dc3dd7e2c211f4b0e8"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:55:00 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:49 2013 +0000"
      },
      "message": "metag: Module support\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "44dea393cf98a09b4b9f00dc3dd7e2c211f4b0e8",
      "tree": "a2d5aed0af6fcf05b9ea882a4915ce446cffb6a4",
      "parents": [
        "26025bbfbba33a9425be1b89eccb4664ea4c17b6"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:54 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:49 2013 +0000"
      },
      "message": "metag: Scheduling/Process management\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "26025bbfbba33a9425be1b89eccb4664ea4c17b6",
      "tree": "f8a7f754525812c4d758b638d9bcade297af67da",
      "parents": [
        "5698c50d9da4ab2f57d98c64ea97675dcaf2a608"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:51 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:49 2013 +0000"
      },
      "message": "metag: System Calls\n\nAdd metag system call and gateway page interfaces. The metag\narchitecture port uses the generic system call numbers from\nasm-generic/unistd.h, as well as a user gateway page mapped at\n0x6ffff000 which contains fast atomic primitives (depending on SMP) and\na fast method of accessing TLS data.\n\nSystem calls use the SWITCH instruction with the immediate 0x440001 to\nsignal a system call.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "5698c50d9da4ab2f57d98c64ea97675dcaf2a608",
      "tree": "5b82a24daa8bbb85703489340cbfdcb00a2f20a4",
      "parents": [
        "63047ea36070d11f902ab7d09a5a18aea037c0f7"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:47 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:48 2013 +0000"
      },
      "message": "metag: Internal and external irqchips\n\nMeta core internal interrupts (from HWSTATMETA and friends) are vectored\nonto the TR1 core trigger for the current thread. This is demultiplexed\nin irq-metag.c to individual Linux IRQs for each internal interrupt.\n\nExternal SoC interrupts (from HWSTATEXT and friends) are vectored onto\nthe TR2 core trigger for the current thread. This is demultiplexed in\nirq-metag-ext.c to individual Linux IRQs for each external SoC interrupt.\nThe external irqchip has devicetree bindings for configuring the number\nof irq banks and the type of masking available.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nCc: Dom Cobley \u003cpopcornmix@gmail.com\u003e\nCc: Simon Arlott \u003csimon@fire.lp0.eu\u003e\nCc: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nCc: Maxime Ripard \u003cmaxime.ripard@free-electrons.com\u003e\nCc: devicetree-discuss@lists.ozlabs.org\nCc: linux-doc@vger.kernel.org\n"
    },
    {
      "commit": "63047ea36070d11f902ab7d09a5a18aea037c0f7",
      "tree": "f82e359be810c8b747ed390fc942e8a3d91226f3",
      "parents": [
        "ac919f0883e53d7785745566692c8a0620abd7ea"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:47 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:48 2013 +0000"
      },
      "message": "metag: IRQ handling\n\nAdd core IRQ handling for metag. The code in irq.c exposes the TBX\nsignal numbers as Linux IRQs.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    },
    {
      "commit": "ac919f0883e53d7785745566692c8a0620abd7ea",
      "tree": "521a0b0ddcab5176a1998d0b7b9faefde6e3f0ae",
      "parents": [
        "a2c5d4ed92bbc02ff4a37efc2adffe7d145abe4f"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:43 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:45 2013 +0000"
      },
      "message": "metag: Traps\n\nAdd trap code for metag. At the lowest level Meta traps (and return from\ninterrupt instruction - RTI) simply swap the PC and PCX registers and\noptionally toggle the interrupt status bit (ISTAT). Low level TBX code\nin tbipcx.S handles the core context save, determine the TBX signal\nnumber based on the core trigger that fired (using the TXSTATI status\nregister), and call TBX signal handlers (mostly in traps.c) via a vector\ntable.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2c5d4ed92bbc02ff4a37efc2adffe7d145abe4f",
      "tree": "21fc65e4f0b04928025565f208a410a7a64ab523",
      "parents": [
        "bc3966bf1583a6c22b76397535174445c43952de"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:39 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:22 2013 +0000"
      },
      "message": "metag: Time keeping\n\nAdd time keeping code for metag. Meta hardware threads have 2 timers.\nThe background timer (TXTIMER) is used as a free-running time base, and\nthe interrupt timer (TXTIMERI) is used for the timer interrupt. Both\ncounters traditionally count at approximately 1MHz.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bc3966bf1583a6c22b76397535174445c43952de",
      "tree": "8854b33e95c672078bb32fe878f39b9d716accb5",
      "parents": [
        "29dd78cf0b526d24063364a8c634b3e92514c1a2"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:36 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:22 2013 +0000"
      },
      "message": "metag: ptrace\n\nThe ptrace interface for metag provides access to some core register\nsets using the PTRACE_GETREGSET and PTRACE_SETREGSET operations. The\ndetails of the internal context structures is abstracted into user API\nstructures to both ease use and allow flexibility to change the internal\ncontext layouts. Copyin and copyout functions for these register sets\nare exposed to allow signal handling code to use them to copy to and\nfrom the signal context.\n\nstruct user_gp_regs (NT_PRSTATUS) provides access to the core general\npurpose register context.\n\nstruct user_cb_regs (NT_METAG_CBUF) provides access to the TXCATCH*\nregisters which contains information abuot a memory fault, unaligned\naccess error or watchpoint. This can be modified to alter the way the\nfault is replayed on resume (\"catch replay\"), or to prevent the replay\ntaking place.\n\nstruct user_rp_state (NT_METAG_RPIPE) provides access to the state of\nthe Meta read pipeline which can be used to hide memory latencies in\nhand optimised data loops.\n\nExtended DSP register state, DSP RAM, and hardware breakpoint registers\naren\u0027t yet exposed through ptrace.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "29dd78cf0b526d24063364a8c634b3e92514c1a2",
      "tree": "4dfa291da2d101242f5536be0146cba25e398838",
      "parents": [
        "262d96b0deb44ed58823447825d6efa5dddb4108"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Fri Oct 05 16:02:12 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:22 2013 +0000"
      },
      "message": "metag: Device tree\n\nAdd device tree files to arch/metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nReviewed-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\n"
    },
    {
      "commit": "262d96b0deb44ed58823447825d6efa5dddb4108",
      "tree": "03712555691c86256a409ceccf529f5bb7ebb37c",
      "parents": [
        "c438b58e65462cfff172b396d03d6bc45c971fca"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:27 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:21 2013 +0000"
      },
      "message": "metag: Signal handling\n\nAdd signal handling code for metag.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c438b58e65462cfff172b396d03d6bc45c971fca",
      "tree": "3d8ea3cfbe75f4e6b41f5f41f36c889df5b0f7d8",
      "parents": [
        "bbc17704d5d3a8e4325dae74c2a2e77218c26057"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 09 10:54:17 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:21 2013 +0000"
      },
      "message": "metag: TCM support\n\nAdd some TCM support\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\n"
    }
  ],
  "next": "bbc17704d5d3a8e4325dae74c2a2e77218c26057"
}
