)]}'
{
  "log": [
    {
      "commit": "ca632f556697d45d67ed5cada7cedf3ddfe0db4b",
      "tree": "f393534b929abb32813ea5c495f1ac6d93a10d1d",
      "parents": [
        "8c99268431a117207a89be5167ecd69429fd4bda"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Jun 06 01:16:30 2011 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Mon Jun 06 01:16:30 2011 -0600"
      },
      "message": "spi: reorganize drivers\n\nSort the SPI makefile and enforce the naming convention spi_*.c for\nspi drivers.\n\nThis change also rolls the contents of atmel_spi.h into the .c file\nsince there is only one user of that particular include file.\n\nv2: - Use \u0027spi-\u0027 prefix instead of \u0027spi_\u0027 to match what seems to be\n      be the predominant pattern for subsystem prefixes.\n    - Clean up filenames in Kconfig and header comment blocks\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\n"
    },
    {
      "commit": "7d48ec3698e7b747efa744fd340b0f2d1dbfd3e0",
      "tree": "821683241a3715d558d60a666d8b8b560114008c",
      "parents": [
        "9dabb3f3269d042908bf1f4e685413c39cc8c373"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "walle@corscience.de",
        "time": "Thu Feb 03 09:37:18 2011 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Feb 03 09:55:43 2011 -0700"
      },
      "message": "spi/spidev: Add 32 bit compat ioctl()\n\nAdd the compat_ioctl for operations on /dev/spi* so that 32 bit\nuserspace applications can access SPI. As far as I can see all data\nstructure are already prepared for that, so no additional conversion has\nto be done.\n\nMy use case is MIPS with N32 userspace ABI and toolchain, and that was\nalso the platform where I tested it successfully (Cavium Octeon).\n\nSigned-off-by: Bernhard Walle \u003cwalle@corscience.de\u003e\nReviewed-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "b595076a180a56d1bb170e6eceda6eb9d76f4cd3",
      "tree": "bc01ec7283808013e0b8ce7713fd6fc40f810429",
      "parents": [
        "6aaccece1c483f189f76f1282b3984ff4c7ecb0a"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Mon Nov 01 15:38:34 2010 -0400"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Nov 01 15:38:34 2010 -0400"
      },
      "message": "tree-wide: fix comment/printk typos\n\n\"gadget\", \"through\", \"command\", \"maintain\", \"maintain\", \"controller\", \"address\",\n\"between\", \"initiali[zs]e\", \"instead\", \"function\", \"select\", \"already\",\n\"equal\", \"access\", \"management\", \"hierarchy\", \"registration\", \"interest\",\n\"relative\", \"memory\", \"offset\", \"already\",\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\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": "bf931a01a2c024a54204b4b02276af6e8d99a2c0",
      "tree": "bd76e2f25430b1394c4dc54cd674bdc08b1bfaf2",
      "parents": [
        "4e46aa083853a84c770e00b03746bdeaf5c5aeff",
        "d53342bf9616ecd7e4a03fece167d0f53b195e87"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 15:59:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 15:59:05 2009 -0800"
      },
      "message": "Merge branch \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  spi: spi_txx9.c: use resource_size()\n  spi: spi_sh_sci.c: use resource_size()\n  spi: spi_mpc8xxx.c: use resource_size()\n  spi: spi_bfin5xx.c: use resource_size()\n  spi: atmel_spi.c: use resource_size()\n  spi: Add s3c64xx SPI Controller driver\n  atmel_spi: fix dma addr calculation for len \u003e BUFFER_SIZE\n  spi_s3c24xx: add FIQ pseudo-DMA support\n  spi: controller driver for Designware SPI core\n  spidev: add proper section markers\n  spidev: use DECLARE_BITMAP instead of declaring the array\n"
    },
    {
      "commit": "db389b6143c895d23060179b14928f63d44285a2",
      "tree": "455cffefc259a833374be4ea4b7c4397efc75d69",
      "parents": [
        "8ae1c9248042c5122f9628282f41c363c9610dd7"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Dec 14 14:20:22 2009 -0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Dec 17 08:39:12 2009 -0700"
      },
      "message": "spidev: add proper section markers\n\nThe driver already uses __devexit_p() in the structure, but looks like\nactual __dev{init,exit} markings were forgotten.\n\nThe spidev_spi driver also needs renaming to include a \"_driver\" suffix to\navoid section mismatch warnings.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "8ae1c9248042c5122f9628282f41c363c9610dd7",
      "tree": "03c086fda38b02f0e19d133fe0a0f7a316a51438",
      "parents": [
        "965346e3b99e2c5f51bd1325ddd0257227000355"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Mon Dec 14 14:20:23 2009 -0800"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Thu Dec 17 08:39:12 2009 -0700"
      },
      "message": "spidev: use DECLARE_BITMAP instead of declaring the array\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "478e4e9d7a618379676b17e64583ff3622f2fec5",
      "tree": "1f25c96499abbb0d0b47f75aa92134209fcc4ee8",
      "parents": [
        "2205afa7d13ec716935dfd4b8ff71059ee7aeb0c",
        "965346e3b99e2c5f51bd1325ddd0257227000355"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 10:22:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 10:22:11 2009 -0800"
      },
      "message": "Merge branch \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-spi\u0027 of git://git.secretlab.ca/git/linux-2.6: (23 commits)\n  spi: fix probe/remove section markings\n  Add OMAP spi100k driver\n  spi-imx: don\u0027t access struct device directly but use dev_get_platdata\n  spi-imx: Add mx25 support\n  spi-imx: use positive logic to distinguish cpu variants\n  spi-imx: correct check for platform_get_irq failing\n  ARM: NUC900: Add spi driver support for nuc900\n  spi: SuperH MSIOF SPI Master driver V2\n  spi: fix spidev compilation failure when VERBOSE is defined\n  spi/au1550_spi: fix setupxfer not to override cfg with zeros\n  spi/mpc8xxx: don\u0027t use __exit_p to wrap plat_mpc8xxx_spi_remove\n  spi/i.MX: fix broken error handling for gpio_request\n  spi/i.mx: drain MXC SPI transfer buffer when probing device\n  MAINTAINERS: add SPI co-maintainer.\n  spi/xilinx_spi: fix incorrect casting\n  spi/mpc52xx-spi: minor cleanups\n  xilinx_spi: add a platform driver using the xilinx_spi common module.\n  xilinx_spi: add support for the DS570 IP.\n  xilinx_spi: Switch to iomem functions and support little endian.\n  xilinx_spi: Split into of driver and generic part.\n  ...\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "41df70d9ac2d0d36b23a0ec4866f67e540f366ff",
      "tree": "58a076d61fde0371d7b04f9fb7db0abf9fe37618",
      "parents": [
        "04ba24b34ac8ea4885295a7f7f78f719bc8c859b"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "ffainelli@freebox.fr",
        "time": "Mon Dec 07 14:28:43 2009 +0000"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Tue Dec 08 18:48:17 2009 -0700"
      },
      "message": "spi: fix spidev compilation failure when VERBOSE is defined\n\nWhen VERBOSE is defined in the spidev module, the compilation\nwill throw an error on \u0027spi\u0027 not being defined:\n\nCC [M]  drivers/spi/spidev.o\ndrivers/spi/spidev.c: In function \u0027spidev_message\u0027:\ndrivers/spi/spidev.c:266: error: \u0027spi\u0027 undeclared (first use in this function)\ndrivers/spi/spidev.c:266: error: (Each undeclared identifier is reported only once\ndrivers/spi/spidev.c:266: error: for each function it appears in.)\n\ninstead of using spi-\u003e we should actually use spidev-\u003espi.\nThis patch fixes the build failure.\n\nSigned-off-by: Florian Fainelli \u003cffainelli@freebox.fr\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "137f1188ef2747e987cbb469e6a54dde3350cb51",
      "tree": "56717f788716b20411c21d93a196546bcd6473c2",
      "parents": [
        "83cf0a9b86ba12664ab0648f5afb118c981371e9"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Thu Oct 22 17:34:29 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:50 2009 +0100"
      },
      "message": "spidev: fix double \"of of\" in comment\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4c2aedc2543248c3fdc8c06c662b589d36c93bbb",
      "tree": "8f18344b3aa4cacb2e0cacdf30c8bcf2c0686910",
      "parents": [
        "a7e63bb5f08378620d913824ab42e49027f22194"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 10 15:35:52 2009 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Oct 14 17:36:48 2009 +0200"
      },
      "message": "spi: Remove BKL from spidev_open\n\nThe BKL was added there with the big pushdown. Remove it as the code\nis serialized already.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20091010153349.318535932@linutronix.de\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0626e3844e8f430fc1a4417f523a00797df7ca6",
      "tree": "15e62abad725200b3c6ad2462f268c3df09ed711",
      "parents": [
        "8cec03eee4a771f949c70cff07775c9bb21d4642"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Tue Sep 22 16:46:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:43 2009 -0700"
      },
      "message": "spi: prefix modalias with \"spi:\"\n\nThis makes it consistent with other buses (platform, i2c, vio, ...).  I\u0027m\nnot sure why we use the prefixes, but there must be a reason.\n\nThis was easy enough to do it, and I did it.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Samuel Ortiz \u003csameo@openedhand.com\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nAcked-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b55f627feeb9d48fdbde3835e18afbc76712e49b",
      "tree": "1c6084d44f23c5e70040e5d62c93718f77ad09da",
      "parents": [
        "c49568235dd7b4a2ffad63aa950562f4ffb9455f"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Tue Jun 30 11:41:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:00 2009 -0700"
      },
      "message": "spi: new spi-\u003emode bits\n\nAdd two new spi_device.mode bits to accomodate more protocol options, and\npass them through to usermode drivers:\n\n * SPI_NO_CS ... a second 3-wire variant, where the chipselect\n   line is removed instead of a data line; transfers are still\n   full duplex.\n\n   This obviously has STRONG protocol implications since the\n   chipselect transitions can\u0027t be used to synchronize state\n   transitions with the SPI master.\n\n * SPI_READY ... defines open drain signal that\u0027s pulled low\n   to pause the clock.  This defines a 5-wire variant (normal\n   4-wire SPI plus READY) and two 4-wire variants (READY plus\n   each of the 3-wire flavors).\n\n   Such hardware flow control can be a big win.  There are ADC\n   converters and flash chips that expose READY signals, but not\n   many host controllers support it today.\n\nThe spi_bitbang code should be changed to use SPI_NO_CS instead of its\ncurrent nonportable hack.  That\u0027s a mode most hardware can easily support\n(unlike SPI_READY).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \"Paulraj, Sandeep\" \u003cs-paulraj@ti.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aaacf4bb51b243875b203e6ff73b5047636b4efa",
      "tree": "3b9849cb5be8ea60c1b0ddb6b908d57484153747",
      "parents": [
        "dc8c214a9c37eb288b1c4782632649e55d251c68"
      ],
      "author": {
        "name": "Wolfgang Ocker",
        "email": "weo@reccoware.de",
        "time": "Mon Dec 01 13:13:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:24 2008 -0800"
      },
      "message": "spi: avoid spidev crash when device is removed\n\nI saw a kernel oops in spidev_remove() when a spidev device was registered\nand I unloaded the SPI master driver:\n\nUnable to handle kernel paging request for data at address 0x00000004\nFaulting instruction address: 0xc01c0c50\nOops: Kernel access of bad area, sig: 11 [#1]\nCDSPR\nModules linked in: spi_ppc4xx(-)\nNIP: c01c0c50 LR: c01bf9e4 CTR: c01c0c34\nREGS: cec89c30 TRAP: 0300   Not tainted  (2.6.27.3izt)\nMSR: 00021000 \u003cME\u003e  CR: 24000228  XER: 20000007\nDEAR: 00000004, ESR: 00800000\nTASK \u003d cf889040[2070] \u0027rmmod\u0027 THREAD: cec88000\nGPR00: 00000000 cec89ce0 cf889040 cec8e000 00000004 cec8e000 ffffffff 00000000\nGPR08: 0000001c c0336380 00000000 c01c0c34 00000001 1001a338 100e0000 100df49c\nGPR16: 100b54c0 100df49c 100ddd20 100f05a8 100b5340 100efd68 00000000 00000000\nGPR24: 100ec008 100f0428 c0327788 c0327794 cec8e0ac cec8e000 c0336380 00000000\nNIP [c01c0c50] spidev_remove+0x1c/0xe4\nLR [c01bf9e4] spi_drv_remove+0x2c/0x3c\nCall Trace:\n[cec89d00] [c01bf9e4] spi_drv_remove+0x2c/0x3c\n[cec89d10] [c01859a0] __device_release_driver+0x78/0xb4\n[cec89d20] [c0185ab0] device_release_driver+0x28/0x44\n[cec89d40] [c0184be8] bus_remove_device+0xac/0xd8\n[cec89d60] [c0183094] device_del+0x100/0x194\n[cec89d80] [c0183140] device_unregister+0x18/0x30\n[cec89da0] [c01bf30c] __unregister+0x20/0x34\n[cec89db0] [c0182778] device_for_each_child+0x38/0x74\n[cec89de0] [c01bf2d0] spi_unregister_master+0x28/0x44\n[cec89e00] [c01bfeac] spi_bitbang_stop+0x1c/0x58\n[cec89e20] [d908a5e0] spi_ppc4xx_of_remove+0x24/0x7c [spi_ppc4xx]\n[...]\n\nIMHO a call to spi_set_drvdata() is missing in spidev_probe(). The patch\nbelow helped.\n\nSigned-off-by: Wolfgang Ocker \u003cweo@reccoware.de\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "4ef754b7d7971a704d5b1b4608839da1bae37e5e",
      "tree": "a9db20a2b6ca332653e5d1503fc8d3398b145aa6",
      "parents": [
        "102eb97564c73ea73645b38599c5cbe6f54b030c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Jul 23 21:29:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:30 2008 -0700"
      },
      "message": "spidev: BKL removal\n\nAnother step to removing -\u003eioctl and to removing the BKL\n\n[dbrownell@users.sourceforge.net: take final step; BKL not needed]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d81252ddb10f63ae4db713d9b32faabe641b850",
      "tree": "68ea05d6aebdffaef2fe25c5462c096f88bf8f67",
      "parents": [
        "89409211ff97bf82295d1fb98ab18302a03e9199"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Fri Jun 06 15:48:07 2008 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:45 2008 -0700"
      },
      "message": "device create: spi: convert device_create to device_create_drvdata\n\nSwitch over to use the shiny new device_create_drvdata() call\ninstead of the original device_create() calls, so this continues\nto work after device_create() is  removed.\n\nNote that this driver never had the race which motivated removing\nthe original call; it locked correctly.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "4b1295b0df28cffd40e6c6d7c4b88dec7af1eb76",
      "tree": "ea6414ba80a771c9ffdfd2c5e6c485c34ef671b4",
      "parents": [
        "bef67c5a7d3a9c45e091e36625c09c0c811e2672"
      ],
      "author": {
        "name": "Sebastian Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jul 04 09:59:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 04 10:40:08 2008 -0700"
      },
      "message": "spi: fix the read path in spidev\n\nThis got broken by the recent \"fix rmmod $spi_driver while spidev-user is\nactive\".  I tested the rmmod \u0026 write path but didn\u0027t check the read path.\nI am sorry.  The read logic changed and spidev_sync_read() +\nspidev_sync_write() do not return zero on success anymore but the number\nof bytes that has been transfered over the bus.  This patch changes the\nlogic and copy_to_user() gets called again.\n\nThe write path returns the number of bytes which are written to the\nunderlying device what may be less than the requested size.  This patch\nmakes the same change to the read path or else we request a read of 20\nbytes, get 10, don\u0027t call copy to user and report to the user that we read\n10 bytes.\n\n[akpm@linux-foundation.org: remove test of known-to-be-zero local]\nSigned-off-by: Sebastian Siewior \u003cbigeasy@linutronix.de\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "609f9e92b570f390a457a81effe0af6b758dc582",
      "tree": "882d5c953a3770e4010d912de6588db6ca354d5e",
      "parents": [
        "d21c95c569c462da20d491b75d0a45bd70ddc1bf"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri May 16 13:46:14 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 14:05:50 2008 -0600"
      },
      "message": "spidev: BKL pushdown\n\nAdd the BKL to spidev_open(), even though the existing locking looks\nadequate.\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "b2c8daddcbe03a22402ecf943bb88302601c6835",
      "tree": "326282263d7ef47c18e02fee77ffd586457c69e8",
      "parents": [
        "39b945a37bac2b692773a470890c8ba301485b15"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Jun 05 22:45:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:08 2008 -0700"
      },
      "message": "spi: fix refcount-related spidev oops-on-rmmod\n\nThis addresses other oopsing paths in \"spidev\" by changing how it manages\nrefcounting.  It decouples the lifecycle of the per-device data from the\nclass device (not just the spi device):\n\n  - Use class_{create,destroy} not class_{register,unregister}.\n  - Use device_{create,destroy} not device_{register,unregister}.\n  - Free the per-device data only when TWO conditions are true:\n      * Driver is unbound from underlying SPI device, and\n      * Device is no longer open (new)\n\nAlso, spi_{get,set}_drvdata not dev_{get,set}_drvdata for simpler code.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSebastian Siewior \u003cbigeasy@tglx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25d5cb4b0375e5864ec0ccf35e12ff1d1b5cf3f0",
      "tree": "0d83e4176f9a8178a98631097fbf839a53702d94",
      "parents": [
        "5c02b575780d0d785815a1e7b79a98edddee895a"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri May 23 13:05:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:14 2008 -0700"
      },
      "message": "spi: remove some spidev oops-on-rmmod paths\n\nSomehow the spidev code forgot to include a critical mechanism: when the\nunderlying device is removed (e.g.  spi_master rmmod), open file\ndescriptors must be prevented from issuing new I/O requests to that\ndevice.  On penalty of the oopsing reported by Sebastian Siewior\n\u003cbigeasy@tglx.de\u003e ...\n\nThis is a partial fix, adding handshaking between the lower level (SPI\nmessaging) and the file operations using the spi_dev.  (It also fixes an\nissue where reads and writes didn\u0027t return the number of bytes sent or\nreceived.)\n\nThere\u0027s still a refcounting issue to be addressed (separately).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nReported-by: Sebastian Siewior \u003cbigeasy@tglx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "142956af525002c5378e7d91d81a01189841a785",
      "tree": "bcf73cc0e2d56d8d46d470fcedaadf42ae0602bd",
      "parents": [
        "0c7eb2eb800c4afb2205bbaa1bc633eb29082fef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Oct 29 05:11:28 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:41:33 2007 -0700"
      },
      "message": "fix abuses of ptrdiff_t\n\nUse of ptrdiff_t in places like\n\n-                       if (!access_ok(VERIFY_WRITE, u_tmp-\u003erx_buf, u_tmp-\u003elen))\n+                       if (!access_ok(VERIFY_WRITE, (u8 __user *)\n+                                               (ptrdiff_t) u_tmp-\u003erx_buf,\n+                                               u_tmp-\u003elen))\n\nis wrong; for one thing, it\u0027s a bad C (it\u0027s what uintptr_t is for; in general\nwe are not even promised that ptrdiff_t is large enough to hold a pointer,\njust enough to hold a difference between two pointers within the same object).\nFor another, it confuses the fsck out of sparse.\n\nUse unsigned long or uintptr_t instead.  There are several places misusing\nptrdiff_t; fixed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96ddbf504a05502800e7cbeb4d08abbcc206c51c",
      "tree": "8b33c0a5805fbdccff638a95492106c6430d8c52",
      "parents": [
        "4a2a4da43995864786d59f5f0ebf42c0c1e2cdd1"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Fri Aug 10 13:01:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Aug 11 15:47:42 2007 -0700"
      },
      "message": "spidev warning fix\n\nGit rid of \"warning: passing arg 2 of `access_ok\u0027 makes pointer from integer\nwithout a cast\" reported on SH ...  most architectures use macros in that\ntest, SH uses inlined functions.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f166e3833d953f0acf77eb7d426840da9e1a87f",
      "tree": "95a15d4662f41b7a6b86c05d2558de16a86bc27e",
      "parents": [
        "4ef7af50373778ee248a2493c9cf62a2299806a8"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Tue Jul 31 00:38:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:40 2007 -0700"
      },
      "message": "spidev supports more communications modes\n\nThe spidev driver doesn\u0027t currently expose all SPI communications modes to\nuserspace.  This passes them all through to the driver.\n\nTwo of them are potentially troublesome, in the sense that they could cause\nhardware conflicts on shared busses.  It might be appropriate to add some\nprivilege checks for for those modes.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4917d927809918f0070bd1077b41e3daf78643b2",
      "tree": "207df3ec533d72933170a69962ec44b864892f2c",
      "parents": [
        "ad241528c4919505afccb022acbab3eeb0db4d80"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue Jul 17 04:04:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:04 2007 -0700"
      },
      "message": "spidev compiler warning gone\n\nGet rid of annoying GCC warning on 32-bit platforms.\n\ndrivers/spi/spidev.c: In function \u0027spidev_message\u0027:\ndrivers/spi/spidev.c:184: warning: cast to pointer from integer of different size\ndrivers/spi/spidev.c:216: warning: cast to pointer from integer of different size\n\nThe trick is to add an extra cast using \"ptrdiff_t\" to convert the u64 to\nthe correct size integer, and only then casting it into a \"void *\" pointer.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9bea3f29fc626e190f012c4ad5f8a9e9a2f26cf6",
      "tree": "156a6c3cb913aef5bf8244e6333802950f8132b8",
      "parents": [
        "6087b2dab2c914268b1a50882edbbad82bfefd29"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@gmail.com",
        "time": "Wed May 23 13:57:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:12 2007 -0700"
      },
      "message": "spi: potential memleak in spidev_ioctl\n\n\u0027ioc\u0027 should be deallocated if __copy_from_user fails (found by Coverity\n- CID 1644).\n\nSigned-off-by: Florin Malita \u003cfmalita@gmail.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da90fa8ff671a0139772ec3b3e82c06077e82122",
      "tree": "bf648a91c12174ec0bd32a013cdfc63d62f70753",
      "parents": [
        "b7add02d6247bff34005e040347d81777c80931c"
      ],
      "author": {
        "name": "Domen Puncer",
        "email": "domen.puncer@telargo.com",
        "time": "Wed May 23 13:57:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:12 2007 -0700"
      },
      "message": "spi/spidev: check message size before copying\n\nMessage size needs to be checked before copying, or bad things could\nhappen.\n\nSigned-off-by: Domen Puncer \u003cdomen.puncer@telargo.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a4dd7783dfc62176a29cb349404180f24f46975",
      "tree": "9cd363f697114b5ade9821f5f4fd4f2f4e4b6976",
      "parents": [
        "bb33ed6345d6156484f39089aa8b52f44ce76609"
      ],
      "author": {
        "name": "Domen Puncer",
        "email": "domen@coderock.org",
        "time": "Tue May 15 23:57:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 16 21:19:15 2007 -0700"
      },
      "message": "spi: fix spidev for \u003esizeof(long)/32 devices\n\nfind_first_zero_bit accepts number of bits, not longs.\n\nSigned-off-by: Domen Puncer \u003cdomen.puncer@telargo.com\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "814a8d50eb1d88cedcef97567be53ee0d4512631",
      "tree": "edf10598ae95e5729edca3095b60641606b62939",
      "parents": [
        "735ce95e6b9a262d1fbc0ddb5620deb3a29d1067"
      ],
      "author": {
        "name": "Andrea Paterniani",
        "email": "a.paterniani@swapp-eng.it",
        "time": "Tue May 08 00:32:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:15 2007 -0700"
      },
      "message": "/dev/spidevB.C interface\n\nAdd a filesystem API for \u003clinux/spi/spi.h\u003e stack.  The initial version of\nthis interface is purely synchronous.\n\ndbrownell@users.sourceforge.net:\n\n Cleaned up, bugfixed; much simplified; added preliminary documentation.\n\n Works with mdev given CONFIG_SYSFS_DEPRECATED; and presumably udev.\n\n Updated SPI_IOC_MESSAGE ioctl to full spi_message semantics, supporting\n groups of one or more transfers (each of which may be full duplex if\n desired).\n\n This is marked as EXPERIMENTAL with an explicit disclaimer that the API\n (notably the ioctls) is subject to change.\n\nSigned-off-by: Andrea Paterniani \u003ca.paterniani@swapp-eng.it\u003e\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
