)]}'
{
  "log": [
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "b54452b07a7b1b8cc1385edba3ef2ef6d4679d5a",
      "tree": "c8a7271b14c4cd9e0dc22a5d0a3bed9e79c88e36",
      "parents": [
        "3ffe533c87281b68d469b279ff3a5056f9c75862"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Feb 18 08:14:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 14:30:18 2010 -0800"
      },
      "message": "const: struct nla_policy\n\nMake remaining netlink policies as const.\nFixup coding style where needed.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "de9315fa3a35ebe587cc1a1c88655d095846785e",
      "tree": "184d55b02470af301bdcd1e9f9f482ea24da1c64",
      "parents": [
        "9835fd84990ca253c5b625005717a9be492788c0"
      ],
      "author": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Wed Sep 30 16:33:26 2009 -0700"
      },
      "committer": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Mon Oct 19 15:56:13 2009 +0900"
      },
      "message": "wimax: allow user space to send messages once the device is registered\n\nIt makes sense that the messaging pipe to the device can be used\nbefore the device is fully ready, as long as it is registered with the\nstack. Some debugging tools need it.\n\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\n"
    },
    {
      "commit": "52a8d9630890f2289354d03e8751bf0eba2b3376",
      "tree": "abac1de1d3eab2e1bbbced60cc304ed1337a0a7d",
      "parents": [
        "052991d7ac7f7b2c0319e6ccd2e8a48a71f2bd58"
      ],
      "author": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Tue May 05 21:05:16 2009 -0700"
      },
      "committer": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Thu May 28 18:02:04 2009 -0700"
      },
      "message": "wimax: document why wimax_msg_*() operations can be used in any state\n\nFuncion documentation for wimax_msg_alloc() and wimax_msg_send() needs\nto clarify that they can be used in the very early stages of a\nwimax_dev lifecycle.\n\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\n"
    },
    {
      "commit": "d1a2627a29667fe7c4a9d06e1579a2d65bd39bba",
      "tree": "903881c40ed4d5c6f8c9664bc6f189baedcdef5b",
      "parents": [
        "356d6c2d55b71303a17910ea2cce3eba8e44bd29"
      ],
      "author": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Mon Mar 30 17:50:17 2009 -0700"
      },
      "committer": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Wed May 06 13:48:36 2009 -0700"
      },
      "message": "wimax: fix oops if netlink fails to add attribute\n\nWhen sending a message to user space using wimax_msg(), if nla_put()\nfails, correctly interpret the return code from wimax_msg_alloc() as\nan err ptr and return the error code instead of crashing (as it is\nassuming than non-NULL means the pointer is ok).\n\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\n"
    },
    {
      "commit": "ff491a7334acfd74e515c896632e37e401f52676",
      "tree": "0e3663706a706029d6fc749ef7f66cdd03925231",
      "parents": [
        "612e244c12215f6f74973ea3b89bff96450dc530"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Feb 05 23:56:36 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 05 23:56:36 2009 -0800"
      },
      "message": "netlink: change return-value logic of netlink_broadcast()\n\nCurrently, netlink_broadcast() reports errors to the caller if no\nmessages at all were delivered:\n\n1) If, at least, one message has been delivered correctly, returns 0.\n2) Otherwise, if no messages at all were delivered due to skb_clone()\n   failure, return -ENOBUFS.\n3) Otherwise, if there are no listeners, return -ESRCH.\n\nWith this patch, the caller knows if the delivery of any of the\nmessages to the listeners have failed:\n\n1) If it fails to deliver any message (for whatever reason), return\n   -ENOBUFS.\n2) Otherwise, if all messages were delivered OK, returns 0.\n3) Otherwise, if no listeners, return -ESRCH.\n\nIn the current ctnetlink code and in Netfilter in general, we can add\nreliable logging and connection tracking event delivery by dropping the\npackets whose events were not successfully delivered over Netlink. Of\ncourse, this option would be settable via /proc as this approach reduces\nperformance (in terms of filtered connections per seconds by a stateful\nfirewall) but providing reliable logging and event delivery (for\nconntrackd) in return.\n\nThis patch also changes some clients of netlink_broadcast() that\nmay report ENOBUFS errors via printk. This error handling is not\nof any help. Instead, the userspace daemons that are listening to\nthose netlink messages should resync themselves with the kernel-side\nif they hit ENOBUFS.\n\nBTW, netlink_broadcast() clients include those that call\ncn_netlink_send(), nlmsg_multicast() and genlmsg_multicast() since they\ninternally call netlink_broadcast() and return its error value.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3e65646bb12be03b14dff53907391095a52d5f49",
      "tree": "5ab2961f02a2d078990e69584af81b1197fb2392",
      "parents": [
        "3efb40c2c6eea315abcf19239c15d088e2498299"
      ],
      "author": {
        "name": "Inaky Perez-Gonzalez",
        "email": "inaky@linux.intel.com",
        "time": "Sat Dec 20 16:57:38 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jan 07 10:00:17 2009 -0800"
      },
      "message": "wimax: basic API: kernel/user messaging, rfkill and reset\n\nImplements the three basic operations provided by the stack\u0027s control\ninterface to WiMAX devices:\n\n- Messaging channel between user space and driver/device\n\n  This implements a direct communication channel between user space\n  and the driver/device, by which free form messages can be sent back\n  and forth.\n\n  This is intended for device-specific features, vendor quirks, etc.\n\n- RF-kill framework integration\n\n  Provide most of the RF-Kill integration for WiMAX drivers so that\n  all device drivers have to do is after wimax_dev_add() is call\n  wimax_report_rfkill_{hw,sw}() to update initial state and then every\n  time it changes.\n\n  Provides wimax_rfkill() for the kernel to call to set software\n  RF-Kill status and/or query current hardware and software switch\n  status.\n\n  Exports wimax_rfkill() over generic netlink to user space.\n\n- Reset a WiMAX device\n\n  Provides wimax_reset() for the kernel to reset a wimax device as\n  needed and exports it over generic netlink to user space.\n\nThis API is clearly limited, as it still provides no way to do the\nbasic scan, connect and disconnect in a hardware independent way.  The\nWiMAX case is more complex than WiFi due to the way networks are\ndiscovered and provisioned.\n\nThe next developments are to add the basic operations so they can be\nofferent by different drivers. However, we\u0027d like to get more vendors\nto jump in and provide feedback of how the user/kernel API/abstraction\nlayer should be.\n\nThe user space code for the i2400m, as of now, uses the messaging\nchannel, but that will change as the API evolves.\n\nSigned-off-by: Inaky Perez-Gonzalez \u003cinaky@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    }
  ]
}
