)]}'
{
  "log": [
    {
      "commit": "ae5e49c79c051ea1d5ca91cbd4a0d22189067ba3",
      "tree": "06db2f9f459515ee6e2cc74721108e718d8a6afc",
      "parents": [
        "68229689b6dc950bea4b81dd60563884f4a7e1c5"
      ],
      "author": {
        "name": "Alan Ott",
        "email": "alan@signal11.us",
        "time": "Tue Jan 04 00:37:22 2011 -0500"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 04 11:21:28 2011 +0100"
      },
      "message": "HID: hidraw: add compatibility ioctl() for 32-bit applications.\n\nAdded the ioctl function to the compat_ioctl pointer in the file_operations\nstruct. Before this, some ioctls would fail for 32-bit apps on 64-bit systems.\n\nSigned-off-by: Alan Ott \u003calan@signal11.us\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2ade0c1d9d93b7642212657ef76f4a1e30233711",
      "tree": "63bc720c0ffe5f4760cac4ed617b9870b050175e",
      "parents": [
        "504499f22c08a03e2e19dc88d31aa0ecd2ac815e",
        "6313e3c21743cc88bb5bd8aa72948ee1e83937b6"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 10 15:19:18 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 10 15:19:18 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into upstream\n"
    },
    {
      "commit": "4291ee305e9bb0699504a66f0e2b7aefcf0512a5",
      "tree": "3996b77eb64d4f3b76a0799f30a5b2ba6cbc9ddb",
      "parents": [
        "5bea7660bba973dc5e8e9d92b11fb1dd5b524ebf"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Dec 09 19:29:03 2010 -0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 10 15:10:38 2010 +0100"
      },
      "message": "HID: Add and use hid_\u003clevel\u003e: dev_\u003clevel\u003e equivalents\n\nNeaten current uses of dev_\u003clevel\u003e by adding and using\nhid specific hid_\u003clevel\u003e macros.\n\nConvert existing uses of dev_\u003clevel\u003e uses to hid_\u003clevel\u003e.\nConvert hid-pidff printk uses to hid_\u003clevel\u003e.\n\nRemove err_hid and use hid_err instead.\n\nAdd missing newlines to logging messages where necessary.\nCoalesce format strings.\n\nAdd and use pr_fmt(fmt) KBUILD_MODNAME \": \" fmt\n\nOther miscellaneous changes:\n\nAdd const struct hid_device * argument to hid-core functions\nextract() and implement() so hid_\u003clevel\u003e can be used by them.\nFix bad indentation in hid-core hid_input_field function\nthat calls extract() function above.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "5bea7660bba973dc5e8e9d92b11fb1dd5b524ebf",
      "tree": "511ae632c2d2c22d94956ed2d236bd8654d27ff0",
      "parents": [
        "33d6eb570b1f3fe5ba93cef465c5be66535c2c9a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Dec 07 23:02:48 2010 -0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Dec 08 14:35:14 2010 +0100"
      },
      "message": "HID: add hid_hw_open/close/power() handlers\n\nInstead of exposing the guts of hid-\u003ell_driver relationship to HID\nsub-drivers provide these helpers to encapsulate the details.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3d9d74336c10c133ed062a1d778d457c6a46422",
      "tree": "3763bf5b68feca1088c5a87c6bdb23b14c42b736",
      "parents": [
        "35da7a307c535f9c2929cae277f3df425c9f9b1e",
        "569b10a506c4d5bc7398d040930539d84d3a2186",
        "cb174681a9ececa6702f114b85bdf82144b6a5af"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sat Oct 23 22:44:36 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sat Oct 23 22:44:36 2010 +0200"
      },
      "message": "Merge branches \u0027upstream\u0027 and \u0027upstream-fixes\u0027 into for-linus\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "cb174681a9ececa6702f114b85bdf82144b6a5af",
      "tree": "569ab434de51b3d323de65426f8cd55281b9e765",
      "parents": [
        "a850ea30374ebed32a0724742601861853fde869"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Oct 19 11:29:55 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Oct 20 16:54:04 2010 +0200"
      },
      "message": "HID: hidraw: fix window in hidraw_release\n\nThere is a window between hidraw_table check and its dereference.\nIn that window, the device may be unplugged and removed form the\nsystem and we will then dereference NULL.\n\nLock that place properly so that either we get NULL and jump out or we\ncan work with real pointer.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "e42dee9a99a3ecd32b5c027e8f7411fb5bc11eb6",
      "tree": "98ddb05e7f8eb8420ad376d3c8ef8f2a993659ea",
      "parents": [
        "d20d5ffab92f00188f360c44c791a5ffb988247c"
      ],
      "author": {
        "name": "Antonio Ospite",
        "email": "ospite@studenti.unina.it",
        "time": "Tue Oct 05 17:20:17 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Oct 06 11:30:34 2010 +0200"
      },
      "message": "HID: hidraw, fix a NULL pointer dereference in hidraw_write\n\nBUG: unable to handle kernel NULL pointer dereference at 0000000000000028\nIP: [\u003cffffffffa0f0a625\u003e] hidraw_write+0x3b/0x116 [hid]\n[...]\n\nThis is reproducible by disconnecting the device while userspace writes\nto dev node in a loop and doesn\u0027t check return values in order to exit\nthe loop.\n\nSigned-off-by: Antonio Ospite \u003cospite@studenti.unina.it\u003e\nCc: stable@kernel.org\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d20d5ffab92f00188f360c44c791a5ffb988247c",
      "tree": "26436afefabbd123e4c7362f9734f25a16d02922",
      "parents": [
        "a850ea30374ebed32a0724742601861853fde869"
      ],
      "author": {
        "name": "Antonio Ospite",
        "email": "ospite@studenti.unina.it",
        "time": "Tue Oct 05 17:20:16 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Oct 06 11:30:31 2010 +0200"
      },
      "message": "HID: hidraw, fix a NULL pointer dereference in hidraw_ioctl\n\nBUG: unable to handle kernel NULL pointer dereference at 0000000000000028\nIP: [\u003cffffffffa02c66b4\u003e] hidraw_ioctl+0xfc/0x32c [hid]\n[...]\n\nThis is reproducible by disconnecting the device while userspace does\nioctl in a loop and doesn\u0027t check return values in order to exit the\nloop.\n\nSigned-off-by: Antonio Ospite \u003cospite@studenti.unina.it\u003e\nCc: stable@kernel.org\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "83efb8fe671af3c7b5613868aadc93ce973b6c3d",
      "tree": "c78ee29b7c17139ec4cf9deb5c0ec5ef9b4d448b",
      "parents": [
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Stefan Achatz",
        "email": "erazor_de@users.sourceforge.net",
        "time": "Wed May 19 22:41:10 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 25 09:47:19 2010 +0200"
      },
      "message": "HID: remove unused variable from hidraw_read\n\nRemoved unused variable from hidraw_read.\n\nSigned-off-by: Stefan Achatz \u003cerazor_de@users.sourceforge.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ef77ad5e67447b3744574c29b97da6677d6d3f18",
      "tree": "6eea09e0ca802da6c4236155b30e7a5c38c2b436",
      "parents": [
        "7426ef52b42ebd54ba85133ffd29132e008a882c",
        "23d021167eebf0df5ccadf4f8de5ccb8d4ac2904",
        "da54a0ced4502dc2a25df034f218463a2a50488d",
        "f77e347bd44e3640bdc56003b7402c63ddb1241d",
        "6a740aa4f47b9f29bad5292cf51f008f3edad9b1"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed May 19 14:05:06 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed May 19 14:05:06 2010 +0200"
      },
      "message": "Merge branches \u0027upstream-fixes\u0027, \u0027bkl-removal\u0027, \u0027debugfs-fixes\u0027 and \u0027hid-suspend\u0027 into for-linus\n"
    },
    {
      "commit": "7426ef52b42ebd54ba85133ffd29132e008a882c",
      "tree": "5232ca850065baf025e8d7384408b48b4b462c96",
      "parents": [
        "537b60d17894b7c19a6060feae40299d7109d6e7",
        "a8ab5d58b0238b8199cc699b8dff7c5e1da24138"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed May 19 14:04:49 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed May 19 14:04:49 2010 +0200"
      },
      "message": "Merge branch \u0027upstream\u0027 into for-linus\n\nConflicts:\n\tdrivers/hid/hid-wacom.c\n"
    },
    {
      "commit": "81cd584394e54514c57b18e0f23e0b5ca40070b2",
      "tree": "665da564e62509a9bd55f8a6d03d37265d46434c",
      "parents": [
        "fe6065dc30c8cdd4beaffd6d3fa110222ad08795"
      ],
      "author": {
        "name": "Antonio Ospite",
        "email": "ospite@studenti.unina.it",
        "time": "Fri Apr 30 21:49:58 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue May 11 10:47:55 2010 +0200"
      },
      "message": "HID: hidraw: fix indentation\n\nSigned-off-by: Antonio Ospite \u003cospite@studenti.unina.it\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "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": "0a504541b3ba593535d70f3124546e5e471a175e",
      "tree": "60dc33b81aa081f697510f40c17cf7263ef549a7",
      "parents": [
        "2e57480b2a717916510b0c23b2851398a4cbd958"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Mar 25 15:20:01 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Mar 25 15:20:01 2010 +0100"
      },
      "message": "HID: remove excessive _EMERG messages from hidraw\n\nWe don\u0027t need to shout loudly when device gets disconnected\nwhile hidraw node has been open, as this is properly handled\nin disconnect() and protected by minors_lock already.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2e57480b2a717916510b0c23b2851398a4cbd958",
      "tree": "69491b58b4d661186e4925089d88d49fab8b02f6",
      "parents": [
        "39710479303fd3affb3e204e9a7a75cc676977b5"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Mar 25 14:15:11 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Mar 25 14:29:14 2010 +0100"
      },
      "message": "HID: remove BKL from hidraw\n\nRemove BKL from hidraw, which is possible through fixing the\nlocking of minors_lock mutex properly -- it is now used to\nguard all accessess to hidraw_table[], preventing it to becoming\nNULL unexpectedly by unregistering the device.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d4bfa033ed84e0ae446eff445d107ffd5ee78df3",
      "tree": "20e76bfa4d6249e1d51dcca7aa29deb4f0cf8673",
      "parents": [
        "c80d292f137275a1ed88e6ed515ecb457051f1a4"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jan 29 15:03:36 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Feb 03 15:41:52 2010 +0100"
      },
      "message": "HID: make raw reports possible for both feature and output reports\n\nIn commit 2da31939a42 (\"Bluetooth: Implement raw output support for HIDP\nlayer\"), support for Bluetooth hid_output_raw_report was added, but it\npushes the data to the intr socket instead of the ctrl one. This has been\nfixed by 6bf8268f9a91f1 (\"Bluetooth: Use the control channel for raw HID reports\")\n\nStill, it is necessary to distinguish whether the report in question should be\neither FEATURE or OUTPUT. For this, we have to extend the generic HID API,\nso that hid_output_raw_report() callback provides means to specify this\nvalue so that it can be passed down to lower level hardware drivers (currently\nBluetooth and USB).\n\nBased on original patch by Bastien Nocera \u003chadess@hadess.net\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "03266d28ca5bf1959ee91dc6554c01b790975352",
      "tree": "f98e36f3d3108344a82e9ccdb30790121ed93b5e",
      "parents": [
        "ae445b9134126314844ad9e84010bae5e6684103",
        "b0e14951ee0f6c29abc64b92ec7075a159ede37c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 13 10:10:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 13 10:10:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: fix possible deadlock in hidraw_read\n  HID: fix kerneldoc comment for hid_input_report()\n  HID: add __init/__exit macros to twinhan.c\n"
    },
    {
      "commit": "b0e14951ee0f6c29abc64b92ec7075a159ede37c",
      "tree": "aa10393c1f54a2342fbd4d3624d6e68de376cd8d",
      "parents": [
        "ff9b00a226ccea66e6ce70e9083c42f5b6001f73"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Oct 12 11:25:56 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Oct 12 11:25:56 2009 +0200"
      },
      "message": "HID: fix possible deadlock in hidraw_read\n\nIf the loop in hidraw_read() loops more than once, then we might\nend up trying to acquire already locked mutex, casuing a deadlock.\n\nReported-by: iceberg \u003ciceberg@ispras.ru\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "a99bbaf5ee6bad1aca0c88ea65ec6e5373e86184",
      "tree": "2b0314d68b9e0a76e8f4fb60865a1d56e138833a",
      "parents": [
        "5e5027bd26ed4df735d29e66cd5c1c9b5959a587"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Oct 04 16:11:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 04 15:05:10 2009 -0700"
      },
      "message": "headers: remove sched.h from poll.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbe281fad65f2eda1792d70763663a1b729fc03c",
      "tree": "077eeca884c95a94787a37c89dfc9bd6bebbdd60",
      "parents": [
        "f0bca459829fd33d659c8cd0369ac86a3924a9bc"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Jun 04 15:44:25 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Jun 04 15:44:25 2009 +0200"
      },
      "message": "HID: hidraw -- fix comment about accepted devices\n\nhidraw accepts any devices, no matter if the device has\nalready been claimed by other HID driver (hid-input, hidraw), and\nthis is intended to stay. Fix up the comment to reflect reality.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "38089c658bf372adc2bd7b3597fceac0c7cecca6",
      "tree": "5405426d82594bc2424d1036996bc1da0d1aade4",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Apr 07 16:35:56 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Apr 07 16:35:56 2009 +0200"
      },
      "message": "HID: hidraw -- fix missing unlocks in unlocked_ioctl\n\nThere were 2 places that returned directly instead of releasing their\nlocks.  I sent a fix for this file earlier but ended up missing these\nspots.  I think what happened is that I have improved my checker script\nsince then...  Or maybe I just screwed up.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0361a28d3f9a4315a100c7b37ba0b55cfe15fe07",
      "tree": "2aa33c5325118e68ce8691a009c5fb30ffdea68c",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Wed Dec 17 15:38:03 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Mar 25 17:57:57 2009 +0100"
      },
      "message": "HID: autosuspend support for USB HID\n\nThis uses the USB busy mechanism for aggessive autosuspend of USB\nHID devices. It autosuspends all opened devices supporting remote wakeup\nafter a timeout unless\n\n- output is being done to the device\n- a key is being held down (remote wakeup isn\u0027t triggered upon key release)\n- LED(s) are lit\n- hiddev is opened\n\nAs in the current driver closed devices will be autosuspended even if they\ndon\u0027t support remote wakeup.\n\nThe patch is quite large because output to devices is done in hard interrupt\ncontext meaning a lot a queuing and locking had to be touched. The LED stuff\nhas been solved by means of a simple counter. Additions to the generic HID code\ncould be avoided. In addition it now covers hidraw. It contains an embryonic\nversion of an API to let the generic HID code tell the lower levels which\ncapabilities with respect to power management are needed.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "dfd395aff4cb16d2480b280064bea1b19ededef1",
      "tree": "54a64c67f6284fe431126741033fcf71bfbe809c",
      "parents": [
        "35cfd1d964f3c2420862f2167a0eb85ff1208999"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Feb 03 16:35:17 2009 +0300"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 17 13:25:01 2009 +0100"
      },
      "message": "HID: unlock properly on error paths in hidraw_ioctl()\n\nWe can\u0027t return immediately because lock_kernel() is held.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ed42350e02bfcb333024949e9653d06916135cc5",
      "tree": "08e2ff6c3cb90193677e67b1f23b85d1ba775f74",
      "parents": [
        "1db489b2953799d41098a891c85dea02e3c4721a",
        "4dfdc46468a142216b284eea66040f49df3f7191"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jan 04 01:04:09 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jan 04 01:04:09 2009 +0100"
      },
      "message": "Merge branch \u0027upstream-fixes\u0027 into for-next\n\nConflicts:\n\n\tdrivers/hid/hid-ids.h\n"
    },
    {
      "commit": "b8a832b1c0a70531b4bd69a67aa0bf72f6f2dc34",
      "tree": "61ff346a6b1381d7d2e1cba33902fe3f5fe1c91c",
      "parents": [
        "25e61613cf3ca7f6d5f89a707b20c9eed6b74455"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Mon Dec 15 13:12:08 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jan 04 01:01:43 2009 +0100"
      },
      "message": "HID: fix reference count leak hidraw\n\nThe hidraw subsystem has a bug that prevents the close syscall from ever\nreaching the low level driver, leading to a resource leak. Fix by replacing\npostdecrement with predecrement.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "aae6c286dad33c7f2c6992b9e310a371f2ae377e",
      "tree": "797315ece85368c2ed1e646dfeebb79d4823b3f8",
      "parents": [
        "3a6f82f7a22cf19687f556997c6978b31c109360"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Dec 04 16:16:46 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jan 04 01:00:52 2009 +0100"
      },
      "message": "HID: set proper dev.parent in hidraw\n\nWe need to properly set parent of the hidraw device (which is the\ncorresponding physical device itself) in order to hidraw devices not\nend up under virtual device tree.\n\nReported-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "9188e79ec3fd43a0a605274324aecfb731baa88b",
      "tree": "631c3098389942df8301ce8dd1340165a47e6696",
      "parents": [
        "6bbe586fd4d94439f3960e200056ff057f7db5c6"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Nov 12 16:14:08 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Jan 04 01:00:51 2009 +0100"
      },
      "message": "HID: add phys and name ioctls to hidraw\n\nThe hiddev interface provides ioctl() calls which can be used\nto obtain phys and raw name of the underlying device.\n\nAdd the corresponding support also into hidraw.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7d672cd7506165818aacf97fdc448cffc72bde37",
      "tree": "dcdfedb642c53b8100ce4511d34a30f7a370e729",
      "parents": [
        "4ffaf869c7780bbdfc11291e5fd4b61dde662b1c"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oliver@neukum.org",
        "time": "Fri Oct 31 00:07:23 2008 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Nov 13 10:31:35 2008 +0100"
      },
      "message": "HID: fix locking in hidraw_open()\n\nAs open needs to sleep hidraw was wrong to call it with a spinlock held.\nFurthermore, open can of course fail which needs to be handled.\n\nSigned-off-by: Oliver Neukum \u003coneukum@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0f2c5945a917e776ccd394f0e1924e9502c2795f",
      "tree": "c79e952888110c7a1d33b42ed2e70a7bd626e70b",
      "parents": [
        "b4d8e4736c94e78fd846dca0c95a3a0710582584"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Oct 23 01:47:30 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Oct 23 01:47:30 2008 +0200"
      },
      "message": "HID: fix lock imbalance in hidraw\n\nAdd omitted unlock_kernel() to hidraw_ioctl().\nAdded in 979c407e3b89b606e810fa494ef316896eadbfad\n(HID: Push down BKL into ioctl handler in hidraw).\n\nCorresponing sparse warning:\ndrivers/hid/hidraw.c:267:9: warning: context imbalance in \u0027hidraw_ioctl\u0027: wrong count at exit\ndrivers/hid/hidraw.c:267:9:    context \u0027kernel_lock\u0027: wanted 0, got 1\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "140ae3eb6feb6ae96ba1ff073049beb985ea00e8",
      "tree": "233d008f80d2d37b214e56bac37ba63a0621ca96",
      "parents": [
        "1e093206734568e780c2717da1c89b97e9471954"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri Oct 17 18:04:48 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Oct 17 18:08:22 2008 +0200"
      },
      "message": "HID: fix hidraw_exit section mismatch\n\nhidraw_exit() marked as __exit is called from __init function\nfrom HID core. Remove the section placement from that function.\n\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "a9b12619f7b6f19c871437ec24a088787a04b1de",
      "tree": "ff1b11e7affedccfd69fc20e14876d0821f6e555",
      "parents": [
        "91bd418fdc8526ee70a0e8f7970b584c8870ae10"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 20:03:34 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:43 2008 -0700"
      },
      "message": "device create: misc: convert device_create_drvdata to device_create\n\nNow that device_create() has been audited, rename things back to the\noriginal call to be sane.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2b107d629dc0c35de606bb7b010b829cd247a93a",
      "tree": "c287d509c0a16a2c7d30b00d413a8a3b81e5188a",
      "parents": [
        "d92870ddd248e8c2562a8c4047885d3ad221ece7"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Sep 17 19:41:58 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:51:00 2008 +0200"
      },
      "message": "HID: fix incorrent length condition in hidraw_write()\n\nThe bound check on the buffer length\n\n\tif (count \u003e HID_MIN_BUFFER_SIZE)\n\nis of course incorrent, the proper check is\n\n\tif (count \u003e HID_MAX_BUFFER_SIZE)\n\nFix it.\n\nReported-by: Jerry Ryle \u003cjerry@mindtribe.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c500c9714011edab021591340042787722db9cf0",
      "tree": "d6bb0fe483c9f1c71c3d757e9c13d261ca01cd5f",
      "parents": [
        "85cdaf524b7ddab627e7d15405693f2511ef7505"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Fri May 16 11:49:16 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Oct 14 23:50:48 2008 +0200"
      },
      "message": "HID: hid, make parsing event driven\n\nNext step for complete hid bus, this patch includes:\n- call parser either from probe or from hid-core if there is no probe.\n- add ll_driver structure and centralize some stuff there (open, close...)\n- split and merge usb_hid_configure and hid_probe into several functions\n  to allow hooks/fixes between them\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "b22d8370061898f3029cdc2601fbdec493443f03",
      "tree": "dae4b3859c5cf3ad0e2430ad7c11a1e8766f9b49",
      "parents": [
        "00b33277fa544676250d898fccea0a0255608e7f",
        "6a250778c79d6d14db9ed8e1f86f7b934e2bf3dc"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jul 23 15:26:10 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jul 23 15:26:10 2008 +0200"
      },
      "message": "Merge branches \u0027upstream\u0027 and \u0027upstream-fixes\u0027 into for-linus\n"
    },
    {
      "commit": "4db1c62c9991e62b441672db7f227e722776adc4",
      "tree": "fba1946ddedc94c81423fe07cf1d8061794d55fa",
      "parents": [
        "f472f80034ae5d0be7d7196c7e65d0ca8890afb4"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jun 24 14:45:27 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jul 23 15:25:21 2008 +0200"
      },
      "message": "HID: fix memory leak in hidraw_release\n\nhidraw_release() forgot to free the linked list structure, causing memory\nleak.\n\nReported-by: Juan Marcos Diez Esteban \u003cjuan_m_diez@yahoo.es\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "979c407e3b89b606e810fa494ef316896eadbfad",
      "tree": "87cd809c8ef5bcb7957a29354e2e7e17fec27e00",
      "parents": [
        "7961df16819085b8a357720d89d0239036e6af2a"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon May 26 11:25:26 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jul 23 15:21:55 2008 +0200"
      },
      "message": "HID: Push down BKL into ioctl handler in hidraw\n\nIn this case I simply wrapped it as code review suggests the locking\nalready terminally broken and I didn\u0027t want to make it first. See added\ncomment\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0fd15a18d876a9571cc5b88a5d1716dfccb8e493",
      "tree": "96958e18b5f446890fbd7c1be70ae9f4326d25f8",
      "parents": [
        "1e2744011ff3cd195aba9f7a15dd71b332812a5c"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 21 12:52:33 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:42 2008 -0700"
      },
      "message": "device create: hid: convert device_create to device_create_drvdata\n\ndevice_create() is race-prone, so use the race-free\ndevice_create_drvdata() instead as device_create() is going away.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "702e57d9ef7002f8d362faa6ddebc59e6d43fa05",
      "tree": "62254d1b92499aaebd062833f1eb8921eafdd914",
      "parents": [
        "72b67048f5dac18fd6494e3d3bff7e54840e8761"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Thu May 15 10:25:44 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 14:05:47 2008 -0600"
      },
      "message": "HID: cdev lock_kernel() pushdown\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57d292bd7e6e72898e533687af481603597b1ca7",
      "tree": "d9594d10bfc843b44eb4ad1b32f945b000330f8c",
      "parents": [
        "23fd50450a34f2558070ceabb0bfebc1c9604af5"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Oct 15 15:17:41 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 08:12:00 2007 -0700"
      },
      "message": "HID: fix HIDIOCGRDESC memory access in hidraw\n\nFix bogus copying of data into userspace when HIDIOCGRDESC is issued.\nHID-transport layer makes sure that dev-\u003ehid-\u003erdesc is not larger than\nHID_MAX_DESCRIPTOR_SIZE.\n\nNoticed-by: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "709d27c04f4eccbc99d57a5569bce028915a4345",
      "tree": "d7d95f51bb618f2e8559a83ea0418b7d8476e79b",
      "parents": [
        "86166b7bcda0bcb53525114fa1c87ac432be478e"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Thu Sep 27 11:24:55 2007 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Oct 14 14:47:26 2007 +0200"
      },
      "message": "HID: hidraw_connect() memleak fix\n\nIt looks like hidraw_connect() is leaking memory in case of failure.\nAlso it should return -ENOMEM when kzalloc fails.\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "86166b7bcda0bcb53525114fa1c87ac432be478e",
      "tree": "1f6afc4c1c1d7a6dd88236f3c11fde61c1885b14",
      "parents": [
        "efc493f9d5463d933a64a2758fbe6d9bb8300cbb"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon May 14 09:57:40 2007 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Sun Oct 14 14:47:26 2007 +0200"
      },
      "message": "HID: add hidraw interface\n\nhidraw is an interface that is going to obsolete hiddev one\nday.\n\nMany userland applications are using libusb instead of using\nkernel-provided hiddev interface. This is caused by various\nreasons - the HID parser in kernel doesn\u0027t handle all the\nHID hardware on the planet properly, some devices might require\nits own specific quirks/drivers, etc.\n\nhiddev interface tries to do its best to parse all the received\nreports properly, and presents only parsed usages into userspace.\nThis is however often not enough, and that\u0027s the reason why\nmany userland applications just don\u0027t use hiddev at all, and\nrather use libusb to read raw USB events and process them on\ntheir own.\n\nAnother drawback of hiddev is that it is USB-specific.\n\nhidraw interface provides userspace readers with really raw HID\nreports, no matter what the low-level transport layer is (USB/BT),\nand gives the userland applications all the freedom to process\nthe HID reports in a way they wish to.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    }
  ]
}
