)]}'
{
  "log": [
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "add0b43ca67bf281ef7ac8ab47e9ee7b2d97a69f",
      "tree": "7a7aaab48f6ac1cff65ad920e306ffe79620fb47",
      "parents": [
        "784c145444e7dd58ae740d406155b72ac658f151"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jul 18 18:39:45 2007 +0900"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:59:17 2007 +0300"
      },
      "message": "UBI: fix compile warning\n\ncdev.c whines in current git:\n\ndrivers/mtd/ubi/cdev.c: In function `major_to_device\u0027:\ndrivers/mtd/ubi/cdev.c:67: warning: control reaches end of non-void function\n\nShut it up.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "784c145444e7dd58ae740d406155b72ac658f151",
      "tree": "31c304913db2011a3a9f09da9dbaf2f74004d887",
      "parents": [
        "63b6c1ed56f69fdd35122dc591164587e3407ba0"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 13:42:10 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:59:09 2007 +0300"
      },
      "message": "UBI: fix error handling in erase worker\n\nDo not switch to read-only mode in case of -EINTR and some\nother obvious cases. Switch to RO mode only when we do not\nknow what is the error.\n\nReported-by: Vinit Agnihotri \u003cvinit.agnihotri@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "63b6c1ed56f69fdd35122dc591164587e3407ba0",
      "tree": "db3f7a3ba16f5c76f7c0b65f3f57de4cc989136c",
      "parents": [
        "503990ebb21e5aabe497a3eb1d39bef0bbc1be6f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jul 17 15:04:20 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:59:01 2007 +0300"
      },
      "message": "UBI: fix comments\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "503990ebb21e5aabe497a3eb1d39bef0bbc1be6f",
      "tree": "9236566c401828cedc2785cabbf4d85d5f26d215",
      "parents": [
        "2db61c95c03d08bb885c87a816540e75190c924a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 11 16:03:29 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:58:53 2007 +0300"
      },
      "message": "UBI: remove unneeded error checks\n\nPointed to by viro.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2db61c95c03d08bb885c87a816540e75190c924a",
      "tree": "1376072b9ed06ff51e35c50be6fec569ee7a3e61",
      "parents": [
        "d08c3b78b8c46a01b8fa59037a0d9fbb777fb465"
      ],
      "author": {
        "name": "Fernando Luis Vázquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Wed Jul 11 17:11:45 2007 +0900"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:58:45 2007 +0300"
      },
      "message": "UBI: cleanup usage of try_module_get\n\nThe use of try_module_get(THIS_MODULE) in ubi_get_device_info does not\noffer real protection against unexpected driver unloads, since we could\nbe preempted before try_modules_get gets executed. It is the caller who\nshould manipulate the refcounts. Besides, ubi_get_device_info is an\nexported symbol which guarantees protection when accessed through\nsymbol_get.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d08c3b78b8c46a01b8fa59037a0d9fbb777fb465",
      "tree": "c27d7d436864175107fe8e2b1de3a11b928c975a",
      "parents": [
        "2f3cdb55eef4fa1398965e893f731fb6e6312d34"
      ],
      "author": {
        "name": "Vinit Agnihotri",
        "email": "vinit.agnihotri@gmail.com",
        "time": "Tue Jul 10 13:04:59 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:58:12 2007 +0300"
      },
      "message": "UBI: fix overflow bug\n\nI was experiencing overflows in multiplications for\nvolume-\u003eused_bytes in vmt.c \u0026 vtbl.c, while creating \u0026 resizing large volumes.\n\nvol-\u003eused_bytes is long long however its 2 operands vol-\u003eused_ebs \u0026\nvol-\u003eusable_leb_size\nare int. So their multiplication for larger values causes integer overflows.\nTypecasting them solves the problem.\n\nMy machine \u0026 flash details:\n\n64Bit dual-core AMD opteron, 1 GB RAM, linux 2.6.18.3.\nmtd size \u003d 6GB, volume size\u003d 5GB, peb_size \u003d 4MB.\n\nheres patch which does the fix.\n\nSigned-off-by: Vinit Agnihotri \u003cvinit.agnihotri@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2f3cdb55eef4fa1398965e893f731fb6e6312d34",
      "tree": "9c5fd92c4a09fc3a93044ca35108ccecae9be571",
      "parents": [
        "76eafe479ec30dd72b8cf209c4f576eac3c93112"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jul 06 14:38:46 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:58:02 2007 +0300"
      },
      "message": "UBI: bugfix in max_sqnum calculation\n\nDo not zero max_sqnum after a new volume has been found.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "76eafe479ec30dd72b8cf209c4f576eac3c93112",
      "tree": "68fa0b8943e8629a9208951a2d8dede4b8de17e6",
      "parents": [
        "2f176f79877937082ce052977e552a75e23a73d1"
      ],
      "author": {
        "name": "Brijesh Singh",
        "email": "brijesh.s.singh@gmail.com",
        "time": "Fri Jul 06 14:35:43 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:57:52 2007 +0300"
      },
      "message": "UBI: bugfix in sqnum calculation\n\nHi,I came across problem of having two leb with same sequence no.This\nhappens when we continuously write one block again and again and reboot\nmachine before background thread erases those blocks.\nThe problem here was,when we find two blocks with same sequence no,we take\nthe higher one,but we were not updating max seq no,so next block may have\nthe same seqnum.\nThis patch solves this problem.\n\nSigned-off-by: Brijesh Singh \u003cbrijesh.s.singh@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2f176f79877937082ce052977e552a75e23a73d1",
      "tree": "c7f8eb96bac676fe06d77338e44a0da17810fce3",
      "parents": [
        "84a925806210e002fab29966c09b9c92f382a79d"
      ],
      "author": {
        "name": "Brijesh Singh",
        "email": "brijesh.s.singh@gmail.com",
        "time": "Thu Jul 05 15:07:35 2007 +0530"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:57:34 2007 +0300"
      },
      "message": "UBI: fix signed-unsigned multiplication\n\nThere is signed multiplication assigned to unsigned ei.addr in io.c.\nThis causes wrong addresses for big multiplication.This patch solves the\nproblem.\n\nSigned-off-by: Brijesh Singh \u003cbrijesh.s.singh@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "84a925806210e002fab29966c09b9c92f382a79d",
      "tree": "a1914318f425b387190030f0765c57a6d1b5627a",
      "parents": [
        "a6ded48e34f803fcbb42719cee452d1f18938ec7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 04 16:16:51 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:56:24 2007 +0300"
      },
      "message": "UBI: fix bug in atomic_leb_change()\n\natomic_leb_change() is only allowed for dynamic volumes, so set\nthe volume type correctly.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a6ded48e34f803fcbb42719cee452d1f18938ec7",
      "tree": "6787132e92040a2921f8e8b7d1a66567f1369640",
      "parents": [
        "b89044bfa06e8a9a82094fda031cc6d4e8d4a0b0"
      ],
      "author": {
        "name": "Vinit Agnihotri",
        "email": "vinit.agnihotri@gmail.com",
        "time": "Wed Jul 04 16:35:56 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:56:13 2007 +0300"
      },
      "message": "UBI: fix message\n\nIncrease UBI devices couter after the message, not before.\n\nSigned-off-by: Vinit Agnihotri \u003cvinit.agnihotri@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b89044bfa06e8a9a82094fda031cc6d4e8d4a0b0",
      "tree": "596493157a385142b71c9da111d841b8a14150bc",
      "parents": [
        "94784d916458d51043ba76849b9beaf330baef2f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jun 18 16:29:30 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:56:05 2007 +0300"
      },
      "message": "UBI: fix debugging stuff\n\nDo not check volumes which are currently in use because thay may be\nin inconsistent state.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "94784d916458d51043ba76849b9beaf330baef2f",
      "tree": "a7b71f0aa61ce5524dc602716c6ae722ff78d461",
      "parents": [
        "7753f1692f53d82b4cc08084462b0fd2803c1f04"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jun 18 12:06:30 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:55:55 2007 +0300"
      },
      "message": "UBI: bugfix in error path\n\nWhen volume creation fails, we have to set ubi-\u003evolumes[vol_id]\nback to NULL.\n\nThis patch also tweaks some debugging stuff.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7753f1692f53d82b4cc08084462b0fd2803c1f04",
      "tree": "1af69abb56aaa61f4b149ce044c3b214d581db6d",
      "parents": [
        "d7f0c4dc31f1297a613f1e61a7d682dc9a5e859a"
      ],
      "author": {
        "name": "Vignesh Babu",
        "email": "vignesh.babu@wipro.com",
        "time": "Tue Jun 12 10:31:05 2007 +0530"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:55:26 2007 +0300"
      },
      "message": "UBI: use is_power_of_2()\n\nReplacing (n \u0026 (n-1)) in the context of power of 2 checks\nwith is_power_of_2\n\nSigned-off-by: Vignesh Babu \u003cvignesh.babu@wipro.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d7f0c4dc31f1297a613f1e61a7d682dc9a5e859a",
      "tree": "cdc9e28d8708774e174ad7baf78c67b71a34d57e",
      "parents": [
        "21600546ab84e451adb88771b52b64b97866a444"
      ],
      "author": {
        "name": "Vinit Agnihotri",
        "email": "vinit.agnihotri@gmail.com",
        "time": "Fri Jun 15 15:31:22 2007 +0530"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:54:15 2007 +0300"
      },
      "message": "UBI: fix freeing ubi-\u003evtbl while unloading\n\nubi-\u003evtbl is allocated using vmalloc() in vtbl.c empty_create_lvol(),\nbut it is freed in build.c with kfree()\n\nSigned-off-by: Vinit Agnihotri \u003cvinit.agnihotri@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a443db48e05a8d2d8db0a17409655c58da65a35e",
      "tree": "becf7ff602745c657d2d07a7354ba7cca0fe20c7",
      "parents": [
        "3261ebd7d4194ff30d0eae7ba8d937dcccf7235d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 21 20:26:05 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:57 2007 +0300"
      },
      "message": "UBI: bugfix in ubi_leb_change()\n\nDo not call \u0027ubi_wl_put_peb()\u0027 if the LEB was unmapped.\n\nReported-by: Gabor Loki \u003cloki@inf.u-szeged.hu\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3261ebd7d4194ff30d0eae7ba8d937dcccf7235d",
      "tree": "75381f6dd24263cdf484ebc9a5c8a93db6d83cb4",
      "parents": [
        "bf07803a6827ef8d4c9d840a1de800ba36db0213"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon May 21 17:41:46 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:49 2007 +0300"
      },
      "message": "UBI: kill homegrown endian macros\n\nKill UBI\u0027s homegrown endianess handling and replace it with\nthe standard kernel endianess handling.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "bf07803a6827ef8d4c9d840a1de800ba36db0213",
      "tree": "35634c88d81dbacc2b12db25755845370d6f7e59",
      "parents": [
        "16d8cd7ce408a20db1ab192e0fb565573e446b28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu May 17 16:32:10 2007 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:36 2007 +0300"
      },
      "message": "UBI: cleanup ioctl handling\n\n- don\u0027t do access_ok + get/put user but use the proper macro\n- remove useless checks\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "16d8cd7ce408a20db1ab192e0fb565573e446b28",
      "tree": "136c377df9bba42dd76d1e07e8838bbf539cf5f0",
      "parents": [
        "f800f09bf44871f6c6e4d3e42a60946e1ea51b17"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed May 16 15:49:16 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:27 2007 +0300"
      },
      "message": "UBI: error path bugfix\n\nNo need to unlock the lock, this will be done at out_unlock.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f800f09bf44871f6c6e4d3e42a60946e1ea51b17",
      "tree": "7a3e797aa4ad3494d38da2ead3552943cb6f0b6e",
      "parents": [
        "92ad8f37509a7d9d5dd6e0092211b092a7ca7fb1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 06 16:45:43 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:17 2007 +0300"
      },
      "message": "UBI: minor comma fix\n\nUse coma at the the last elements of structure initializer.\n\nDaniel Stone\u0027s explanation:\n\nBecause it turns:\n-   .attr   \u003d foo\n+   .attr   \u003d foo,\n+   .bar    \u003d baz\n\ninto:\n+   .bar    \u003d baz,\n\ni.e., far less likely to screw up a merge.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "92ad8f37509a7d9d5dd6e0092211b092a7ca7fb1",
      "tree": "96c0f9c524b80e8d1d247e3f462c0c0d6fb782a5",
      "parents": [
        "79b510c0f21174f4bd055d1aab156e548ae3a5f2"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 06 16:12:54 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:08 2007 +0300"
      },
      "message": "UBI: use vmalloc for large buffers\n\nUBI allocates temporary buffers of PEB size, which may be 256KiB.\nUse vmalloc instead of kmalloc for such big temporary buffers.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "79b510c0f21174f4bd055d1aab156e548ae3a5f2",
      "tree": "08246f4e5ef5e59d8dc497717e3881ce997d88d3",
      "parents": [
        "941dfb07ed91451b1c58626a0d258dfdf468b593"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat May 05 17:36:17 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:53:00 2007 +0300"
      },
      "message": "UBI: add few more comments\n\nAdd few comments above ubi_scan_add_used() to explain why it is so\ncomplex. Requested by Satyam Sharma \u003csatyam.sharma@gmail.com\u003e.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "941dfb07ed91451b1c58626a0d258dfdf468b593",
      "tree": "ddee58cc8960994237c83c852227a301dfc8378e",
      "parents": [
        "4ab60a0d7c92cab16f7e470f80ea039a0b174bce"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat May 05 16:33:13 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:52:51 2007 +0300"
      },
      "message": "UBI: set correct gluebi device size\n\nIn case of static volumes, make emulated MTD device size to\nbe equivalent to data size, rather then volume size.\n\nReported-by: John Smith \u003cjohn@arrows.demon.co.uk\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "4ab60a0d7c92cab16f7e470f80ea039a0b174bce",
      "tree": "79510835689011701745ce1cfe0f03319a3a1e61",
      "parents": [
        "78d87c95b89ccf86c142494beada3082810ed368"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat May 05 14:59:23 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:52:42 2007 +0300"
      },
      "message": "UBI: do not let to read too much\n\nIn case of static volumes it is prohibited to read more data\nthen available.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "78d87c95b89ccf86c142494beada3082810ed368",
      "tree": "bb2bc3d2b11e2990376d25e13c94aeb50380a0c4",
      "parents": [
        "c4e90ec0134d7bedebbe3fe58ed5d431293886d4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat May 05 11:24:02 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:52:32 2007 +0300"
      },
      "message": "UBI: fix error path in create_vtbl()\n\nThere were several bugs in volume table creation error path. Thanks to\nSatyam Sharma \u003csatyam.sharma@gmail.com\u003e and Florin Malita \u003cfmalita@gmail.com\u003e\nfor finding and analysing them: http://lkml.org/lkml/2007/5/3/274\n\nThis patch makes ubi_scan_add_to_list() static and renames it to\nadd_to_list(), just because it is not needed outside scan.c anymore.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "c4e90ec0134d7bedebbe3fe58ed5d431293886d4",
      "tree": "bce3d8a6243de9400465f9eba029295522853de9",
      "parents": [
        "341e1a0cf2d8965c8b2f7941a6b2f2c2170df469"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@gmail.com",
        "time": "Thu May 03 11:49:57 2007 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:52:22 2007 +0300"
      },
      "message": "UBI: fix dereference after kfree\n\nCoverity (CID 1614) spotted new_seb being dereferenced after kfree() in\ncreate_vtbl\u0027s write_error path.\n\nSigned-off-by: Florin Malita \u003cfmalita@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "341e1a0cf2d8965c8b2f7941a6b2f2c2170df469",
      "tree": "b0ad5795c32d16e8c198c6177d992a21fde20be5",
      "parents": [
        "cb32da0416b823b7f4b65e7e85d6cba16ca4d1e1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 03 11:59:51 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jul 18 16:52:13 2007 +0300"
      },
      "message": "UBI: fix memory leak in checking code\n\nReported-by: Eric Sesterhenn / Snakebyte \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a6343afb6e16b65b9f0b264f94f8207212e7e3ae",
      "tree": "038520431715be0dab295883ba994b7854202c71",
      "parents": [
        "b1734d2388cc45ecdec58615e35955d0d402f938"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 17 05:39:58 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 17 16:23:19 2007 -0400"
      },
      "message": "drivers/*: mark variables with uninitialized_var()\n\nMark variables in drivers/* with uninitialized_var() if such a warning\nappears, and analysis proves that the var is initialized properly on all\npaths it is used.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2ab934b8afa89b9b3e71b7fb66470a19772f5012",
      "tree": "39662b8ac31be2a3f4458e2b08476e638d4491f7",
      "parents": [
        "0d480db85dea59e1393c3968fbdac0117431e797"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 17 01:49:56 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 17 16:18:00 2007 -0400"
      },
      "message": "drivers/mtd/ubi/eba: minor cleanup: tighten scope of a local var\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "831441862956fffa17b9801db37e6ea1650b0f69",
      "tree": "b0334921341f8f1734bdd3243de76d676329d21c",
      "parents": [
        "787d2214c19bcc9b6ac48af0ce098277a801eded"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 17 04:03:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Freezer: make kernel threads nonfreezable by default\n\nCurrently, the freezer treats all tasks as freezable, except for the kernel\nthreads that explicitly set the PF_NOFREEZE flag for themselves.  This\napproach is problematic, since it requires every kernel thread to either\nset PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn\u0027t\ncare for the freezing of tasks at all.\n\nIt seems better to only require the kernel threads that want to or need to\nbe frozen to use some freezer-related code and to remove any\nfreezer-related code from the other (nonfreezable) kernel threads, which is\ndone in this patch.\n\nThe patch causes all kernel threads to be nonfreezable by default (ie.  to\nhave PF_NOFREEZE set by default) and introduces the set_freezable()\nfunction that should be called by the freezable kernel threads in order to\nunset PF_NOFREEZE.  It also makes all of the currently freezable kernel\nthreads call set_freezable(), so it shouldn\u0027t cause any (intentional)\nchange of behaviour to appear.  Additionally, it updates documentation to\ndescribe the freezing of tasks more accurately.\n\n[akpm@linux-foundation.org: build fixes]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d468a030026017008286919aa6127b1190efb2c2",
      "tree": "e4b0b156365aa2561e6d0308cec95bcb983bcdc7",
      "parents": [
        "485764016d5accb813e8bdd076802a7e3318bb64"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 27 15:11:44 2007 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 27 15:11:44 2007 +0300"
      },
      "message": "UBI: remove unused variable\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "801c135ce73d5df1caf3eca35b66a10824ae0707",
      "tree": "eaf6e7859650557192533b70746479de686c56e1",
      "parents": [
        "de46c33745f5e2ad594c72f2cf5f490861b16ce1"
      ],
      "author": {
        "name": "Artem B. Bityutskiy",
        "email": "dedekind@linutronix.de",
        "time": "Tue Jun 27 12:22:22 2006 +0400"
      },
      "committer": {
        "name": "Frank Haverkamp",
        "email": "haver@vnet.ibm.com",
        "time": "Fri Apr 27 14:23:33 2007 +0300"
      },
      "message": "UBI: Unsorted Block Images\n\nUBI (Latin: \"where?\") manages multiple logical volumes on a single\nflash device, specifically supporting NAND flash devices. UBI provides\na flexible partitioning concept which still allows for wear-levelling\nacross the whole flash device.\n\nIn a sense, UBI may be compared to the Logical Volume Manager\n(LVM). Whereas LVM maps logical sector numbers to physical HDD sector\nnumbers, UBI maps logical eraseblocks to physical eraseblocks.\n\nMore information may be found at\nhttp://www.linux-mtd.infradead.org/doc/ubi.html\n\nPartitioning/Re-partitioning\n\n  An UBI volume occupies a certain number of erase blocks. This is\n  limited by a configured maximum volume size, which could also be\n  viewed as the partition size. Each individual UBI volume\u0027s size can\n  be changed independently of the other UBI volumes, provided that the\n  sum of all volume sizes doesn\u0027t exceed a certain limit.\n\n  UBI supports dynamic volumes and static volumes. Static volumes are\n  read-only and their contents are protected by CRC check sums.\n\nBad eraseblocks handling\n\n  UBI transparently handles bad eraseblocks. When a physical\n  eraseblock becomes bad, it is substituted by a good physical\n  eraseblock, and the user does not even notice this.\n\nScrubbing\n\n  On a NAND flash bit flips can occur on any write operation,\n  sometimes also on read. If bit flips persist on the device, at first\n  they can still be corrected by ECC, but once they accumulate,\n  correction will become impossible. Thus it is best to actively scrub\n  the affected eraseblock, by first copying it to a free eraseblock\n  and then erasing the original. The UBI layer performs this type of\n  scrubbing under the covers, transparently to the UBI volume users.\n\nErase Counts\n\n  UBI maintains an erase count header per eraseblock. This frees\n  higher-level layers (like file systems) from doing this and allows\n  for centralized erase count management instead. The erase counts are\n  used by the wear-levelling algorithm in the UBI layer. The algorithm\n  itself is exchangeable.\n\nBooting from NAND\n\n  For booting directly from NAND flash the hardware must at least be\n  capable of fetching and executing a small portion of the NAND\n  flash. Some NAND flash controllers have this kind of support. They\n  usually limit the window to a few kilobytes in erase block 0. This\n  \"initial program loader\" (IPL) must then contain sufficient logic to\n  load and execute the next boot phase.\n\n  Due to bad eraseblocks, which may be randomly scattered over the\n  flash device, it is problematic to store the \"secondary program\n  loader\" (SPL) statically. Also, due to bit-flips it may become\n  corrupted over time. UBI allows to solve this problem gracefully by\n  storing the SPL in a small static UBI volume.\n\nUBI volumes vs. static partitions\n\n  UBI volumes are still very similar to static MTD partitions:\n\n    * both consist of eraseblocks (logical eraseblocks in case of UBI\n      volumes, and physical eraseblocks in case of static partitions;\n    * both support three basic operations - read, write, erase.\n\n  But UBI volumes have the following advantages over traditional\n  static MTD partitions:\n\n    * there are no eraseblock wear-leveling constraints in case of UBI\n      volumes, so the user should not care about this;\n    * there are no bit-flips and bad eraseblocks in case of UBI volumes.\n\n  So, UBI volumes may be considered as flash devices with relaxed\n  restrictions.\n\nWhere can it be found?\n\n  Documentation, kernel code and applications can be found in the MTD\n  gits.\n\nWhat are the applications for?\n\n  The applications help to create binary flash images for two purposes: pfi\n  files (partial flash images) for in-system update of UBI volumes, and plain\n  binary images, with or without OOB data in case of NAND, for a manufacturing\n  step. Furthermore some tools are/and will be created that allow flash content\n  analysis after a system has crashed..\n\nWho did UBI?\n\n  The original ideas, where UBI is based on, were developed by Andreas\n  Arnez, Frank Haverkamp and Thomas Gleixner. Josh W. Boyer and some others\n  were involved too. The implementation of the kernel layer was done by Artem\n  B. Bityutskiy. The user-space applications and tools were written by Oliver\n  Lohmann with contributions from Frank Haverkamp, Andreas Arnez, and Artem.\n  Joern Engel contributed a patch which modifies JFFS2 so that it can be run on\n  a UBI volume. Thomas Gleixner did modifications to the NAND layer. Alexander\n  Schmidt made some testing work as well as core functionality improvements.\n\nSigned-off-by: Artem B. Bityutskiy \u003cdedekind@linutronix.de\u003e\nSigned-off-by: Frank Haverkamp \u003chaver@vnet.ibm.com\u003e\n"
    }
  ]
}
