)]}'
{
  "log": [
    {
      "commit": "bf05929f41d6c3c79ec1961d90d808a634f09dd9",
      "tree": "71afacc10d3a3cf46cd72b98beb1ccddeaa2bd31",
      "parents": [
        "aa523a82ee1be3f50560338e06151918fd8613e7"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue May 29 15:07:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:28 2012 -0700"
      },
      "message": "fbdev: add events for early fb event support\n\nAdd FB_EARLY_EVENT_BLANK and FB_R_EARLY_EVENT_BLANK event mode supports.\nfirst, fb_notifier_call_chain() is called with FB_EARLY_EVENT_BLANK and\nfb_blank() of specific fb driver is called and then\nfb_notifier_call_chain() is called with FB_EVENT_BLANK again at\nfb_blank().  and if fb_blank() was failed then fb_nitifier_call_chain()\nwould be called with FB_R_EARLY_EVENT_BLANK to revert the previous\neffects.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce880cb860f36694d2cdebfac9e6ae18176fe4c4",
      "tree": "6fa674bd935d7f4c48dec243970c6b0b92f0c0a7",
      "parents": [
        "8229c885fe361e521ac64de36b16011e54a30de0"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Sat Jan 28 19:57:46 2012 +0000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Thu Mar 15 13:35:22 2012 +0000"
      },
      "message": "udlfb: remove sysfs framebuffer device with USB .disconnect()\n\nThe USB graphics card driver delays the unregistering of the framebuffer\ndevice to a workqueue, which breaks the userspace visible remove uevent\nsequence. Recent userspace tools started to support USB graphics card\nhotplug out-of-the-box and rely on proper events sent by the kernel.\n\nThe framebuffer device is a direct child of the USB interface which is\nremoved immediately after the USB .disconnect() callback. But the fb device\nin /sys stays around until its final cleanup, at a time where all the parent\ndevices have been removed already.\n\nTo work around that, we remove the sysfs fb device directly in the USB\n.disconnect() callback and leave only the cleanup of the internal fb\ndata to the delayed work.\n\nBefore:\n add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)\n add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)\n add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)\n remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)\n remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)\n remove   /2-1.2:1.0/graphics/fb0 (graphics)\n\nAfter:\n add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)\n add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)\n add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)\n remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)\n remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)\n remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)\n\nCc: stable@vger.kernel.org\nTested-by: Bernie Thompson \u003cbernie@plugable.com\u003e\nAcked-by: Bernie Thompson \u003cbernie@plugable.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\n"
    },
    {
      "commit": "fb21c2f42879c05c76ea9e249b6905fc729f8529",
      "tree": "93c4581f4f2947dae8ebd36eae0cf86f38ec93d3",
      "parents": [
        "b779505282590289546aab9ffead4490fe195d40"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com",
        "time": "Tue Dec 13 14:02:26 2011 +0100"
      },
      "committer": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Mon Dec 19 20:07:13 2011 +0000"
      },
      "message": "fbdev: Add FOURCC-based format configuration API\n\nThis API will be used to support YUV frame buffer formats in a standard\nway.\n\nLast but not least, create a much needed fbdev API documentation and\ndocument the format setting APIs.\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\n"
    },
    {
      "commit": "9e769ff3f585db8f978f9113be83d36c7e3965dd",
      "tree": "b2e9e719469031452e4c488da86f639f881580f0",
      "parents": [
        "f49446ebdb043344058f67d25fbb7e3d9b306511"
      ],
      "author": {
        "name": "Herton Ronaldo Krzesinski",
        "email": "herton@mandriva.com.br",
        "time": "Fri Jun 17 19:02:39 2011 +0000"
      },
      "committer": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Fri Sep 02 17:58:29 2011 +0000"
      },
      "message": "fb: avoid possible deadlock caused by fb_set_suspend\n\nA lock ordering issue can cause deadlocks: in framebuffer/console code,\nall needed struct fb_info locks are taken before acquire_console_sem(),\nin places which need to take console semaphore.\n\nBut fb_set_suspend is always called with console semaphore held, and\ninside it we call lock_fb_info which gets the fb_info lock, inverse\nlocking order of what the rest of the code does. This causes a real\ndeadlock issue, when we write to state fb sysfs attribute (which calls\nfb_set_suspend) while a framebuffer is being unregistered by\nremove_conflicting_framebuffers, as can be shown by following show\nblocked state trace on a test program which loads i915 and runs another\nforked processes writing to state attribute:\n\nTest process with semaphore held and trying to get fb_info lock:\n..\nfb-test2      D 0000000000000000     0   237    228 0x00000000\n ffff8800774f3d68 0000000000000082 00000000000135c0 00000000000135c0\n ffff880000000000 ffff8800774f3fd8 ffff8800774f3fd8 ffff880076ee4530\n 00000000000135c0 ffff8800774f3fd8 ffff8800774f2000 00000000000135c0\nCall Trace:\n [\u003cffffffff8141287a\u003e] __mutex_lock_slowpath+0x11a/0x1e0\n [\u003cffffffff814142f2\u003e] ? _raw_spin_lock_irq+0x22/0x40\n [\u003cffffffff814123d3\u003e] mutex_lock+0x23/0x50\n [\u003cffffffff8125dfc5\u003e] lock_fb_info+0x25/0x60\n [\u003cffffffff8125e3f0\u003e] fb_set_suspend+0x20/0x80\n [\u003cffffffff81263e2f\u003e] store_fbstate+0x4f/0x70\n [\u003cffffffff812e7f70\u003e] dev_attr_store+0x20/0x30\n [\u003cffffffff811c46b4\u003e] sysfs_write_file+0xd4/0x160\n [\u003cffffffff81155a26\u003e] vfs_write+0xc6/0x190\n [\u003cffffffff81155d51\u003e] sys_write+0x51/0x90\n [\u003cffffffff8100c012\u003e] system_call_fastpath+0x16/0x1b\n..\nmodprobe process stalled because has the fb_info lock (got inside\nunregister_framebuffer) but waiting for the semaphore held by the\ntest process which is waiting to get the fb_info lock:\n..\nmodprobe      D 0000000000000000     0   230    218 0x00000000\n ffff880077a4d618 0000000000000082 0000000000000001 0000000000000001\n ffff880000000000 ffff880077a4dfd8 ffff880077a4dfd8 ffff8800775a2e20\n 00000000000135c0 ffff880077a4dfd8 ffff880077a4c000 00000000000135c0\nCall Trace:\n [\u003cffffffff81411fe5\u003e] schedule_timeout+0x215/0x310\n [\u003cffffffff81058051\u003e] ? get_parent_ip+0x11/0x50\n [\u003cffffffff814130dd\u003e] __down+0x6d/0xb0\n [\u003cffffffff81089f71\u003e] down+0x41/0x50\n [\u003cffffffff810629ac\u003e] acquire_console_sem+0x2c/0x50\n [\u003cffffffff812ca53d\u003e] unbind_con_driver+0xad/0x2d0\n [\u003cffffffff8126f5f7\u003e] fbcon_event_notify+0x457/0x890\n [\u003cffffffff814144ff\u003e] ? _raw_spin_unlock_irqrestore+0x1f/0x50\n [\u003cffffffff81058051\u003e] ? get_parent_ip+0x11/0x50\n [\u003cffffffff8141836d\u003e] notifier_call_chain+0x4d/0x70\n [\u003cffffffff8108a3b8\u003e] __blocking_notifier_call_chain+0x58/0x80\n [\u003cffffffff8108a3f6\u003e] blocking_notifier_call_chain+0x16/0x20\n [\u003cffffffff8125dabb\u003e] fb_notifier_call_chain+0x1b/0x20\n [\u003cffffffff8125e6ac\u003e] unregister_framebuffer+0x7c/0x130\n [\u003cffffffff8125e8b3\u003e] remove_conflicting_framebuffers+0x153/0x180\n [\u003cffffffff8125eef3\u003e] register_framebuffer+0x93/0x2c0\n [\u003cffffffffa0331112\u003e] drm_fb_helper_single_fb_probe+0x252/0x2f0 [drm_kms_helper]\n [\u003cffffffffa03314a3\u003e] drm_fb_helper_initial_config+0x2f3/0x6d0 [drm_kms_helper]\n [\u003cffffffffa03318dd\u003e] ? drm_fb_helper_single_add_all_connectors+0x5d/0x1c0 [drm_kms_helper]\n [\u003cffffffffa037b588\u003e] intel_fbdev_init+0xa8/0x160 [i915]\n [\u003cffffffffa0343d74\u003e] i915_driver_load+0x854/0x12b0 [i915]\n [\u003cffffffffa02f0e7e\u003e] drm_get_pci_dev+0x19e/0x360 [drm]\n [\u003cffffffff8141821d\u003e] ? sub_preempt_count+0x9d/0xd0\n [\u003cffffffffa0386f91\u003e] i915_pci_probe+0x15/0x17 [i915]\n [\u003cffffffff8124481f\u003e] local_pci_probe+0x5f/0xd0\n [\u003cffffffff81244f89\u003e] pci_device_probe+0x119/0x120\n [\u003cffffffff812eccaa\u003e] ? driver_sysfs_add+0x7a/0xb0\n [\u003cffffffff812ed003\u003e] driver_probe_device+0xa3/0x290\n [\u003cffffffff812ed1f0\u003e] ? __driver_attach+0x0/0xb0\n [\u003cffffffff812ed29b\u003e] __driver_attach+0xab/0xb0\n [\u003cffffffff812ed1f0\u003e] ? __driver_attach+0x0/0xb0\n [\u003cffffffff812ebd3e\u003e] bus_for_each_dev+0x5e/0x90\n [\u003cffffffff812ecc2e\u003e] driver_attach+0x1e/0x20\n [\u003cffffffff812ec6f2\u003e] bus_add_driver+0xe2/0x320\n [\u003cffffffffa03aa000\u003e] ? i915_init+0x0/0x96 [i915]\n [\u003cffffffff812ed536\u003e] driver_register+0x76/0x140\n [\u003cffffffffa03aa000\u003e] ? i915_init+0x0/0x96 [i915]\n [\u003cffffffff81245216\u003e] __pci_register_driver+0x56/0xd0\n [\u003cffffffffa02f1264\u003e] drm_pci_init+0xe4/0xf0 [drm]\n [\u003cffffffffa03aa000\u003e] ? i915_init+0x0/0x96 [i915]\n [\u003cffffffffa02e84a8\u003e] drm_init+0x58/0x70 [drm]\n [\u003cffffffffa03aa094\u003e] i915_init+0x94/0x96 [i915]\n [\u003cffffffff81002194\u003e] do_one_initcall+0x44/0x190\n [\u003cffffffff810a066b\u003e] sys_init_module+0xcb/0x210\n [\u003cffffffff8100c012\u003e] system_call_fastpath+0x16/0x1b\n..\n\nfb-test2 which reproduces above is available on kernel.org bug #26232.\nTo solve this issue, avoid calling lock_fb_info inside fb_set_suspend,\nand move it out to where needed (callers of fb_set_suspend must call\nlock_fb_info before if needed). So far, the only place which needs to\ncall lock_fb_info is store_fbstate, all other places which calls\nfb_set_suspend are suspend/resume hooks that should not need the lock as\nthey should be run only when processes are already frozen in\nsuspend/resume.\n\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d26232\nSigned-off-by: Herton Ronaldo Krzesinski \u003cherton@mandriva.com.br\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c590cece75728a85ea06801df3ebad2d7ad8612c",
      "tree": "3f3f7ade41317d86305a3839d9f2ad646945aa60",
      "parents": [
        "712f3147aee0fbbbbed2da20b21b272c5505125e"
      ],
      "author": {
        "name": "Bruno Prémont",
        "email": "bonbons@linux-vserver.org",
        "time": "Sat May 14 12:24:15 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 14 10:28:54 2011 -0700"
      },
      "message": "Further fbcon sanity checking\n\nThis moves the\n\n    if (num_registered_fb \u003d\u003d FB_MAX)\n            return -ENXIO;\n\ncheck _AFTER_ the call to do_remove_conflicting_framebuffers() as this\nwould (now in a safe way) allow a native driver to replace the\nconflicting one even if all slots in registered_fb[] are taken.\n\nThis also prevents unregistering a framebuffer that is no longer\nregistered (vga16f will unregister at module unload time even if the\nframe buffer had been unregistered earlier due to being found\nconflicting).\n\nSigned-off-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "712f3147aee0fbbbbed2da20b21b272c5505125e",
      "tree": "02bf6ff00f1978b4165c2c2d4554606bae65107e",
      "parents": [
        "c47747fde931c02455683bd00ea43eaa62f35b0e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 13 16:16:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 14 10:23:44 2011 -0700"
      },
      "message": "fbmem: fix remove_conflicting_framebuffers races\n\nWhen a register_framebuffer() call results in us removing old\nconflicting framebuffers, the new registration_lock doesn\u0027t protect that\nsituation.  And we can\u0027t just add the same locking to the function,\nbecause these functions call each other: register_framebuffer() calls\nremove_conflicting_framebuffers, which in turn calls\nunregister_framebuffer for any conflicting entry.\n\nIn order to fix it, this just creates wrapper functions around all three\nfunctions and makes the versions that actually do the work be called\n\"do_xxx()\", leaving just the wrapper that gets the lock and calls the\nworker function.\n\nSo the rule becomes simply that \"do_xxxx()\" has to be called with the\nlock held, and now do_register_framebuffer() can just call\ndo_remove_conflicting_framebuffers(), and that in turn can call\n_do_unregister_framebuffer(), and there is no deadlock, and we can hold\nthe registration lock over the whole sequence, fixing the races.\n\nIt also makes error cases simpler, and fixes one situation where we\nwould return from unregister_framebuffer() without releasing the lock,\npointed out by Bruno Prémont.\n\nTested-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nTested-by: Anca Emanuel \u003canca.emanuel@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c47747fde931c02455683bd00ea43eaa62f35b0e",
      "tree": "a98fbf2b466cabbc71a685a24496e08e074ecfb2",
      "parents": [
        "698b368275c3fa98261159253cfc79653f9dffc6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 14:58:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 12 07:46:43 2011 -0700"
      },
      "message": "fbmem: make read/write/ioctl use the frame buffer at open time\n\nread/write/ioctl on a fbcon file descriptor has traditionally used the\nfbcon not when it was opened, but as it was at the time of the call.\nThat makes no sense, but the lack of sense is much more obvious now that\nwe properly ref-count the usage - it means that the ref-counting doesn\u0027t\nactually protect operations we do on the frame buffer.\n\nThis changes it to look at the fb_info that we got at open time, but in\norder to avoid using a frame buffer long after it has been unregistered,\nwe do verify that it is still current, and return -ENODEV if not.\n\nAcked-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nTested-by: Anca Emanuel \u003canca.emanuel@gmail.com\u003e\nCc: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Andy Whitcroft \u003candy.whitcroft@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "698b368275c3fa98261159253cfc79653f9dffc6",
      "tree": "b92c921fe6522ece33fbbde33cc173c9dd32d9a2",
      "parents": [
        "9f381a61f58bb6487c93ce2233bb9992f8ea9211"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 14:49:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 12 07:37:51 2011 -0700"
      },
      "message": "fbcon: add lifetime refcount to opened frame buffers\n\nThis just adds the refcount and the new registration lock logic.  It\ndoes not (for example) actually change the read/write/ioctl routines to\nactually use the frame buffer that was opened: those function still end\nup alway susing whatever the current frame buffer is at the time of the\ncall.\n\nWithout this, if something holds the frame buffer open over a\nframebuffer switch, the close() operation after the switch will access a\nfb_info that has been free\u0027d by the unregistering of the old frame\nbuffer.\n\n(The read/write/ioctl operations will normally not cause problems,\nbecause they will - illogically - pick up the new fbcon instead.  But a\nswitch that happens just as one of those is going on might see problems\ntoo, the window is just much smaller: one individual op rather than the\nwhole open-close sequence.)\n\nThis use-after-free is apparently fairly easily triggered by the Ubuntu\n11.04 boot sequence.\n\nAcked-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nTested-by: Anca Emanuel \u003canca.emanuel@gmail.com\u003e\nCc: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Andy Whitcroft \u003candy.whitcroft@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47c87d930f3db4fc3a30505075e07f5597e2e953",
      "tree": "7eac2b7eaf80987ed84268863be2e61a6b245b61",
      "parents": [
        "787dffa5c790fdae40a0706e0b3847e31282eb3b"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Mon Apr 04 21:39:54 2011 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Apr 06 09:58:29 2011 -0700"
      },
      "message": "fb: Reduce priority of resource conflict message\n\nIt\u0027s expected that efifb will conflict with a native driver, so the\nhandover message should be informational rather than an error.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "ac751efa6a0d70f2c9daef5c7e3a92270f5c2dff",
      "tree": "e2d3f799e20e2cbca80891ea17af7484f21d628f",
      "parents": [
        "3689456b4bd36027022b3215eb2acba51cd0e6b5"
      ],
      "author": {
        "name": "Torben Hohn",
        "email": "torbenh@gmx.de",
        "time": "Tue Jan 25 15:07:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 26 10:50:06 2011 +1000"
      },
      "message": "console: rename acquire/release_console_sem() to console_lock/unlock()\n\nThe -rt patches change the console_semaphore to console_mutex.  As a\nresult, a quite large chunk of the patches changes all\nacquire/release_console_sem() to acquire/release_console_mutex()\n\nThis commit makes things use more neutral function names which dont make\nimplications about the underlying lock.\n\nThe only real change is the return value of console_trylock which is\ninverted from try_acquire_console_sem()\n\nThis patch also paves the way to switching console_sem from a semaphore to\na mutex.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert]\nSigned-off-by: Torben Hohn \u003ctorbenh@gmx.de\u003e\nCc: Thomas Gleixner \u003ctglx@tglx.de\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acd0acb65ec907a9e872bbaa7ad811a518b49b45",
      "tree": "96d84ec98298e79efce95619a54f6676dea93702",
      "parents": [
        "8c1ac08b38af0c477ae32df9f4625b7dbddea1ea"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Dec 21 01:41:15 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Dec 24 12:33:55 2010 +0900"
      },
      "message": "fb: fix overlapping test off-by-one.\n\nOn my system with a radeon x2, the first GPU was not overlapping vesa\nbut the test decided it was.\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nReviewed-by: Michel Dänzer \u003cmichel@daenzer.net\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "f11b478d461b7113eb4603b3914aaf15b7788e87",
      "tree": "84e673927a071c64658d8b24ae423de86948b573",
      "parents": [
        "c9c62dce35e7fc54beebafb071393a0008989e49"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james@albanarts.com",
        "time": "Wed Oct 27 15:33:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:08 2010 -0700"
      },
      "message": "fbmem: fix fb_read, fb_write unaligned accesses\n\nfb_{read,write} access the framebuffer using lots of fb_{read,write}l\u0027s\nbut don\u0027t check that the file position is aligned which can cause problems\non some architectures which do not support unaligned accesses.\n\nSince the operations are essentially memcpy_{from,to}io, new\nfb_memcpy_{from,to}fb macros have been defined and these are used instead.\n\nFor Sparc, fb_{read,write} macros use sbus_{read,write}, so this defines\nnew sbus_memcpy_{from,to}io functions the same as memcpy_{from,to}io but\nusing sbus_{read,write}b instead of {read,write}b.\n\nSigned-off-by: James Hogan \u003cjames@albanarts.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9c62dce35e7fc54beebafb071393a0008989e49",
      "tree": "68b0f7e2b63e697aca023d8932bc9a7eafa26608",
      "parents": [
        "847fb8aca3b79d03ef6c5f87f0843a30ed9e6627"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james@albanarts.com",
        "time": "Wed Oct 27 15:33:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:08 2010 -0700"
      },
      "message": "fbmem: fix whitespace\n\nChange a few lines of indentation to tabs.\n\nSigned-off-by: James Hogan \u003cjames@albanarts.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "c07fbfd17e614a76b194f371c5331e21e6cffb54",
      "tree": "34bd53668b5b45b344411d49d8acf6d466004428",
      "parents": [
        "daf695fca877068d7533a1b431b09210e5ad0b6b"
      ],
      "author": {
        "name": "Daniel De Graaf",
        "email": "dgdegra@tycho.nsa.gov",
        "time": "Tue Aug 10 18:02:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:12 2010 -0700"
      },
      "message": "fbmem: VM_IO set, but not propagated\n\nWhen we setup up the VMA flags for the mmap flag and we end up using the\nfallback mmap functionality we set the vma-\u003evm_flags |\u003d VM_IO.  However we\nneglect to propagate the flag to the vma-\u003evm_page_prot.\n\nThis bug was found when Linux kernel was running under Xen.  In that\nscenario, any page that has VM_IO flag to it, means that it MUST be a\nMMIO/VRAM backend memory , _not_ System RAM.  That is what the fbmem.c\ndoes: sets VM_IO, ioremaps the region - everything is peachy.\n\nWell, not exactly.  The vm_page_prot does not get the relevant PTE flags\nset (_PAGE_IOMAP) which under Xen is a death-kneel to pages that are\nreferencing real physical devices but don\u0027t have that flag set.\n\nThis patch fixes this.\n\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Daniel De Graaf \u003cdgdegra@tycho.nsa.gov\u003e\nTested-by: Eamon Walsh \u003cewalsh@tycho.nsa.gov\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\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": "a67ef278e24b1fe5ab8f5e8ef27f9654b91732de",
      "tree": "dbef61c3226194d95c93105ccb1a83774e74776e",
      "parents": [
        "26c5be3c750df6f8a9193d478905627ec75f7f41"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Aug 10 18:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:09 2010 -0700"
      },
      "message": "drivers/video/fbmem.c: simplify strlen()\u003d\u003d0 check in fb_get_options()\n\nReplaced !strlen(str) check with !str[0].  Removed the variable which was\nused solely to store strlen result.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4b87dee923342505e1ddba8d34ce9de33e75050",
      "tree": "8940649c70ce9cee1186e602d7ad81de06bbbcec",
      "parents": [
        "2faa4cf76e7d229016240b79b50a43d81f458323"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri May 21 12:44:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 20:30:33 2010 -0700"
      },
      "message": "fbmem: avoid printk format warning with 32-bit resources\n\nFix printk formats:\n\n  drivers/video/fbmem.c: In function \u0027fb_do_apertures_overlap\u0027:\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 2 has type \u0027resource_size_t\u0027\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027resource_size_t\u0027\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 4 has type \u0027resource_size_t\u0027\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 5 has type \u0027resource_size_t\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b9676e7ac6eff4f50f1b48b6c36664f55b79507",
      "tree": "b9c1367db290a66f1cba4f78a488f7e25e779b79",
      "parents": [
        "06415c564fb98562a4d6b6215615deb2d1cc0dae"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Sun May 16 17:33:09 2010 +0200"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue May 18 16:19:30 2010 +1000"
      },
      "message": "vga16fb, drm: vga16fb-\u003edrm handoff\n\nlet vga16fb claim 0xA0000+0x10000 region as its aperture;\ndrm drivers don\u0027t use it, so we have to detect it and kick\nvga16fb manually - but only if drm is driving the primary card\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "06415c564fb98562a4d6b6215615deb2d1cc0dae",
      "tree": "93982221251bc68eb292a07da72220a0c90d94f0",
      "parents": [
        "1471ca9aa71cd37b6a7476bb6f06a3a8622ea1bd"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Sun May 16 17:29:56 2010 +0200"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue May 18 16:19:28 2010 +1000"
      },
      "message": "fbmem, drm/nouveau: kick firmware framebuffers as soon as possible\n\nCurrently vesafb/efifb/... is kicked when hardware driver is registering\nframebuffer. To do it hardware must be fully functional, so there\u0027s a short\nwindow between start of initialisation and framebuffer registration when\ntwo drivers touch the hardware. Unfortunately sometimes it breaks nouveau\ninitialisation.\n\nFix it by kicking firmware driver(s) before we start touching the hardware.\n\nReported-by: Didier Spaier \u003cdidier.spaier@epsm.fr\u003e\nTested-by: Didier Spaier \u003cdidier.spaier@epsm.fr\u003e\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nCc: Peter Jones \u003cpjones@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "1471ca9aa71cd37b6a7476bb6f06a3a8622ea1bd",
      "tree": "3bf5ef9fea79b0b92220cfcc3842db7afb5cd63d",
      "parents": [
        "3da1f33e79a5922c1a31077e7b33aba1cec19b94"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Sun May 16 17:27:03 2010 +0200"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue May 18 16:19:27 2010 +1000"
      },
      "message": "fbdev: allow passing more than one aperture for handoff\n\nIt removes a hack from nouveau code which had to detect which\nregion to pass to kick vesafb/efifb.\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Eric Anholt \u003ceric@anholt.net\u003e\nCc: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nCc: Thomas Hellstrom \u003cthellstrom@vmware.com\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Peter Jones \u003cpjones@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "9fd1de52945e06ed88a440c99ca92dab74b9b33c",
      "tree": "1bc5bd669ae351bf5faf741cffdab141c13ee749",
      "parents": [
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Thu Feb 25 14:05:09 2010 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Thu Feb 25 14:15:12 2010 +1000"
      },
      "message": "fb: for framebuffer handover don\u0027t exit the loop early.\n\nAn offb machine has been seen in the fields which adds two\noffb nodes, so continue scanning the list after removing one.\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "e15daf6cdf59fd76c0c5d396ccd1426567305750",
      "tree": "bd8702d19899673f9363fb83a644f0bd9062057b",
      "parents": [
        "07892acf37d98bcf1e5f2df9e23d414ded830b61",
        "f0ed1f655aa0375e2abba84cc4e8e6c853d48555"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 30 08:03:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 30 08:03:00 2009 -0700"
      },
      "message": "Merge branch \u0027drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (25 commits)\n  drm/radeon/kms: Convert R520 to new init path and associated cleanup\n  drm/radeon/kms: Convert RV515 to new init path and associated cleanup\n  drm: fix radeon DRM warnings when !CONFIG_DEBUG_FS\n  drm: fix drm_fb_helper warning when !CONFIG_MAGIC_SYSRQ\n  drm/r600: fix memory leak introduced with 64k malloc avoidance fix.\n  drm/kms: make fb helper work for all drivers.\n  drm/radeon/r600: fix offset handling in CS parser\n  drm/radeon/kms/r600: fix forcing pci mode on agp cards\n  drm/radeon/kms: fix for the extra pages copying.\n  drm/radeon/kms/r600: add support for vline relocs\n  drm/radeon/kms: fix some bugs in vline reloc\n  drm/radeon/kms/r600: clamp vram to aperture size\n  drm/kms: protect against fb helper not being created.\n  drm/r600: get values from the passed in IB not the copy.\n  drm: create gitignore file for radeon\n  drm/radeon/kms: remove unneeded master create/destroy functions.\n  drm/kms: start adding command line interface using fb.\n  fb: change rules for global rules match.\n  drm/radeon/kms: don\u0027t require up to 64k allocations. (v2)\n  drm/radeon/kms: enable dac load detection by default.\n  ...\n\nTrivial conflicts in drivers/gpu/drm/radeon/radeon_asic.h due to adding\n\u0027-\u003evga_set_state\u0027 function pointers.\n"
    },
    {
      "commit": "f80330357284c908e1f67cc8b4d8e56a3e2f6fc6",
      "tree": "a45858e9ed67dce0dc78ccb585babe4b69783b99",
      "parents": [
        "513bcb4655e68706594e45dfa1d4b181500110ba"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Wed Sep 16 20:45:09 2009 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Fri Sep 25 13:08:19 2009 +1000"
      },
      "message": "fb: change rules for global rules match.\n\nHaving a : should be enough \u0027fb:\u0027 isn\u0027t really useful\nif the fb wants to a kms output ID.\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "0fcf6ada2b8eb42d132c0846384f1299889609e3",
      "tree": "b6b9e2996eb621d6ab03d1d8ac5e00ce070cea76",
      "parents": [
        "360fa58828784f307c3977d5ff4c8e400f074a56"
      ],
      "author": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Tue Sep 22 16:47:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:56 2009 -0700"
      },
      "message": "fb: do not ignore fb_set_par errors\n\nAt the moment about half of the framebuffer drivers can return an error\ncode in fb_set_par. Until now it would be silently ignored by fbmem.c\nand fbcon.c. This patch fixes fbmem.c to return the error code and\nrestore var on error.\n\nBut it is not clear in which video mode the device is when fb_set_par\nfails.  It would be good and reasonable if it were in the old state but\nthere is no guarantee that this is true for all existing drivers.\nAdditionally print a message if a failing fb_set_par is detected in\nfbmem.c or fbcon.c.\n\nAlthough most errors should be caught by the previous fb_check_var some\nerrors can\u0027t as they are dynamic (memory allocations, ...) and can only be\ndetected while performing the operations which is forbidden in\nfb_check_var.\n\nThis patch shouldn\u0027t have a negative impact on normal operation as all\ndrivers return 0 on success.  The impact in case of error depends heavily\non the driver and caller but it\u0027s expected to be better than before.\n\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99e9e7d62becd6c7413a9e8fbda7f5b66adb5cbf",
      "tree": "63ffee25ae6f56a41ff227aea44556a2d16ee907",
      "parents": [
        "ff8147fe71246b81a48de5f37041b026b57d60ca"
      ],
      "author": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Tue Sep 22 16:47:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:56 2009 -0700"
      },
      "message": "fb: fix fb_pan_display range check\n\nFix the range check for panning.  The current code fails to detect some\ninvalid values (very high ones that can occur if an app tries to move\nfurther up/left than 0,0) as the check uses the unknown values for\ncalculation so that an overflow can occur.\n\nTo fix this it is sufficient to move the calculation to the right side to\nuse only trusted values.\n\nKai Jiang detected this problem and proposed an initial patch.\n\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Kai Jiang \u003cb18973@freescale.com\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c96895e999f5c44a95a5cad6a6e32e7bd6e28b6",
      "tree": "5f7ca73877e79431e36a96c658120ee89af39b6f",
      "parents": [
        "99f5d48b98fb52db6da379c1b1fd6c87438ee45a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 08 09:20:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 08 09:20:11 2009 -0700"
      },
      "message": "Revert \"fb: Initialize fb_info mutexes in framebuffer_alloc()\"\n\nThis reverts commit 4148df9b0f38bdd362dd91d52076926c11cbe5a9.\n\nLet\u0027s hope that the mm_lock initialization is now correct with all\ndrivers, following Krzysztof\u0027s patches.\n\nRequested-by: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4148df9b0f38bdd362dd91d52076926c11cbe5a9",
      "tree": "a3f119761bbadfc37d0544420263f9272f5209c8",
      "parents": [
        "793285fcafce4719a05e0c99fa74b188157fe7fe"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jul 06 00:25:57 2009 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 14:02:50 2009 -0700"
      },
      "message": "fb: Initialize fb_info mutexes in framebuffer_alloc()\n\nThis way they\u0027ll be properly initialized early enough for users that may\ntouch them before the framebuffer has been registered.\n\nDrivers that allocate their fb_info structure some other way (like\nmatrocfb\u0027s broken static allocation) need to be fixed up appropriately.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "537a1bf059fa312355696fa6db80726e655e7f17",
      "tree": "4f5b3c6917311cfefad21eaf3dd92978334282de",
      "parents": [
        "70d6027ff2bc8bab180273b77e7ab3e8a62cca51"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Jun 30 11:41:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 30 18:56:00 2009 -0700"
      },
      "message": "fbdev: add mutex for fb_mmap locking\n\nAdd a mutex to avoid a circular locking problem between the mm layer\nsemaphore and fbdev ioctl mutex through the fb_mmap() call.\n\nAlso, add mutex to all places where smem_start and smem_len fields change\nso the mutex inside the fb_mmap() is actually used.  Changing of these\nfields before calling the framebuffer_register() are not mutexed.\n\nThis is 2.6.31 material.  It removes one lockdep (fb_mmap() and\nregister_framebuffer()) but there is still another one (fb_release() and\nregister_framebuffer()).  It also cleans up handling of the smem_start and\nsmem_len fields used by mutexed section of the fb_mmap().\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4410f3910947dcea8672280b3adecd53cec4e85e",
      "tree": "814e1823cf773d8911b946df780faaec5c89d593",
      "parents": [
        "b586640141ab5f4ab3b194419bc2c0f039e91dbc"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Jun 16 15:34:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:48:00 2009 -0700"
      },
      "message": "fbdev: add support for handoff from firmware to hw framebuffers\n\nWith KMS we have ran into an issue where we really want the KMS fb driver\nto be the one running the console, so panics etc can be shown by switching\nout of X etc.\n\nHowever with vesafb/efifb built-in, we end up with those on fb0 and the\nKMS fb driver on fb1, driving the same piece of hw, so this adds an fb\ninfo flag to denote a firmware fbdev, and adds a new aperture base/size\nrange which can be compared when the hw drivers are installed to see if\nthere is a conflict with a firmware driver, and if there is the firmware\ndriver is unregistered and the hw driver takes over.\n\nIt uses new aperture_base/size members instead of comparing on the fix\nsmem_start/length, as smem_start/length might for example only cover the\nfirst 1MB of the PCI aperture, and we could allocate the kms fb from 8MB\ninto the aperture, thus they would never overlap.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nAcked-by: Peter Jones \u003cpjones@redhat.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "513adb58685615b0b1d47a3f0d40f5352beff189",
      "tree": "80afe08d17f24bbf3d5ad48d62df2e143d00ae95",
      "parents": [
        "b52bb3712a64c404846f30300b339cfd01e316be"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Mon Apr 13 14:39:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:28 2009 -0700"
      },
      "message": "fbdev: fix info-\u003elock deadlock in fbcon_event_notify()\n\nfb_notifier_call_chain() is called with info-\u003elock held, i.e.  in\ndo_fb_ioctl() \u003d\u003e FBIOPUT_VSCREENINFO \u003d\u003e fb_set_var() and the some\nnotifier callbacks, like fbcon_event_notify(), try to re-acquire\ninfo-\u003elock again.\n\nRemove the lock/unlock_fb_info() in all the framebuffer notifier\ncallbacks\u0027 and be sure to always call fb_notifier_call_chain() with\ninfo-\u003elock held.\n\nReported-by: Pavel Roskin \u003cproski@gnu.org\u003e\nReported-by: Eric Miao \u003ceric.y.miao@gmail.com\u003e\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a7f2829b5f8be124e168265f176dbbbea8861a0",
      "tree": "e900d09ba43d9a7248725287a7658fa85e041332",
      "parents": [
        "66c1ca019078220dc1bf968f2bb18421100ef147"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Mar 31 15:25:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:29 2009 -0700"
      },
      "message": "fbdev: uninline lock_fb_info()\n\nBefore:\n\n   text    data     bss     dec     hex filename\n   3648    2910      32    6590    19be drivers/video/backlight/backlight.o\n   3226    2812      32    6070    17b6 drivers/video/backlight/lcd.o\n  30990   16688    8480   56158    db5e drivers/video/console/fbcon.o\n  15488    8400      24   23912    5d68 drivers/video/fbmem.o\n\nAfter:\n\n   text    data     bss     dec     hex filename\n   3537    2870      32    6439    1927 drivers/video/backlight/backlight.o\n   3131    2772      32    5935    172f drivers/video/backlight/lcd.o\n  30876   16648    8480   56004    dac4 drivers/video/console/fbcon.o\n  15506    8400      24   23930    5d7a drivers/video/fbmem.o\n\nCc: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66c1ca019078220dc1bf968f2bb18421100ef147",
      "tree": "b01d28d74bab9d9e3f0f24841a80a272d6f6520a",
      "parents": [
        "8636a9240cc93efa6b36f4cfe6253e0574f832c6"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Tue Mar 31 15:25:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:29 2009 -0700"
      },
      "message": "fbmem: fix fb_info-\u003elock and mm-\u003emmap_sem circular locking dependency\n\nFix a circular locking dependency in the frame buffer console driver\npushing down the mutex fb_info-\u003elock.\n\nCircular locking dependecies occur calling the blocking\nfb_notifier_call_chain() with fb_info-\u003elock held.  Notifier callbacks can\ntry to acquire mm-\u003emmap_sem, while fb_mmap() acquires the locks in the\nreverse order mm-\u003emmap_sem \u003d\u003e fb_info-\u003elock.\n\nTested-by: Andrey Borzenkov \u003carvidjaar@mail.ru\u003e\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f5e31d7e55ac7fbd4ec5e5b20c8868b0e4564c9",
      "tree": "713d0ace63c95da9b989aafce8ec84ebb1d1cbc3",
      "parents": [
        "afd8d0f940ba5078f38e435440089117ac7d9eb4"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Wed Feb 04 15:12:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:46 2009 -0800"
      },
      "message": "fbmem: don\u0027t call copy_from/to_user() with mutex held\n\nAvoid calling copy_from/to_user() with fb_info-\u003elock mutex held in fbmem\nioctl().\n\nfb_mmap() is called under mm-\u003emmap_sem (A) held, that also acquires\nfb_info-\u003elock (B); fb_ioctl() takes fb_info-\u003elock (B) and does\ncopy_from/to_user() that might acquire mm-\u003emmap_sem (A), causing a\ndeadlock.\n\nNOTE: it doesn\u0027t push down the fb_info-\u003elock in each own driver\u0027s\nfb_ioctl(), so there are still potential deadlocks elsewhere.\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fb6de2561d5c47f3539a7b412108164d79fbb96",
      "tree": "69404556536c60d0fec260f5d95ecfafe73e55bb",
      "parents": [
        "c00b1b7d19d335f96aa03ef2e4e71b7fb4fdb056"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue Jan 06 14:42:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:27 2009 -0800"
      },
      "message": "fbdev/logo: check compatibility of main and extra logos\n\nThe code to draw penguin logos always uses some properties of the main logo.\nThis is incorrect if additional logos (CONFIG_FB_LOGO_EXTRA\u003dy) have different\ntypes than the main logo, which causes corrupted logo images.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d12181\n\nHence skip additional logos that are not compatible with the main logo.\n\nTechnically, it\u0027s possible to draw multiple logos of different types on\ntruecolor displays, but this would complicate the (already quite\ncomplicated) logo drawing code even more.\n\nThis patch fixes a problem with Debian\u0027s linux-image-2.6.26-1-powerpc64\nhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d508173\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf7ee554f3a324e98181b0ea249d9d5be3a0acb8",
      "tree": "cf1f1d254c49fec9ef2b839b5a146b118ac57d18",
      "parents": [
        "e00b4ff7ebf098b11b11be403921c1cf41d9e321"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Nov 19 15:36:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "fbdev: clean the penguin\u0027s dirty feet\n\nWhen booting in a direct color mode, the penguin has dirty feet, i.e.,\nsome pixels have the wrong color.  This is caused by\nfb_set_logo_directpalette() which does not initialize the last 32 palette\nentries.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a684e7d33096892093456dd56a582cfc3bfad648",
      "tree": "25f1225b14a1e4f5abca7565203e6410e0de34cc",
      "parents": [
        "a70dcb969f64e2fa98c24f47854f20bf02ff0092"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Thu Nov 06 12:53:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "fbdev: fix fb_compat_ioctl() deadlocks\n\ncommit 3e680aae4e53ab54cdbb0c29257dae0cbb158e1c (\"fb: convert\nlock/unlock_kernel() into local fb mutex\") introduced several deadlocks\nin the fb_compat_ioctl() path, as mutex_lock() doesn\u0027t allow recursion,\nunlike lock_kernel().  This broke frame buffer applications on 64-bit\nsystems with a 32-bit userland.\n\ncommit 120a37470c2831fea49fdebaceb5a7039f700ce6 (\"framebuffer compat_ioctl\ndeadlock\") fixed one of the deadlocks.\n\nThis patch fixes the remaining deadlocks:\n  - Revert commit 120a37470c2831fea49fdebaceb5a7039f700ce6,\n  - Extract the core logic of fb_ioctl() into a new function do_fb_ioctl(),\n  - Change all callsites of fb_ioctl() where info-\u003elock is already held to\n    call do_fb_ioctl() instead,\n  - Add sparse annotations to all routines that take info-\u003elock.\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "120a37470c2831fea49fdebaceb5a7039f700ce6",
      "tree": "66ecbbda7026f185bae8ab6a6cf3a692c721a2e3",
      "parents": [
        "51b7616e36fbad93d7ba9e41f11fb57143d11252"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Wed Oct 29 14:01:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:47 2008 -0700"
      },
      "message": "framebuffer compat_ioctl deadlock\n\nFix deadlock in fb_compat_ioctl.  fb_compat_ioctl acquires a mutex and\ncalls fb_ioctl that tries to acquire that mutex too.  A regression added\nduring BKL removal.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e680aae4e53ab54cdbb0c29257dae0cbb158e1c",
      "tree": "389c2a60625b2f9dbd9555378a9d4917730f335e",
      "parents": [
        "e53677113e32e6f118e31b8391a2eab7ee52c0a7"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Sat Oct 18 20:27:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:36 2008 -0700"
      },
      "message": "fb: convert lock/unlock_kernel() into local fb mutex\n\nChange lock_kernel()/unlock_kernel() to local fb mutex.  Each frame buffer\ninstance has its own mutex.\n\nThe one line try_to_load() function is unrolled to request_module() in two\nplaces for readability.\n\n[righi.andrea@gmail.com: fb: fix NULL pointer BUG dereference in fb_open()]\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nSigned-off-by: Andrea Righi \u003crighi.andrea@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": "e53677113e32e6f118e31b8391a2eab7ee52c0a7",
      "tree": "4301f70815fc4c58c4ae41313a5c154448fe4771",
      "parents": [
        "978ccaa8ea5d8c7bf6b676209f2fc126eae6355b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sat Oct 18 20:27:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:36 2008 -0700"
      },
      "message": "fb: push down the BKL in the ioctl handler\n\nFramebuffer is heavily BKL dependant at the moment so just wrap the ioctl\nhandler in the driver as we push down.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c813b4e16ead3c3df98ac84419d4df2adf33fe01",
      "tree": "2ca4a5b6966d833b6149e3dda7a4e85d1255779c",
      "parents": [
        "c8d8a2321f9c4ee18fbcc399fdc2a77e580a03b9",
        "02683ffdf655b4ae15245376ba6fea6d9e5829a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (46 commits)\n  UIO: Fix mapping of logical and virtual memory\n  UIO: add automata sercos3 pci card support\n  UIO: Change driver name of uio_pdrv\n  UIO: Add alignment warnings for uio-mem\n  Driver core: add bus_sort_breadthfirst() function\n  NET: convert the phy_device file to use bus_find_device_by_name\n  kobject: Cleanup kobject_rename and !CONFIG_SYSFS\n  kobject: Fix kobject_rename and !CONFIG_SYSFS\n  sysfs: Make dir and name args to sysfs_notify() const\n  platform: add new device registration helper\n  sysfs: use ilookup5() instead of ilookup5_nowait()\n  PNP: create device attributes via default device attributes\n  Driver core: make bus_find_device_by_name() more robust\n  usb: turn dev_warn+WARN_ON combos into dev_WARN\n  debug: use dev_WARN() rather than WARN_ON() in device_pm_add()\n  debug: Introduce a dev_WARN() function\n  sysfs: fix deadlock\n  device model: Do a quickcheck for driver binding before doing an expensive check\n  Driver core: Fix cleanup in device_create_vargs().\n  Driver core: Clarify device cleanup.\n  ...\n"
    },
    {
      "commit": "77997aaadd34510ed73153a4cd60161257a9e289",
      "tree": "ad8ab469f7febb690749e2cae6c5a04b0dc016fc",
      "parents": [
        "b0b090e5792fa228b5c825fcc5e1b7b0da7abec9"
      ],
      "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:45 2008 -0700"
      },
      "message": "device create: video: 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": "a65e5d782f9db2a61a914dc01a329e0c2dcf92a1",
      "tree": "2143455a8bbcb49bbcef746e45f06e497f2eadfb",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Wed Jul 09 10:28:38 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Oct 17 02:38:35 2008 +1100"
      },
      "message": "remove CONFIG_KMOD from drivers\n\nStraight forward conversions to CONFIG_MODULE; many drivers\ninclude \u003clinux/kmod.h\u003e conditionally and then don\u0027t have any\nother conditional code so remove it from those.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: video4linux-list@redhat.com\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: linux-ppp@vger.kernel.org\nCc: dm-devel@redhat.com\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "faa312da9cd0b044bdc84483162c6ee10b9c83c0",
      "tree": "19171bda6c11fa539d48c6a1568ade215c95ce3e",
      "parents": [
        "6ae19b04ab41a4db0f0c48ec0b78950f6b028823"
      ],
      "author": {
        "name": "Eric Miao",
        "email": "eric.miao@marvell.com",
        "time": "Fri Aug 29 04:18:43 2008 +0800"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Sep 23 22:01:33 2008 +0100"
      },
      "message": "lcd: allow lcd device to handle mode change events\n\nSome LCD panels are capable of different resolutions, and is allowed\nto change at run-time, so to make \"struct lcd_device\" to be able to\nhandle mode change events here.\n\nSigned-off-by: Eric Miao \u003ceric.miao@marvell.com\u003e\nAcked-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "d847471d063663b9f36927d265c66a270c0cfaab",
      "tree": "c58124be633945a548a1a16c1191ccfeb9ef3ea5",
      "parents": [
        "b42f931737bea8ca3982449d63ec46410d13e891"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ijc@hellion.org.uk",
        "time": "Wed Aug 20 14:09:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 20 15:40:32 2008 -0700"
      },
      "message": "fbdefio: add set_page_dirty handler to deferred IO FB\n\nFixes kernel BUG at lib/radix-tree.c:473.\n\nPreviously the handler was incidentally provided by tmpfs but this was\nremoved with:\n\n  commit 14fcc23fdc78e9d32372553ccf21758a9bd56fa1\n  Author: Hugh Dickins \u003chugh@veritas.com\u003e\n  Date:   Mon Jul 28 15:46:19 2008 -0700\n\n    tmpfs: fix kernel BUG in shmem_delete_inode\n\nrelying on this behaviour was incorrect in any case and the BUG also\nappeared when the device node was on an ext3 filesystem.\n\nv2: override a_ops at open() time rather than mmap() time to minimise\nraces per AKPM\u0027s concerns.\n\nSigned-off-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nCc: Jaya Kumar \u003cjayakumar.lkml@gmail.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Kel Modderman \u003ckel@otaku42.de\u003e\nCc: Markus Armbruster \u003carmbru@redhat.com\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \u003cstable@kernel.org\u003e [14fcc23fd is in 2.6.25.14 and 2.6.26.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37e67b75804b84e092ae9f1d7a19dc3522ef78ab",
      "tree": "1e5c5770f7685422fa0b924280d83826b5f9c28e",
      "parents": [
        "4b1fefaca9f5fdd43b24aa248777a75a81dfa8d6"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Sat Jul 26 19:37:57 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:22:56 2008 -0700"
      },
      "message": "drivers/video/fbmem.c: removed duplicated include\n\nRemoved duplicated include \u003clinux/major.h\u003e\nin drivers/video/fbmem.c\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bb49fcd501aa9fd3d321a22b7c01d9b0db7ab36",
      "tree": "056028eae394c961fd45aade9a22f406d0b747bb",
      "parents": [
        "cba603bf514c101bf48f6adf393c3d00ed457a57"
      ],
      "author": {
        "name": "Philippe De Muyter",
        "email": "phdm@macqel.be",
        "time": "Wed Jul 23 21:31:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:41 2008 -0700"
      },
      "message": "video/fb: cleanup FB_MAJOR usage\n\nCurrently, linux/major.h defines a GRAPHDEV_MAJOR (29) that nobody uses,\nand linux/fb.h defines the real FB_MAJOR (also 29), that only fbmem.c\nneeds.  Drop GRAPHDEV_MAJOR from major.h, move FB_MAJOR definition from\nfb.h to major.h, and fix fbmem.c to use major.h\u0027s definition.\n\nSigned-off-by: Philippe De Muyter \u003cphdm@macqel.be\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7572a1ea034a8fc45e57de28cc7573264975532a",
      "tree": "4d2850fd511ca4aa93dc8c0994f8460c6e35eadb",
      "parents": [
        "43a3abc6aca8505e708508e2c7c2f99a7f8f820b"
      ],
      "author": {
        "name": "Ville Syrjala",
        "email": "syrjala@sci.fi",
        "time": "Wed Jul 23 21:31:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:39 2008 -0700"
      },
      "message": "fbdev: xoffset, yoffset and yres are unsigned\n\nThe xoffset, yoffset and yres members of fb_var_screeninfo are __u32.\nMake them unsigned in the code as well.\n\nSigned-off-by: Ville Syrjala \u003csyrjala@sci.fi\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e2744011ff3cd195aba9f7a15dd71b332812a5c",
      "tree": "7a2abfa8cd97eca7ff5236db71db978431c5da7e",
      "parents": [
        "e282959ef3ebae0d72ac0b24242c376fa34da585"
      ],
      "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: framebuffer: 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\nCc: Antonino Daplas \u003cadaplas@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fc7f687a6878e19f7ce58cb8a65659cd2730b586",
      "tree": "7cf4b6761654bf0e8e85fb813968be332fab3099",
      "parents": [
        "5794e1b14bcd9817c5fa27d3254996f0d9551296"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Thu May 15 16:30:36 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 14:05:50 2008 -0600"
      },
      "message": "fbmem: cdev lock_kernel() pushdown\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "0aa163418edfb96ca3b39133979d8e4352aaac3c",
      "tree": "d3f423e53b63e4bcdcb02e7bdbce1142688aeff3",
      "parents": [
        "60c1645dfac320e992bb5635887b7698ae6606bc"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Apr 28 02:15:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:41 2008 -0700"
      },
      "message": "fb: convert /proc/fb to seq_file interface\n\nNote: looks like accesses to \"registered_fb\" are done without any exclusion\nso there\u0027re none in new proc code, too. This should be fixed in separate\npatch.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57a7a6db0eed2862072497116232f57a6843cadd",
      "tree": "7335cd906fce91b3e87cbdcfad42a96ca11847ca",
      "parents": [
        "b6f448e99ce7955b9707ed36a46cab2c6ddf7ddc"
      ],
      "author": {
        "name": "Peter Samuelson",
        "email": "peter@p12n.org",
        "time": "Mon Apr 28 02:15:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:36 2008 -0700"
      },
      "message": "fbmem: fix con2fbmap limit check\n\nFix limit check in FBIOPUT_CON2FBMAP ioctl.\n\nSigned-off-by: Peter Samuelson \u003cpeter@p12n.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4c690e061b909127ab0f12e929f82f3f39ec953",
      "tree": "b798bbda541f615cd4830cad96ed3f58db1fd19c",
      "parents": [
        "6b745b6fd02213f4b2fef2f2635985929fc5b8cc"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Mon Apr 28 02:14:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:35 2008 -0700"
      },
      "message": "fb: add support for foreign endianness\n\nAdd support for the framebuffers with non-native endianness.  This is done via\nFBINFO_FOREIGN_ENDIAN flag that will be used by the drivers.  Depending on the\nhost endianness this flag will be overwritten by FBINFO_BE_MATH internal flag,\nor cleared.\n\nTested to work on MPC8360E-RDK (BE) + Fujitsu MINT framebuffer (LE).\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \u003cValdis.Kletnieks@vt.edu\u003e\nCc: Clemens Koller \u003cclemens.koller@anagramm.de\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c43f89c2084f46e3ec59ddcbc52ecf4b1e9b015a",
      "tree": "ede9e0f4c2c76b00898e98a6eb9dfd79d22f190f",
      "parents": [
        "3c4ded9715c05724939c9a4bd72555c2ade71d97"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Apr 15 14:34:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 15 19:35:40 2008 -0700"
      },
      "message": "fbdev: fix /proc/fb oops after module removal\n\n/proc/fb is not removed during rmmod.\n\nSteps to reproduce:\n\n\tmodprobe fb\n\trmmod fb\n\tls /proc\n\nBUG: unable to handle kernel paging request at ffffffffa0094370\nIP: [\u003cffffffff802b92a1\u003e] proc_get_inode+0x101/0x130\nPGD 203067 PUD 207063 PMD 17e758067 PTE 0\nOops: 0000 [1] SMP\nlast sysfs file: /sys/devices/pci0000:00/0000:00:1e.0/0000:05:02.0/resource\nCPU 1\nModules linked in: nf_conntrack_irc xt_state iptable_filter ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack ip_tables x_tables vfat fat usbhid ehci_hcd uhci_hcd usbcore sr_mod cdrom [last unloaded: fb]\nPid: 21205, comm: ls Not tainted 2.6.25-rc8-mm2 #14\nRIP: 0010:[\u003cffffffff802b92a1\u003e]  [\u003cffffffff802b92a1\u003e] proc_get_inode+0x101/0x130\nRSP: 0018:ffff81017c4bfc78  EFLAGS: 00010246\nRAX: 0000000000008000 RBX: ffff8101787f5470 RCX: 0000000048011ccc\nRDX: ffffffffa0094320 RSI: ffff810006ad43b0 RDI: ffff81017fc2cc00\nRBP: ffff81017e450300 R08: 0000000000000002 R09: ffff81017c5d1000\nR10: 0000000000000000 R11: 0000000000000246 R12: ffff81016b903a28\nR13: ffff81017f822020 R14: ffff81017c4bfd58 R15: ffff81017f822020\nFS:  00007f08e71696f0(0000) GS:ffff81017fc06480(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: ffffffffa0094370 CR3: 000000017e54a000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess ls (pid: 21205, threadinfo ffff81017c4be000, task ffff81017de48770)\nStack:  ffff81017c5d1000 00000000ffffffea ffff81017e450300 ffffffff802bdd1e\n ffff81017f802258 ffff81017c4bfe48 ffff81016b903a28 ffff81017f822020\n ffff81017c4bfd48 ffffffff802b9ba0 ffff81016b903a28 ffff81017f802258\nCall Trace:\n [\u003cffffffff802bdd1e\u003e] ? proc_lookup_de+0x8e/0x100\n [\u003cffffffff802b9ba0\u003e] ? proc_root_lookup+0x20/0x60\n [\u003cffffffff802882a7\u003e] ? do_lookup+0x1b7/0x210\n [\u003cffffffff8028883d\u003e] ? __link_path_walk+0x53d/0x7f0\n [\u003cffffffff80295eb8\u003e] ? mntput_no_expire+0x28/0x130\n [\u003cffffffff80288b4a\u003e] ? path_walk+0x5a/0xc0\n [\u003cffffffff80288dd3\u003e] ? do_path_lookup+0x83/0x1c0\n [\u003cffffffff80287785\u003e] ? getname+0xe5/0x210\n [\u003cffffffff80289adb\u003e] ? __user_walk_fd+0x4b/0x80\n [\u003cffffffff8028236c\u003e] ? vfs_lstat_fd+0x2c/0x70\n [\u003cffffffff8028bf1e\u003e] ? filldir+0xae/0xf0\n [\u003cffffffff802b92e9\u003e] ? de_put+0x9/0x50\n [\u003cffffffff8029633d\u003e] ? mnt_want_write+0x2d/0x80\n [\u003cffffffff8029339f\u003e] ? touch_atime+0x1f/0x170\n [\u003cffffffff802b9b1d\u003e] ? proc_root_readdir+0x7d/0xa0\n [\u003cffffffff802825e7\u003e] ? sys_newlstat+0x27/0x50\n [\u003cffffffff8028bffb\u003e] ? vfs_readdir+0x9b/0xd0\n [\u003cffffffff8028c0fe\u003e] ? sys_getdents+0xce/0xe0\n [\u003cffffffff8020b39b\u003e] ? system_call_after_swapgs+0x7b/0x80\n\nCode: b7 83 b2 00 00 00 25 00 f0 00 00 3d 00 80 00 00 74 19 48 89 93 f0 00 00 00 48 89 df e8 39 9a fd ff 48 89 d8 48 83 c4 08 5b 5d c3 \u003c48\u003e 83 7a 50 00 48 c7 c0 60 16 45 80 48 c7 c2 40 17 45 80 48 0f\nRIP  [\u003cffffffff802b92a1\u003e] proc_get_inode+0x101/0x130\n RSP \u003cffff81017c4bfc78\u003e\nCR2: ffffffffa0094370\n---[ end trace c71hiarjan8ab739 ]---\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n\"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a054fbac8f8441f48896b855a9e11c13e0c3dc8",
      "tree": "8c2dca0b0baf4c576e28cc9324e509c59c0b59b1",
      "parents": [
        "61e0b28e5435ac3010746bcf24fe8a16425d0343"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue Oct 16 01:29:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:22 2007 -0700"
      },
      "message": "fb: move and rename extern declaration for global_mode_option\n\nMove the extern declaration for global_mode_option to \u003clinux/fb.h\u003e and rename\nthe variable to fb_mode_option.\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae4939bef3989e52d2fdaad1c2b013241d457897",
      "tree": "b293d1de0dc87aaa5b232daf8bc7c154fdd53f20",
      "parents": [
        "f75a71f51bd607213817a0ee0d1c7ff6214dbf9c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 16 01:28:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:15 2007 -0700"
      },
      "message": "unexport fb_prepare_logo\n\nThe logo code is not and should not be used by modules.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1692b37c99d5087cf2f814466a907a3dd35a1453",
      "tree": "6d1627b83b031c814698fb974916c5020eea2183",
      "parents": [
        "c81f717cb9e0bd91dc4b98753cb2705ab0fe2801"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue Jul 31 00:37:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:37 2007 -0700"
      },
      "message": "fbdev: Fix logo if logo depth is less than framebuffer depth\n\nThe VGA16 logo (bpp \u003d 4) and monochrome logo (bpp \u003d 1) do not contain any\ncolor information (no CLUT).  If the fb depth is \u003e logo depth, these logo\u0027s\nwill not properly display. Fix by using the console palette instead of\ncreating a new one.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@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": "9900abfb5e8192f0eafcd9b9dd5d54011e46c76c",
      "tree": "d12ac087db68aedb0a26848a51292389eefea35c",
      "parents": [
        "90da63e54604fd515c17014a0a7f332a018a0a11"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue Jul 17 04:05:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:13 2007 -0700"
      },
      "message": "fbdev: Add fb_append_extra_logo()\n\nAdd fb_append_extra_logo(), to append extra lines of logos below the standard\nLinux logo.\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Geoff Levand \u003cgeoffrey.levand@am.sony.com\u003e\nAcked-By: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90da63e54604fd515c17014a0a7f332a018a0a11",
      "tree": "709386f14950b53b89ebb3d37e97d302efb0ad10",
      "parents": [
        "b6e8f00fcd56b426371334d722d1f3fb251b7290"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue Jul 17 04:05:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:13 2007 -0700"
      },
      "message": "fbdev: extract fb_show_logo_line()\n\nThe Cell Broadband Engine contains a 64-bit PowerPC core with 2 hardware\nthreads (called PPEs) and 8 Synergistic Processing Engines (called SPEs).\nWhen booting Linux, 2 penguins logos are shown on the graphical console by\nthe standard frame buffer console logo code.\n\nTo emphasize the existence of the SPEs (which can be used under Linux), we\nadded a second row of (smaller) helper penguin logos, one for each SPE.\n\nA sample screenshot can be found at\nhttp://www.kernel.org/pub/linux/kernel/people/geoff/cell/debian-penguin-shot.png\n(or on the ps3linux T-shirts we wore at OLS :-)\n\nThis patch:\n\nExtract the code to draw one line of logos into fb_show_logo_line()\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Geoff Levand \u003cgeoffrey.levand@am.sony.com\u003e\nAcked-By: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfafca8067c6defbaeb28cb898b7b3f8abdfe20d",
      "tree": "93c5bae1e14a4d9bec3e9396c5dd9ef0fecfaf1d",
      "parents": [
        "afd1db1632c3f8f95cbc2786bfa122cead79db58"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jesse.barnes@intel.com",
        "time": "Tue Jul 17 04:05:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:11 2007 -0700"
      },
      "message": "fbdev: fbcon: console unregistration from unregister_framebuffer\n\nThis allows for proper console unregistration via the VT layer, and updates\nthe FB layer to use it.  This makes debugging new console drivers much easier,\nsince you can properly clean them up before unloading.\n\n[adaplas]\nunregister_framebuffer() is typically called as part of the driver\u0027s\nmodule_exit(). Doing so otherwise will freeze the machine as the VT layer is\nholding reference counts on fbcon, and fbcon on the driver.  With this change,\nit allows unregister_framebuffer() to be called safely anywhere as needed.\n\nAdditions from the original:  If multiple drivers are used by fbcon, and if\none of them unregisters, a driver will take over the consoles vacated by the\noutgoing one (via set_con2fb_map).   Once only the outgoing driver remains,\nthen fbcon will unbind from the VT layer (if CONFIG_HW_CONSOLE_UNBINDING is\nset to y).\n\nIt is important that these drivers implement fb_open() and fb_release()\njust to ensure that no other process is using the driver. Likewise, these\ndrivers _must_ check the return value of unregister_framebuffer().\n\n[akpm@linux-foundation.org: make fbcon_unbind() stub inline]\nSigned-off-by: Jesse Barnes \u003cjesse.barnes@intel.com\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10eb2659cc6059d0c4de2e2c66d1534091519f56",
      "tree": "804a53c7a3fd6fb4ef72454a0d962c3883bbb828",
      "parents": [
        "0c6c1ce079082ddde9ba5636c352c235cd395aa1"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue Jul 17 04:05:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:11 2007 -0700"
      },
      "message": "fbdev: move arch-specific bits to their respective subdirectories\n\nMove arch-specific bits of fb_mmap() to their respective subdirectories\n\n[bob.picco@hp.com: efi_range_is_wc is referenced but not declared]\n[bunk@stusta.de: fix include/asm-m68k/fb.h]\nSigned-off-by: Antonino Daplas \u003cadaplas@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "880169dd2edc4297b7811a0542be9766ca6945bc",
      "tree": "38f9ecb7507c37982291fa9f131682daf91c3c27",
      "parents": [
        "5a87ede94595f58934000e26e8b13398e63868b5"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "hskinnemoen@atmel.com",
        "time": "Wed May 09 02:35:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:57 2007 -0700"
      },
      "message": "fbdev: add support for AVR32\n\nProvide framebuffer page protection flags and definitions of\nfb_readl/fb_writel for AVR32.\n\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1e7223f28b4ed5073d2029a3597bf514ff514f2",
      "tree": "d3b41f37e9aa57e4dc400333e9ee3f25afd9018c",
      "parents": [
        "0959f0ca29244ae983b406fba313816a29244be7"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue May 08 00:39:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:33 2007 -0700"
      },
      "message": "fbdev: clean up exit patch of fb_set_var\n\nClean up exit patch of fb_set_var():\n\n- consolidate all return values into a single local variable\n- ensure that return values are valid error codes\n- fix fb_set_var() returning success when fb_check_caps() failed\n\nSigned-off-by: Antonino Daplas \u003cadaplas@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": "38a3dc51852d8350b156ea909c5aa8767d71b005",
      "tree": "933e9a4b7b0a0d871aaccd7d44e9224ea6c4a0b5",
      "parents": [
        "e15de77e74d429f14641ebe7a29ccd8aa6656f3c"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue May 08 00:39:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:32 2007 -0700"
      },
      "message": "fbdev: fbcon: check if mode can handle new screen\n\nCheck if the mode can properly display the screen.  This will be needed by\ndrivers where the capability is not constant with each mode.  The function\nfb_set_var() will query fbcon the requirement, then it will query the driver\n(via a new hook fb_get_caps()) its capability.  If the driver\u0027s capability\ncannot handle fbcon\u0027s requirement, then fb_set_var() will fail.\n\nFor example, if a particular driver supports 2 modes where:\n\nmode1 \u003d can only display 8x16 bitmaps\nmode2 \u003d can display any bitmap\n\nthen if current mode \u003d mode2 and current font \u003d 12x22\n\nfbset \u003cmode1\u003e /* mode1 cannot handle 12x22 */\nfbset will fail\n\nSigned-off-by: Antonino Daplas \u003cadaplas@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": "4941cb7a18fd84d4d8cd097d2beada3c79c8f781",
      "tree": "0f7419539b1d056da12b1124e0a33992a3a00432",
      "parents": [
        "38b4982c6388ae9596f959e3d7fef91affbd181d"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue May 08 00:39:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:31 2007 -0700"
      },
      "message": "fbdev: save the activate field before calling fb_check_var()\n\nSome drivers may reset the var-\u003eactivate field on fb_check_var(). This can\nlead to undefined behavior. For example, doing fbset -a \u003coption\u003e with vga16fb\nwill only modify the active console instead of modifying all.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@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": "bf26ad72a60c0009a99179b449a43daa6bf4b4f6",
      "tree": "55ba5c443aa0e0aa97e692f4be29c582356fd056",
      "parents": [
        "dc0e6e0544f1cb2af44e5d7a7e68acda05dec6fa"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue May 08 00:39:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:30 2007 -0700"
      },
      "message": "fbdev: advertise limitation of drawing engine\n\nA few drivers are not capable of blitting rectangles of any dimension.\nvga16fb can only blit 8-pixel wide rectangles, while s3fb (in tileblitting\nmode) can only blit 8x16 rectangles.  For example, loading a 12x22 font in\nvga16fb will result in a corrupt display.\n\nAdvertise this limitation/capability in info-\u003epixmap.blit_x and blit_y.  These\nfields are 32-bit arrays (font max is 32x32 only), ie, if bit 7 is set, then\nwidth/height of 7+1 is supported.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@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": "3f9b0880e4a96b02bc0131451f2f6231cd90bd94",
      "tree": "a47339c46ab03918b24d501df54884c277326a74",
      "parents": [
        "87b4884935d387acc4c4418da6a75387bfcc24b9"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue May 08 00:39:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:30 2007 -0700"
      },
      "message": "fbdev: pass struct fb_info to fb_read and fb_write\n\nIt is unnecessary to pass struct file to fb_read() and fb_write() in struct\nfb_ops. For consistency with the other methods, pass struct fb_info instead.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70802c60379fb843c485dfd4cab9e8f527d8fe81",
      "tree": "cb7482bc24e878dd31fbf2a0e8da962c0e80e552",
      "parents": [
        "6314db4110ad79cc666faff2209ed2691259afd9"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue May 08 00:38:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:28 2007 -0700"
      },
      "message": "fbdev: don\u0027t show logo if driver or fbcon are modular\n\nIt was always intended for the logo to be drawn only if both fbcon and the\ndriver that is mapped to it are both compiled statically.  Currently, if fbcon\nis loaded prior to the driver, the logo is not shown.  Reverse the order, and\nthe code may attempt to draw the logo which is __initdata.  By accident, this\nbug is rarely seen because this method of loading the modules is not common\nand secondly, a code in fb_prepare_logo() that checks the height of the logo\n(now a random value) rarely succeeds.\n\nFix by drawing the logo only if both fbcon and the driver are statically\ncompiled.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@gmail.com\u003e\nCc:  Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "abed5d15af4cf864b502b5b0402c7fb39c5c3371",
      "tree": "03751aa17486c108c15a917e387ff34283e3bd02",
      "parents": [
        "448d479747b85eb2e284c29622d31f5485db6819"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue May 08 00:37:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:27 2007 -0700"
      },
      "message": "fbdev: correct image offsets when rotating logo\n\nCorrect the image offsets when rotating the logo.  Before image-\u003edx and\nimage-\u003edy were always zero, so nobody ever noticed.\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-By: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "448d479747b85eb2e284c29622d31f5485db6819",
      "tree": "d7f51b6016a0b63a0b5800ba894c9e071e66b1a3",
      "parents": [
        "250038f5a7207796fb54aff3dc686d664659cf0c"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Tue May 08 00:37:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:27 2007 -0700"
      },
      "message": "fbdev: fb_do_show_logo() updates\n\nfb_do_show_logo() updates:\n  - Use width and height of the passed image instead of the global variable\n    fb_logo\n  - Explicitly pass the number of logos to draw\n\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nSigned-off-by: Geoff Levand \u003cgeoffrey.levand@am.sony.com\u003e\nAcked-By: James Simmons \u003cjsimmons@infradead.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e841b88d23d0ea0a6ee4e76c489899d4d23ce25",
      "tree": "7268b4bbb85aa7b1c72f54f7f8cd309b34cfecce",
      "parents": [
        "7bf1ea33ad70cf49638092367d52859fbbc44fee"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue May 08 00:37:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:27 2007 -0700"
      },
      "message": "fb: fsync() method for deferred I/O flush.\n\nThere are cases when we do not want to wait on the delay for automatically\nupdating the \"real\" framebuffer, this implements a simple -\u003efsync() hook\nfor explicitly flushing the deferred I/O work.  The -\u003epage_mkwrite()\nhandler will rearm the work queue normally.\n\n(akpm: nuke unneeded ifdefs, forward-delcare struct dentry)\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jaya Kumar \u003cjayakumar.lkml@gmail.com\u003e\nAcked-by: Antonino Daplas \u003cadaplas@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": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0128beeee8749e3cb01c27ef9d1da217f5d7b3b8",
      "tree": "ce206dd5f8d32258a5e9ffdb3f1197e210cca7f0",
      "parents": [
        "d95159cf1b12e8e4b169094b35cbd93b887cb939"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Fri Dec 08 02:40:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:06 2006 -0800"
      },
      "message": "[PATCH] constify and annotate __read_mostly in vgacon.c and fbmem.c\n\n- annotate some variables from vgacon.c and fbmem.c as __read_mostly\n- move the mask[] array in fb_set_logo_truepalette() into the .rodata section\n\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad9a824e004067a3d888567a991603f1ac36efb2",
      "tree": "2258ccc3ded8a8e0723bea92cfdcda5ed84beeb4",
      "parents": [
        "723731b2eef6599cf09af1fbfe0b12857b439e2d"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:50 2006 -0800"
      },
      "message": "[PATCH] struct path: convert video\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78cde0887930f5d11a56fc51b013f2672fba0e6f",
      "tree": "c91d1295dc7385a62f32414f50303e0608d6d1db",
      "parents": [
        "e55c8790d40fdbc6887b4e3e52afefe4b03f1311"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Sep 14 07:30:59 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Dec 01 14:52:00 2006 -0800"
      },
      "message": "Driver core: convert fb code to use struct device\n\nConverts from using struct \"class_device\" to \"struct device\" making\neverything show up properly in /sys/devices/ with symlinks from the\n/sys/class directory.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a09fd48f8fb6ecb8bf85efdd884b21b6201ef9cc",
      "tree": "5e72898b6c72ad5a351a6b83c3b92ed39e4e2430",
      "parents": [
        "f5b747b487038ce2a23e7b922bc4d27149838965"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Tue Oct 03 01:15:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 03 08:04:13 2006 -0700"
      },
      "message": "[PATCH] fbdev: correct buffer size limit in fbmem_read_proc()\n\nAddress http://bugzilla.kernel.org/show_bug.cgi?id\u003d7189\n\nIt should check `clen\u0027, not `len\u0027.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \u003cjurij@wooyd.org\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "256154fbc31c25a8df4d398232acfa9d4892224c",
      "tree": "278582add1a28766a1f3f4dba2f250cdbb191e0a",
      "parents": [
        "834a9b8ca7a01c34570be021f88e18884a29f048"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Sun Jul 30 03:04:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:44 2006 -0700"
      },
      "message": "[PATCH] fbdev: statically link the framebuffer notification functions\n\nThe backlight and lcd subsystems can be notified by the framebuffer layer\nof blanking events.  However, these subsystems, as a whole, can function\nindependently from the framebuffer layer.  But in order to enable to the\nlcd and backlight subsystems, the framebuffer has to be compiled also,\neffectively sucking in a huge amount of unneeded code.\n\nTo prevent dependency problems, separate out the framebuffer notification\nmechanism from the framebuffer layer and permanently link it to the kernel.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8f340e394ff30b79ab5b03c67ab4c94b2ac3646",
      "tree": "54bb79dba4f3943e893bacd1efe7b265d7f86aaa",
      "parents": [
        "67eb5db5874076db01febed5a1a9281628fa9fb4"
      ],
      "author": {
        "name": "Jon Smirl",
        "email": "jonsmir@gmail.com",
        "time": "Mon Jul 10 04:44:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:16 2006 -0700"
      },
      "message": "[PATCH] vt: Remove VT-specific declarations and definitions from tty.h\n\nMAX_NR_CONSOLES, fg_console, want_console and last_console are more of a\nfunction of the VT layer than the TTY one.  Moving these to vt.h and vt_kern.h\nallows all of the framebuffer and VT console drivers to remove their\ndependency on tty.h.\n\n[akpm@osdl.org: fix alpha build]\nSigned-off-by: Jon Smirl \u003cjonsmir@gmail.com\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "ff23eca3e8f613034e0d20ff86f6a89b62f5a14e",
      "tree": "826285f5daa660001d38cac6baaf34411fd40131",
      "parents": [
        "8ab5e4c15b53e147c08031a959d9f776823dbe73"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:08 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree\n\nAlso fixes up all files that #include it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8ab5e4c15b53e147c08031a959d9f776823dbe73",
      "tree": "b851d4c1fdbd396379279e4475f7f778a667a208",
      "parents": [
        "7c69ef79741910883d5543caafa06aca3ebadbd1"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:07 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove devfs_remove() function from the kernel tree\n\nRemoves the devfs_remove() function and all callers of it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "7c69ef79741910883d5543caafa06aca3ebadbd1",
      "tree": "655d3f60abee0195d0aadb2c86ab04ccca89a307",
      "parents": [
        "1a715c5cf917326a285533d1116d725f5f2593c2"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:07 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree\n\nRemoves the devfs_mk_cdev() function and all callers of it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "95dc112a5770dc670a1b45a3d9ee346fdd2b2697",
      "tree": "899cd99bdc928ade94ddc7b003b0de7d275cac48",
      "parents": [
        "0e6c62da7cd929b0389fc4a7e41464bb738647dc"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 20 21:15:16 2005 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 26 12:25:06 2006 -0700"
      },
      "message": "[PATCH] devfs: Remove devfs_mk_dir() function from the kernel tree\n\nRemoves the devfs_mk_dir() function and all callers of it.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e614b18dcedb247ce6f848e623cdf2336df2b476",
      "tree": "a867f1fa177eb2ed6c577e45d297374744adca3b",
      "parents": [
        "3e795de7631b2366d7301182c8d91f6d2911467b"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Jun 26 00:27:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:33 2006 -0700"
      },
      "message": "[PATCH] VT binding: Update fbcon to support binding\n\nThe control for binding/unbinding is moved from fbcon to the console layer.\nThus the fbcon sysfs attributes, attach and detach, are also gone.\n\n    1. Add a notifier event that tells fbcon if a framebuffer driver has been\n       unregistered.  If no registered driver remains, fbcon will unregister\n       itself from the console layer.\n\n    2. Replaced calls to give_up_console() with unregister_con_driver().\n\n    3. Still use take_over_console() instead of register_con_driver() to\n       maintain compatibility\n\n    4. Respect the parameter first_fb_vc and last_fb_vc instead of using 0 and\n       MAX_NR_CONSOLES - 1. These parameters are settable by the user.\n\n    5. When fbcon is completely unbound from the console layer, fbcon will\n       also release (iow, decrement module reference counts to zero) all fbdev\n       drivers. In other words, a bind or unbind request from the console layer\n       will propagate down to the framebuffer drivers.\n\n    6. If fbcon is not bound to the console, it will ignore all notifier\n       events (except driver registration and unregistration) and all sysfs\n       requests.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a17917671d407d37bf23a527aa55acca3cb4735",
      "tree": "1e78f6f82d913ee58c174776529589afe1d3b2a9",
      "parents": [
        "a06630f3e7fb29f2524e1d7b009eb8b5a278ba23"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Jun 26 00:27:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:32 2006 -0700"
      },
      "message": "[PATCH] Detaching fbcon: sdd sysfs class device entry for fbcon\n\nIn order for this feature to work, an interface will be needed.  The most\nappropriate is sysfs.  However, the framebuffer console has no sysfs entry\nyet.  This will create a sysfs class device entry for fbcon under\n/sys/class/graphics.\n\nAdd a class_device entry \u0027fbcon\u0027 under class \u0027graphics\u0027.  Console-specific\nattributes which where previously under class/graphics/fb[x] are moved to\nclass/graphics/fbcon.  These attributes, \u0027con_rotate\u0027 and \u0027con_rotate_all\u0027,\nare also renamed to \u0027rotate\u0027 and \u0027rotate_all\u0027 respectively.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f837e6f73fe3f04594dad9829df6c7baa5b64a85",
      "tree": "ef08bf98f116c50189a5659137e7f6b6b1795b60",
      "parents": [
        "4efefd1d8ea4eaf71bacc4f71fa017c202fa67ec"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Jun 26 00:26:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:31 2006 -0700"
      },
      "message": "[PATCH] fbdev: Fix logo rotation if width !\u003d height\n\nLogo drawing crashes or produces a corrupt display if the logo width and\nheight are not equal.  The dimensions are transposed prior to the actual\nrotation and the width is used instead of the height in the actual rotation\ncode.  These produce a corrupt image.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c72755b3bdcf551dcfb1d061c8f09fc243e28f49",
      "tree": "05418c8c33a024c0a1b1aef14247316a66dbedce",
      "parents": [
        "17cc6281c12b26425209c58e3d8825a9568db3cc"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 00:26:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:31 2006 -0700"
      },
      "message": "[PATCH] fbdev: Remove unused exports\n\nThis patch removes the following unused EXPORT_SYMBOL\u0027s:\n- fbcvt.c: fb_find_mode_cvt\n- fbmem.c: fb_con_duit\n- fbmem.c: fb_new_modelist\n- macmodes.c: mac_var_to_vmode\n- modedb.c: fb_delete_videomode\n- modedb.c: fb_destroy_modelist\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0c683dbfc017e52e632853b33981be1a49276ba6",
      "tree": "feb766bb827598e2fc5cf0635a1e58308945431a",
      "parents": [
        "ae6d3218760f3cc28192de1f7ff594be744495b4"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Jun 26 00:26:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:29 2006 -0700"
      },
      "message": "[PATCH] fbdev: Static pseudocolor with depth less than 4 does exist\n\nA static pseudocolor visual with depth less than 4 does exist, so let\u0027s not\naccidentally upscale the depth with this configuration\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22f4a00fd5207a107fb81984f7b4cc09e5047b45",
      "tree": "d051e758c7a2e509605ee0d699b973f3067ed031",
      "parents": [
        "31c5cdba69c3c6e9bb1aaf15870f5c23402267e0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 00:26:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:28 2006 -0700"
      },
      "message": "[PATCH] fbdev: Remove duplicate #include\u0027s\n\nRemove unneeded duplicate #include\u0027s of the same header file.\n\nIn the case of fbmon.c linux/pci.h is now #include\u0027d unconditional, but\nthis should be safe.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a2a88668e90cd2459d0493e3e3ff17c3557febc",
      "tree": "f2a2b2426312541731082b8c6915e80727337a27",
      "parents": [
        "a61bdaad6c696e850d8fa412f1f201cbca51ad30"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Tue Apr 18 22:22:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:54 2006 -0700"
      },
      "message": "[PATCH] fbdev: Fix return error of fb_write\n\nFix return code of fb_write():\n\nIf at least 1 byte was transferred to the device, return number of bytes,\notherwise:\n\n    - return -EFBIG - if file offset is past the maximum allowable offset or\n      size is greater than framebuffer length\n    - return -ENOSPC - if size is greater than framebuffer length - offset\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "397eeab321e87d8c1ef928b58f256513e6f481dc",
      "tree": "01bdc74a00ef159b2be1eafd7c8b4010555d7a87",
      "parents": [
        "89ec4c238e7a3d7e660291f3f1a8181381baad77"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Apr 10 22:55:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:54 2006 -0700"
      },
      "message": "[PATCH] fbdev: Use logo with depth of 4 or less for static pseudocolor\n\nSince the visual STATIC_PSEUDOCOLOR has a read-only colormap, use logos\nwith 16 colors only since these logos use the console palette.  This has a\nhigher likelihood that the logo will display correctly.\n\nSigned-of-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b41046cd0ee0a57f849d6e1363f7933e363cca9",
      "tree": "246820e9493770e071cb92a48e7f72d8b9c90a98",
      "parents": [
        "68eef3b4791572ecb70249c7fb145bb3742dd899"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Mar 31 02:30:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:53 2006 -0800"
      },
      "message": "[PATCH] Don\u0027t pass boot parameters to argv_init[]\n\nThe boot cmdline is parsed in parse_early_param() and\nparse_args(,unknown_bootoption).\n\nAnd __setup() is used in obsolete_checksetup().\n\n\tstart_kernel()\n\t\t-\u003e parse_args()\n\t\t\t-\u003e unknown_bootoption()\n\t\t\t\t-\u003e obsolete_checksetup()\n\nIf __setup()\u0027s callback (-\u003esetup_func()) returns 1 in\nobsolete_checksetup(), obsolete_checksetup() thinks a parameter was\nhandled.\n\nIf -\u003esetup_func() returns 0, obsolete_checksetup() tries other\n-\u003esetup_func().  If all -\u003esetup_func() that matched a parameter returns 0,\na parameter is seted to argv_init[].\n\nThen, when runing /sbin/init or init\u003dapp, argv_init[] is passed to the app.\nIf the app doesn\u0027t ignore those arguments, it will warning and exit.\n\nThis patch fixes a wrong usage of it, however fixes obvious one only.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e041c683412d5bf44dc2b109053e3b837b71742d",
      "tree": "9d271066ef379da0c0fb3b8cb4137abd5d2ebba0",
      "parents": [
        "76b81e2b0e2241accebcc68e126bc5ab958661b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 27 01:16:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] Notifier chain update: API changes\n\nThe kernel\u0027s implementation of notifier chains is unsafe.  There is no\nprotection against entries being added to or removed from a chain while the\nchain is in use.  The issues were discussed in this thread:\n\n    http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113018709002036\u0026w\u003d2\n\nWe noticed that notifier chains in the kernel fall into two basic usage\nclasses:\n\n\t\"Blocking\" chains are always called from a process context\n\tand the callout routines are allowed to sleep;\n\n\t\"Atomic\" chains can be called from an atomic context and\n\tthe callout routines are not allowed to sleep.\n\nWe decided to codify this distinction and make it part of the API.  Therefore\nthis set of patches introduces three new, parallel APIs: one for blocking\nnotifiers, one for atomic notifiers, and one for \"raw\" notifiers (which is\nreally just the old API under a new name).  New kinds of data structures are\nused for the heads of the chains, and new routines are defined for\nregistration, unregistration, and calling a chain.  The three APIs are\nexplained in include/linux/notifier.h and their implementation is in\nkernel/sys.c.\n\nWith atomic and blocking chains, the implementation guarantees that the chain\nlinks will not be corrupted and that chain callers will not get messed up by\nentries being added or removed.  For raw chains the implementation provides no\nguarantees at all; users of this API must provide their own protections.  (The\nidea was that situations may come up where the assumptions of the atomic and\nblocking APIs are not appropriate, so it should be possible for users to\nhandle these things in their own way.)\n\nThere are some limitations, which should not be too hard to live with.  For\natomic/blocking chains, registration and unregistration must always be done in\na process context since the chain is protected by a mutex/rwsem.  Also, a\ncallout routine for a non-raw chain must not try to register or unregister\nentries on its own chain.  (This did happen in a couple of places and the code\nhad to be changed to avoid it.)\n\nSince atomic chains may be called from within an NMI handler, they cannot use\nspinlocks for synchronization.  Instead we use RCU.  The overhead falls almost\nentirely in the unregister routine, which is okay since unregistration is much\nless frequent that calling a chain.\n\nHere is the list of chains that we adjusted and their classifications.  None\nof them use the raw API, so for the moment it is only a placeholder.\n\n  ATOMIC CHAINS\n  -------------\narch/i386/kernel/traps.c:\t\ti386die_chain\narch/ia64/kernel/traps.c:\t\tia64die_chain\narch/powerpc/kernel/traps.c:\t\tpowerpc_die_chain\narch/sparc64/kernel/traps.c:\t\tsparc64die_chain\narch/x86_64/kernel/traps.c:\t\tdie_chain\ndrivers/char/ipmi/ipmi_si_intf.c:\txaction_notifier_list\nkernel/panic.c:\t\t\t\tpanic_notifier_list\nkernel/profile.c:\t\t\ttask_free_notifier\nnet/bluetooth/hci_core.c:\t\thci_notifier\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_chain\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_expect_chain\nnet/ipv6/addrconf.c:\t\t\tinet6addr_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_expect_chain\nnet/netlink/af_netlink.c:\t\tnetlink_chain\n\n  BLOCKING CHAINS\n  ---------------\narch/powerpc/platforms/pseries/reconfig.c:\tpSeries_reconfig_chain\narch/s390/kernel/process.c:\t\tidle_chain\narch/x86_64/kernel/process.c\t\tidle_notifier\ndrivers/base/memory.c:\t\t\tmemory_chain\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_policy_notifier_list\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_transition_notifier_list\ndrivers/macintosh/adb.c:\t\tadb_client_list\ndrivers/macintosh/via-pmu.c\t\tsleep_notifier_list\ndrivers/macintosh/via-pmu68k.c\t\tsleep_notifier_list\ndrivers/macintosh/windfarm_core.c\twf_client_list\ndrivers/usb/core/notify.c\t\tusb_notifier_list\ndrivers/video/fbmem.c\t\t\tfb_notifier_list\nkernel/cpu.c\t\t\t\tcpu_chain\nkernel/module.c\t\t\t\tmodule_notify_list\nkernel/profile.c\t\t\tmunmap_notifier\nkernel/profile.c\t\t\ttask_exit_notifier\nkernel/sys.c\t\t\t\treboot_notifier_list\nnet/core/dev.c\t\t\t\tnetdev_chain\nnet/decnet/dn_dev.c:\t\t\tdnaddr_chain\nnet/ipv4/devinet.c:\t\t\tinetaddr_chain\n\nIt\u0027s possible that some of these classifications are wrong.  If they are,\nplease let us know or submit a patch to fix them.  Note that any chain that\ngets called very frequently should be atomic, because the rwsem read-locking\nused for blocking chains is very likely to incur cache misses on SMP systems.\n(However, if the chain\u0027s callout routines may sleep then the chain cannot be\natomic.)\n\nThe patch set was written by Alan Stern and Chandra Seetharaman, incorporating\nmaterial written by Keith Owens and suggestions from Paul McKenney and Andrew\nMorton.\n\n[jes@sgi.com: restructure the notifier chain initialization macros]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "14778d9072e53d2171f66ffd9657daff41acfaed",
      "tree": "3b60565ec1e957800fc3bf4743497202a24f8279",
      "parents": [
        "e952f31bce6e9f64db01f607abc46529ba57ac9e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Mar 21 02:29:39 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Mar 22 01:15:13 2006 -0800"
      },
      "message": "[SPARC]: Respect vm_page_prot in io_remap_page_range().\n\nMake sure the callers do a pgprot_noncached() on\nvma-\u003evm_page_prot.\n\nPointed out by Hugh Dickens.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bc6d7fdf460ec5292d66bb551dbfa49ca682bebf",
      "tree": "e588c90655637a30481fc2926ff6031064cf44fa",
      "parents": [
        "bc7fc0601b3eb2254f080492f3fd69e319ed32d0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 11 17:56:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 11 21:41:13 2006 -0800"
      },
      "message": "[PATCH] fbdev: video_setup() warning fix\n\ndrivers/video/fbmem.c:1567: warning: \u0027video_setup\u0027 defined but not used\n\nAcked-by: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "216d526c89d144928f095f2800bc6c67e968d628",
      "tree": "2363b4c9ab1e4f7acea503427fa6a21e5fa3dbe8",
      "parents": [
        "67a6680d64e18c7a1901f31ef747ea53b6cd986d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jan 14 13:21:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:15 2006 -0800"
      },
      "message": "[PATCH] fbdev: Sanitize -\u003efb_mmap prototype\n\nNo need for a file argument.  If we\u0027d really need it it\u0027s in vma-\u003evm_file\nalready.  gbefb and sgivwfb used to set vma-\u003evm_file to the file argument, but\nthe kernel alrady did that.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67a6680d64e18c7a1901f31ef747ea53b6cd986d",
      "tree": "1d428eb19fdd393290348c63911c2974016ebc9d",
      "parents": [
        "a80da7389891d0eeacbd568a9b54f665fd424d14"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jan 14 13:21:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:14 2006 -0800"
      },
      "message": "[PATCH] fbdev: Sanitize -\u003efb_ioctl prototype\n\nThe ioctl and file arguments to -\u003efb_mmap are totally unused and there\u0027s not\nreason a driver should need them.\n\nAlso update the -\u003efb_compat_ioctl prototype to be the same as -\u003efb_mmap.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cae8a12f49972f040bae6707b7707cd93fe9c9ab",
      "tree": "c898f9bcd31ba14d0f646e191525cb6ef6a09976",
      "parents": [
        "74b4f04231b9755106d803ef73b11c3cf6978bcd"
      ],
      "author": {
        "name": "Thomas Koeller",
        "email": "thomas@koeller.dyndns.org",
        "time": "Mon Jan 09 20:53:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:52 2006 -0800"
      },
      "message": "[PATCH] non-linear frame buffer read/write access\n\nWhile the code in fbmem.c allows for hooking read/write access to\nnon-linear frame buffers by means of fb_read and fb_write in struct fb_ops,\nI could not find a way tho access the actual frame buffer memory from\nwithin these routines.  I therefore had to patch fbmem.c, to be able to\nretrieve a pointer to struct fb_info from the \u0027file\u0027 argument to these\nfunctions.\n\nThe second hunk of the patch is not strictly required, I only did that for\nsymmetry reasons (and the code is somewhat shorter).\n\nSigned-off-by: Thomas Koeller \u003cthomas@koeller.dyndns.org\u003e\nAcked-by: \"Antonino A. Daplas\" \u003cadaplas@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a484a3af905a256cbdd7079defceac62b39e8fa",
      "tree": "a7349d0d7d774abca668ce52a58b845958fa79c8",
      "parents": [
        "244ab72d84a04d40bd270da604161e02af73fb11"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Jan 09 20:53:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:50 2006 -0800"
      },
      "message": "[PATCH] fbdev: Fix return code of fb_read and fb_write\n\nMake fb_read() and fb_write() return 0 (EOF) instead of -ENOSPC if reading at\nor past the end of the framebuffer.  This fixes user space apps hanging if\ninfo-\u003efix.smem_len \u003d\u003d 0.\n\nWhitespace changes.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1207069f6f8f3d1b71641fdaa6cc04fca6fff9f5",
      "tree": "c8be44eb73032dd787c18ff3f71d42083258484e",
      "parents": [
        "4743484718e1d710321f24f8ef7d0124a48291b3"
      ],
      "author": {
        "name": "Antonino A. Daplas",
        "email": "adaplas@gmail.com",
        "time": "Mon Dec 12 22:17:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 22:31:17 2005 -0800"
      },
      "message": "[PATCH] fbdev: Pan display fixes\n\n- Fix fb_pan_display rejecting yoffsets that are valid if panning mode\n  is ywrap.\n\n- Add more robust error checking in fb_pan_display specially since this\n  function is accessible by userland apps.\n\nSigned-off-by: Antonino Daplas \u003cadaplas@pol.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "6d9885a8ce45cd9b7d36517ee823a480eaf95c02"
}
