)]}'
{
  "log": [
    {
      "commit": "38bf1953987c1735f3c9140fca762949a8cae507",
      "tree": "5596d88145226774633d3a2853b6d7caaeffa4f1",
      "parents": [
        "e0268868ba064980488fc8c194db3d8e9fb2959c"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri May 04 11:34:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu May 10 23:21:39 2012 -0400"
      },
      "message": "connector/userns: replace netlink uses of cap_raised() with capable()\n\nIn 2009 Philip Reiser notied that a few users of netlink connector\ninterface needed a capability check and added the idiom\ncap_raised(nsp-\u003eeff_cap, CAP_SYS_ADMIN) to a few of them, on the premise\nthat netlink was asynchronous.\n\nIn 2011 Patrick McHardy noticed we were being silly because netlink is\nsynchronous and removed eff_cap from the netlink_skb_params and changed\nthe idiom to cap_raised(current_cap(), CAP_SYS_ADMIN).\n\nLooking at those spots with a fresh eye we should be calling\ncapable(CAP_SYS_ADMIN).  The only reason I can see for not calling capable\nis that it once appeared we were not in the same task as the caller which\nwould have made calling capable() impossible.\n\nIn the initial user_namespace the only difference between between\ncap_raised(current_cap(), CAP_SYS_ADMIN) and capable(CAP_SYS_ADMIN) are a\nfew sanity checks and the fact that capable(CAP_SYS_ADMIN) sets\nPF_SUPERPRIV if we use the capability.\n\nSince we are going to be using root privilege setting PF_SUPERPRIV seems\nthe right thing to do.\n\nThe motivation for this that patch is that in a child user namespace\ncap_raised(current_cap(),...) tests your capabilities with respect to that\nchild user namespace not capabilities in the initial user namespace and\nthus will allow processes that should be unprivielged to use the kernel\nservices that are only protected with cap_raised(current_cap(),..).\n\nTo fix possible user_namespace issues and to just clean up the code\nreplace cap_raised(current_cap(), CAP_SYS_ADMIN) with\ncapable(CAP_SYS_ADMIN).\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b78f29ca0516266431688c5eb42d39ce42ec039a",
      "tree": "0861bf60fd1dae33c2b9c3302129fadea0d0c604",
      "parents": [
        "93019734555f8df32239c5922fe2b770c0a08eaa"
      ],
      "author": {
        "name": "Wang YanQing",
        "email": "udknight@gmail.com",
        "time": "Sun Apr 01 08:54:02 2012 +0800"
      },
      "committer": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Mon Apr 09 16:05:57 2012 +0000"
      },
      "message": "video:uvesafb: Fix oops that uvesafb try to execute NX-protected page\n\nThis patch fix the oops below that catched in my machine\n\n[   81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev   , OEM: NVIDIA, VBE v3.0\n[   81.609384] uvesafb: protected mode interface info at c000:d350\n[   81.609388] uvesafb: pmi: set display start \u003d c00cd3b3, set palette \u003d c00cd40e\n[   81.609390] uvesafb: pmi: ports \u003d 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da\n[   81.614558] uvesafb: VBIOS/hardware doesn\u0027t support DDC transfers\n[   81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used\n[   81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual\u003d4915\n[   81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0)\n[   81.744153] BUG: unable to handle kernel paging request at c00cd3b3\n[   81.744159] IP: [\u003cc00cd3b3\u003e] 0xc00cd3b2\n[   81.744167] *pdpt \u003d 00000000016d6001 *pde \u003d 0000000001c7b067 *pte \u003d 80000000000cd163\n[   81.744171] Oops: 0011 [#1] SMP\n[   81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect\n[   81.744178]\n[   81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer            Aspire 4741                    /Aspire 4741\n[   81.744185] EIP: 0060:[\u003cc00cd3b3\u003e] EFLAGS: 00010246 CPU: 0\n[   81.744187] EIP is at 0xc00cd3b3\n[   81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000\n[   81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00\n[   81.744192]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n[   81.744195] Process modprobe (pid: 3497, ti\u003df57f2000 task\u003df748c600 task.ti\u003df57f2000)\n[   81.744196] Stack:\n[   81.744197]  f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0\n[   81.744202]  f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000\n[   81.744206]  f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400\n[   81.744210] Call Trace:\n[   81.744215]  [\u003cf82512c5\u003e] ? uvesafb_pan_display+0x45/0x60 [uvesafb]\n[   81.744222]  [\u003cc124a9bc\u003e] fb_pan_display+0x10c/0x160\n[   81.744226]  [\u003cf8251280\u003e] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb]\n[   81.744230]  [\u003cc12598dd\u003e] bit_update_start+0x1d/0x50\n[   81.744232]  [\u003cc1255efe\u003e] fbcon_switch+0x39e/0x550\n[   81.744235]  [\u003cc125a21a\u003e] ? bit_cursor+0x4ea/0x560\n[   81.744240]  [\u003cc129b6cb\u003e] redraw_screen+0x12b/0x220\n[   81.744245]  [\u003cc128843b\u003e] ? tty_do_resize+0x3b/0xc0\n[   81.744247]  [\u003cc129ef42\u003e] vc_do_resize+0x3d2/0x3e0\n[   81.744250]  [\u003cc129efb4\u003e] vc_resize+0x14/0x20\n[   81.744253]  [\u003cc12586bd\u003e] fbcon_init+0x29d/0x500\n[   81.744255]  [\u003cc12984c4\u003e] ? set_inverse_trans_unicode+0xe4/0x110\n[   81.744258]  [\u003cc129b378\u003e] visual_init+0xb8/0x150\n[   81.744261]  [\u003cc129c16c\u003e] bind_con_driver+0x16c/0x360\n[   81.744264]  [\u003cc129b47e\u003e] ? register_con_driver+0x6e/0x190\n[   81.744267]  [\u003cc129c3a1\u003e] take_over_console+0x41/0x50\n[   81.744269]  [\u003cc1257b7a\u003e] fbcon_takeover+0x6a/0xd0\n[   81.744272]  [\u003cc12594b8\u003e] fbcon_event_notify+0x758/0x790\n[   81.744277]  [\u003cc10929e2\u003e] notifier_call_chain+0x42/0xb0\n[   81.744280]  [\u003cc1092d30\u003e] __blocking_notifier_call_chain+0x60/0x90\n[   81.744283]  [\u003cc1092d7a\u003e] blocking_notifier_call_chain+0x1a/0x20\n[   81.744285]  [\u003cc124a5a1\u003e] fb_notifier_call_chain+0x11/0x20\n[   81.744288]  [\u003cc124b759\u003e] register_framebuffer+0x1d9/0x2b0\n[   81.744293]  [\u003cc1061c73\u003e] ? ioremap_wc+0x33/0x40\n[   81.744298]  [\u003cf82537c6\u003e] uvesafb_probe+0xaba/0xc40 [uvesafb]\n[   81.744302]  [\u003cc12bb81f\u003e] platform_drv_probe+0xf/0x20\n[   81.744306]  [\u003cc12ba558\u003e] driver_probe_device+0x68/0x170\n[   81.744309]  [\u003cc12ba731\u003e] __device_attach+0x41/0x50\n[   81.744313]  [\u003cc12b9088\u003e] bus_for_each_drv+0x48/0x70\n[   81.744316]  [\u003cc12ba7f3\u003e] device_attach+0x83/0xa0\n[   81.744319]  [\u003cc12ba6f0\u003e] ? __driver_attach+0x90/0x90\n[   81.744321]  [\u003cc12b991f\u003e] bus_probe_device+0x6f/0x90\n[   81.744324]  [\u003cc12b8a45\u003e] device_add+0x5e5/0x680\n[   81.744329]  [\u003cc122a1a3\u003e] ? kvasprintf+0x43/0x60\n[   81.744332]  [\u003cc121e6e4\u003e] ? kobject_set_name_vargs+0x64/0x70\n[   81.744335]  [\u003cc121e6e4\u003e] ? kobject_set_name_vargs+0x64/0x70\n[   81.744339]  [\u003cc12bbe9f\u003e] platform_device_add+0xff/0x1b0\n[   81.744343]  [\u003cf8252906\u003e] uvesafb_init+0x50/0x9b [uvesafb]\n[   81.744346]  [\u003cc100111f\u003e] do_one_initcall+0x2f/0x170\n[   81.744350]  [\u003cf82528b6\u003e] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb]\n[   81.744355]  [\u003cc10c6994\u003e] sys_init_module+0xf4/0x1410\n[   81.744359]  [\u003cc1157fc0\u003e] ? vfsmount_lock_local_unlock_cpu+0x30/0x30\n[   81.744363]  [\u003cc144cb10\u003e] sysenter_do_call+0x12/0x36\n[   81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 \u003c60\u003e e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66\n[   81.744388] EIP: [\u003cc00cd3b3\u003e] 0xc00cd3b3 SS:ESP 0068:f57f3a00\n[   81.744391] CR2: 00000000c00cd3b3\n[   81.744393] ---[ end trace 18b2c87c925b54d6 ]---\n\nSigned-off-by: Wang YanQing \u003cudknight@gmail.com\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "70834d3070c3f3015ab5c05176d54bd4a0100546",
      "tree": "4dbcea84c4584de05f83aa911164902b3f00265f",
      "parents": [
        "a02d6fd643cbd4c559113b35b31d3b04e4ec60c7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "usermodehelper: use UMH_WAIT_PROC consistently\n\nA few call_usermodehelper() callers use the hardcoded constant instead of\nthe proper UMH_WAIT_PROC, fix them.\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Lars Ellenberg \u003cdrbd-dev@lists.linbit.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6bff98b455cf3e666fd0e3d0d908eba874de0eee",
      "tree": "022ecc6ff78ca838c4ac2e02d39b0cd1f6da353c",
      "parents": [
        "dc7e57fa80ec5231e33ee2f51f6211c9fb84b9e3"
      ],
      "author": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Wed Mar 21 13:22:01 2012 +0000"
      },
      "committer": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Wed Mar 21 13:28:31 2012 +0000"
      },
      "message": "Revert \"video:uvesafb: Fix oops that uvesafb try to execute NX-protected page\"\n\nThis reverts commit ec0d22e4d563e7cce9f6678e2000900755c2989d.\n\nThis patch requires exporting \u0027pcibios_enabled\u0027 to avoid breaking\nmodular uvesafb builds. As this gets some opposition by Alan Cox it\nneeds more discussion, revert the patch for now.\n\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\n"
    },
    {
      "commit": "c2bc0a756b1f98bd712fabe78eb49d7d5ae72075",
      "tree": "bbfbfd8be4ca41308f3ac768f969b46aec93eb3e",
      "parents": [
        "ec0d22e4d563e7cce9f6678e2000900755c2989d"
      ],
      "author": {
        "name": "Wang YanQing",
        "email": "udknight@gmail.com",
        "time": "Fri Mar 02 09:45:31 2012 +0800"
      },
      "committer": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Thu Mar 08 18:13:10 2012 +0000"
      },
      "message": "video:uvesafb: notice user when we failed to save hardware state\n\nuvesafb_open may failed to save hardware state when kmalloc failed\nin uvesafb_vbe_state_save, we should check this and notice user.\n\nSigned-off-by: Wang YanQing \u003cudknight@gmail.com\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\n"
    },
    {
      "commit": "ec0d22e4d563e7cce9f6678e2000900755c2989d",
      "tree": "2da84ba1dee309388e51a7bffc82e64e94737d43",
      "parents": [
        "e71ff6f265c80b6f04f1d16470b5afa58f0b4648"
      ],
      "author": {
        "name": "Wang YanQing",
        "email": "udknight@gmail.com",
        "time": "Fri Mar 02 08:48:50 2012 +0800"
      },
      "committer": {
        "name": "Florian Tobias Schandinat",
        "email": "FlorianSchandinat@gmx.de",
        "time": "Thu Mar 08 18:12:53 2012 +0000"
      },
      "message": "video:uvesafb: Fix oops that uvesafb try to execute NX-protected page\n\nThis patch fixes the oops below\n\n[   81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev   , OEM: NVIDIA, VBE v3.0\n[   81.609384] uvesafb: protected mode interface info at c000:d350\n[   81.609388] uvesafb: pmi: set display start \u003d c00cd3b3, set palette \u003d c00cd40e\n[   81.609390] uvesafb: pmi: ports \u003d 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da\n[   81.614558] uvesafb: VBIOS/hardware doesn\u0027t support DDC transfers\n[   81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used\n[   81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual\u003d4915\n[   81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0)\n[   81.744153] BUG: unable to handle kernel paging request at c00cd3b3\n[   81.744159] IP: [\u003cc00cd3b3\u003e] 0xc00cd3b2\n[   81.744167] *pdpt \u003d 00000000016d6001 *pde \u003d 0000000001c7b067 *pte \u003d 80000000000cd163\n[   81.744171] Oops: 0011 [#1] SMP\n[   81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect\n[   81.744178]\n[   81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer            Aspire 4741                    /Aspire 4741\n[   81.744185] EIP: 0060:[\u003cc00cd3b3\u003e] EFLAGS: 00010246 CPU: 0\n[   81.744187] EIP is at 0xc00cd3b3\n[   81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000\n[   81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00\n[   81.744192]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n[   81.744195] Process modprobe (pid: 3497, ti\u003df57f2000 task\u003df748c600 task.ti\u003df57f2000)\n[   81.744196] Stack:\n[   81.744197]  f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0\n[   81.744202]  f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000\n[   81.744206]  f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400\n[   81.744210] Call Trace:\n[   81.744215]  [\u003cf82512c5\u003e] ? uvesafb_pan_display+0x45/0x60 [uvesafb]\n[   81.744222]  [\u003cc124a9bc\u003e] fb_pan_display+0x10c/0x160\n[   81.744226]  [\u003cf8251280\u003e] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb]\n[   81.744230]  [\u003cc12598dd\u003e] bit_update_start+0x1d/0x50\n[   81.744232]  [\u003cc1255efe\u003e] fbcon_switch+0x39e/0x550\n[   81.744235]  [\u003cc125a21a\u003e] ? bit_cursor+0x4ea/0x560\n[   81.744240]  [\u003cc129b6cb\u003e] redraw_screen+0x12b/0x220\n[   81.744245]  [\u003cc128843b\u003e] ? tty_do_resize+0x3b/0xc0\n[   81.744247]  [\u003cc129ef42\u003e] vc_do_resize+0x3d2/0x3e0\n[   81.744250]  [\u003cc129efb4\u003e] vc_resize+0x14/0x20\n[   81.744253]  [\u003cc12586bd\u003e] fbcon_init+0x29d/0x500\n[   81.744255]  [\u003cc12984c4\u003e] ? set_inverse_trans_unicode+0xe4/0x110\n[   81.744258]  [\u003cc129b378\u003e] visual_init+0xb8/0x150\n[   81.744261]  [\u003cc129c16c\u003e] bind_con_driver+0x16c/0x360\n[   81.744264]  [\u003cc129b47e\u003e] ? register_con_driver+0x6e/0x190\n[   81.744267]  [\u003cc129c3a1\u003e] take_over_console+0x41/0x50\n[   81.744269]  [\u003cc1257b7a\u003e] fbcon_takeover+0x6a/0xd0\n[   81.744272]  [\u003cc12594b8\u003e] fbcon_event_notify+0x758/0x790\n[   81.744277]  [\u003cc10929e2\u003e] notifier_call_chain+0x42/0xb0\n[   81.744280]  [\u003cc1092d30\u003e] __blocking_notifier_call_chain+0x60/0x90\n[   81.744283]  [\u003cc1092d7a\u003e] blocking_notifier_call_chain+0x1a/0x20\n[   81.744285]  [\u003cc124a5a1\u003e] fb_notifier_call_chain+0x11/0x20\n[   81.744288]  [\u003cc124b759\u003e] register_framebuffer+0x1d9/0x2b0\n[   81.744293]  [\u003cc1061c73\u003e] ? ioremap_wc+0x33/0x40\n[   81.744298]  [\u003cf82537c6\u003e] uvesafb_probe+0xaba/0xc40 [uvesafb]\n[   81.744302]  [\u003cc12bb81f\u003e] platform_drv_probe+0xf/0x20\n[   81.744306]  [\u003cc12ba558\u003e] driver_probe_device+0x68/0x170\n[   81.744309]  [\u003cc12ba731\u003e] __device_attach+0x41/0x50\n[   81.744313]  [\u003cc12b9088\u003e] bus_for_each_drv+0x48/0x70\n[   81.744316]  [\u003cc12ba7f3\u003e] device_attach+0x83/0xa0\n[   81.744319]  [\u003cc12ba6f0\u003e] ? __driver_attach+0x90/0x90\n[   81.744321]  [\u003cc12b991f\u003e] bus_probe_device+0x6f/0x90\n[   81.744324]  [\u003cc12b8a45\u003e] device_add+0x5e5/0x680\n[   81.744329]  [\u003cc122a1a3\u003e] ? kvasprintf+0x43/0x60\n[   81.744332]  [\u003cc121e6e4\u003e] ? kobject_set_name_vargs+0x64/0x70\n[   81.744335]  [\u003cc121e6e4\u003e] ? kobject_set_name_vargs+0x64/0x70\n[   81.744339]  [\u003cc12bbe9f\u003e] platform_device_add+0xff/0x1b0\n[   81.744343]  [\u003cf8252906\u003e] uvesafb_init+0x50/0x9b [uvesafb]\n[   81.744346]  [\u003cc100111f\u003e] do_one_initcall+0x2f/0x170\n[   81.744350]  [\u003cf82528b6\u003e] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb]\n[   81.744355]  [\u003cc10c6994\u003e] sys_init_module+0xf4/0x1410\n[   81.744359]  [\u003cc1157fc0\u003e] ? vfsmount_lock_local_unlock_cpu+0x30/0x30\n[   81.744363]  [\u003cc144cb10\u003e] sysenter_do_call+0x12/0x36\n[   81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 \u003c60\u003e e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66\n[   81.744388] EIP: [\u003cc00cd3b3\u003e] 0xc00cd3b3 SS:ESP 0068:f57f3a00\n[   81.744391] CR2: 00000000c00cd3b3\n[   81.744393] ---[ end trace 18b2c87c925b54d6 ]---\n\nSigned-off-by: Wang YanQing \u003cudknight@gmail.com\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "90ab5ee94171b3e28de6bb42ee30b527014e0be7",
      "tree": "fcf89889f6e881f2b231d3d20287c08174ce4b54",
      "parents": [
        "476bc0015bf09dad39d36a8b19f76f0c181d1ec9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jan 13 09:32:20 2012 +1030"
      },
      "message": "module_param: make bool parameters really bool (drivers \u0026 misc)\n\nmodule_param(bool) used to counter-intuitively take an int.  In\nfddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy\ntrick.\n\nIt\u0027s time to remove the int/unsigned int option.  For this version\nit\u0027ll simply give a warning, but it\u0027ll break next kernel version.\n\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "803a4e14a7dceaf01dbc0e02c0fdea2eba4c81b3",
      "tree": "b48aedf2155d355f13cf1607e2ff794244c9050d",
      "parents": [
        "7b0e278519eba8050f2b37d7c408958745f30ecd"
      ],
      "author": {
        "name": "Thomas Schlichter",
        "email": "thomas.schlichter@web.de",
        "time": "Sat Nov 27 14:17:55 2010 +0100"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Mar 22 16:20:44 2011 +0900"
      },
      "message": "uvesafb,vesafb: create WC or WB PAT-entries\n\nwith an PAT-enabled kernel, when using uvesafb or vesafb, these drivers will\ncreate uncached-minus PAT entries for the framebuffer memory because they use\nioremap() (not the *_cache or *_wc variants). When the framebuffer memory\nintersects with the video RAM used by Xorg, the complete video RAM will be\nmapped uncached-minus what results in a serve performance penalty.\n\nHere are the correct MTRR entries created by uvesafb:\nschlicht@netbook:~$ cat /proc/mtrr\nreg00: base\u003d0x000000000 ( 0MB), size\u003d 2048MB, count\u003d1: write-back\nreg01: base\u003d0x06ff00000 ( 1791MB), size\u003d 1MB, count\u003d1: uncachable\nreg02: base\u003d0x070000000 ( 1792MB), size\u003d 256MB, count\u003d1: uncachable\nreg03: base\u003d0x0d0000000 ( 3328MB), size\u003d 16MB, count\u003d1: write-combining\n\nAnd here are the problematic PAT entries:\nschlicht@netbook:~$ sudo cat /sys/kernel/debug/x86/pat_memtype_list\nPAT memtype list:\nwrite-back @ 0x0-0x1000\nuncached-minus @ 0x6fedd000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee3000-0x6fee4000\nuncached-minus @ 0x6fee3000-0x6fee4000\nuncached-minus @ 0x6fee3000-0x6fee4000\nuncached-minus @ 0xd0000000-0xe0000000 \u003c-- created by xserver-xorg\nuncached-minus @ 0xd0000000-0xd1194000 \u003c-- created by uvesafb\nuncached-minus @ 0xf4000000-0xf4009000\nuncached-minus @ 0xf4200000-0xf4400000\nuncached-minus @ 0xf5000000-0xf5010000\nuncached-minus @ 0xf5100000-0xf5104000\nuncached-minus @ 0xf5400000-0xf5404000\nuncached-minus @ 0xf5404000-0xf5405000\nuncached-minus @ 0xf5404000-0xf5405000\nuncached-minus @ 0xfed00000-0xfed01000\n\nTherefore I created the attached patch for uvesafb which uses ioremap_wc() to\ncreate the correct PAT entries, as shown below:\nschlicht@netbook:~$ sudo cat /sys/kernel/debug/x86/pat_memtype_list\nPAT memtype list:\nwrite-back @ 0x0-0x1000\nuncached-minus @ 0x6fedd000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee2000-0x6fee3000\nuncached-minus @ 0x6fee3000-0x6fee4000\nuncached-minus @ 0x6fee3000-0x6fee4000\nuncached-minus @ 0x6fee3000-0x6fee4000\nwrite-combining @ 0xd0000000-0xe0000000\nwrite-combining @ 0xd0000000-0xd1194000\nuncached-minus @ 0xf4000000-0xf4009000\nuncached-minus @ 0xf4200000-0xf4400000\nuncached-minus @ 0xf5000000-0xf5010000\nuncached-minus @ 0xf5100000-0xf5104000\nuncached-minus @ 0xf5400000-0xf5404000\nuncached-minus @ 0xf5404000-0xf5405000\nuncached-minus @ 0xf5404000-0xf5405000\nuncached-minus @ 0xfed00000-0xfed01000\n\nThis results in a performance gain, objectively measurable with e.g.\nx11perf -comppixwin10 -comppixwin100 -comppixwin500:\n1: x11perf_xaa.log\n2: x11perf_xaa_patched.log\n\n       1                2 Operation\n-------- ---------------- -----------------\n124000.0 202000.0 ( 1.63) Composite 10x10 from pixmap to window\n  3340.0  24400.0 ( 7.31) Composite 100x100 from pixmap to window\n   131.0   1150.0 ( 8.78) Composite 500x500 from pixmap to window\n\nYou can see the serve performance gain when composing larger pixmaps to window.\n\nThe patches replace the ioremap() function with the variant matching the mtrr-\nparameter. To create \"write-back\" PAT entries, the ioremap_cache() function\nmust be called after creating the MTRR entries, and the ioremap_cache() region\nmust completely fit into the MTRR region, this is why the MTRR region size is\nnow rounded up to the next power-of-two.\n\nSigned-off-by: Thomas Schlichter \u003cthomas.schlichter@web.de\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "01a16b21d6adf992aa863186c3c4e561a57c1714",
      "tree": "a3b1c81e5a5e6a0e9069e4d3a15576741ed34776",
      "parents": [
        "63f97425166a1a16279c1a5720e9dfcb2c12ad1b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Thu Mar 03 13:32:07 2011 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 03 13:32:07 2011 -0800"
      },
      "message": "netlink: kill eff_cap from struct netlink_skb_parms\n\nNetlink message processing in the kernel is synchronous these days,\ncapabilities can be checked directly in security_netlink_recv() from\nthe current process.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\n[chrisw: update to include pohmelfs and uvesafb]\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9bbb9e5a33109b2832e2e63dcc7a132924ab374b",
      "tree": "87270ed3a61d0d0e654a61c8d44504cdef330192",
      "parents": [
        "a14fe249a8f74269c9e636bcbaa78f5bdb354ce3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:12 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Aug 11 23:04:13 2010 +0930"
      },
      "message": "param: use ops in struct kernel_param, rather than get and set fns directly\n\nThis is more kernel-ish, saves some space, and also allows us to\nexpand the ops without breaking all the callers who are happy for the\nnew members to be NULL.\n\nThe few places which defined their own param types are changed to the\nnew scheme (more which crept in recently fixed in following patches).\n\nSince we\u0027re touching them anyway, we change get() and set() to take a\nconst struct kernel_param (which they really are).  This causes some\nharmless warnings until we fix them (in following patches).\n\nTo reduce churn, module_param_call creates the ops struct so the callers\ndon\u0027t have to change (and casts the functions to reduce warnings).\nThe modern version which takes an ops struct is called module_param_cb.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ville Syrjala \u003csyrjala@sci.fi\u003e\nCc: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nCc: Alessandro Rubini \u003crubini@ipvvis.unipv.it\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-kernel@vger.kernel.org\nCc: linux-input@vger.kernel.org\nCc: linux-fbdev-devel@lists.sourceforge.net\nCc: linux-nfs@vger.kernel.org\nCc: netdev@vger.kernel.org\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "f5c15d0b37ab1cd3969b8ce7828ab41c79f36f77",
      "tree": "a12aaef93ef8cc75eb5488294c64c5bf9d01546c",
      "parents": [
        "9d0ed60fe9cd1fbf57f755cd27a23ae9114d7210"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Wed Nov 11 14:26:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 12 07:25:56 2009 -0800"
      },
      "message": "fb: remove fb_save_state() and fb_restore_state operations\n\nRemove fb_save_state() and fb_restore_state operations from frame buffer layer.\nThey are used only in two drivers:\n1. savagefb  - and cause bug #11248\n2. uvesafb\n\nUsage of these operations is misunderstood in both drivers so kill these\noperations, fix the bug #11248 and avoid confusion in the future.\n\nTested on Savage 3D/MV card and the patch fixes the bug #11248.\n\nThe frame buffer layer uses these funtions during switch between graphics\nand text mode of the console, but these drivers saves state before\nswitching of the frame buffer (in the fb_open) and after releasing it (in\nthe fb_release).  This defeats the purpose of these operations.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d11248\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nReported-by: Jochen Hein \u003cjochen@jochen.org\u003e\nTested-by: Jochen Hein \u003cjochen@jochen.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc44578b5a508889beb8ae3ccd4d2bbdf17bc86c",
      "tree": "404dea134f659856a275c2f89cdb6ee623806213",
      "parents": [
        "98a5783af02f4c9b87b676d7bbda6258045cfc76"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 02 02:40:11 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 02 10:54:18 2009 -0700"
      },
      "message": "uvesafb/connector: Disallow unpliviged users to send netlink packets\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7069331dbe7155f23966f5944109f909fea0c7e4",
      "tree": "5ea80628d1bf5e776a540ee84814f085c9adff04",
      "parents": [
        "293500a23f4b0698cb04abfecfc9a954d8ab2742"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Fri Oct 02 02:40:05 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 02 10:54:01 2009 -0700"
      },
      "message": "connector: Provide the sender\u0027s credentials to the callback\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nAcked-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nAcked-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0741241c6b80bfd58417e95de984d60c9e9ef2a0",
      "tree": "9fa70e5e918e0735c531988f64b92cb5655baf28",
      "parents": [
        "e36aa25a533962b08402530e8443ac804a454e27"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Fri Jul 17 10:13:21 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 17 10:13:21 2009 -0700"
      },
      "message": "connector: make callback argument type explicit\n\nThe connector documentation states that the argument to the callback\nfunction is always a pointer to a struct cn_msg, but rather than encode it\nin the API itself, it uses a void pointer everywhere.  This doesn\u0027t make\nmuch sense to encode the pointer in documentation as it prevents proper C\ntype checking from occurring and can easily allow people to use the wrong\npointer type.  So convert the argument type to an explicit struct cn_msg\npointer.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2ead9439f0c6ed03faafe27abe8bc1dd256d117b",
      "tree": "373004102baf74b539dae01edbdabe13e341c310",
      "parents": [
        "fddd520122953550ec2c8b60e7ca0d0f0d115d97"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:58 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 21:46:59 2009 +0930"
      },
      "message": "uvesafb: improve parameter handling.\n\n1) Now module_param(..., invbool, ...) requires a bool, and similarly\n   module_param(..., bool, ...) allows it, change pmi_setpal to a bool.\n2) #define param_get_scroll to NULL, since it can never be called (perm\n   argument to module_param_named is 0).\n3) Return -EINVAL from param_set_scroll if the value is bad, so it\u0027s\n   reported.\n\nNote that I don\u0027t think the old fb_get_options() is required for new\ndrivers: the parameters automatically work as uvesafb.XXX\u003d... anyway.\n\nAcked-by: Michał Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "0ca1071f7dbd673de826eb3fb01bfdfd1d423433",
      "tree": "bb60620604449f357ae7d099395b20199bc96197",
      "parents": [
        "ebde441177da3bad156701d351509f34295282ab"
      ],
      "author": {
        "name": "Michal Januszewski",
        "email": "spock@gentoo.org",
        "time": "Mon Apr 13 14:39:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:29 2009 -0700"
      },
      "message": "uvesafb: fix color component length for pseudocolor modes\n\nuvesafb incorrectly sets the length of the color fields to 6 bits for\nPSEUDOCOLOR modes, even though 8 bits are always used per pixel.  Fix this\nby setting the length to 8.\n\nThe switch of the DAC width from the default 6 bits to 8 bits is retained\nand tracked internally in the driver, but never exposed to userspace.\n\nSigned-off-by: Michal Januszewski \u003cspock@gentoo.org\u003e\nAcked-by: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \u003csyrjala@sci.fi\u003e\nCc: Geert Uytterhoeven \u003cgeert.uytterhoeven@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": "23b736545473ed853b685cbc03883aa6ff3f0e0d",
      "tree": "dbc04a8fc5765f6832085909e6b5247511c33fed",
      "parents": [
        "ddb53d48da5b0e691f35e703ac29118747f86c99"
      ],
      "author": {
        "name": "Michal Januszewski",
        "email": "spock@gentoo.org",
        "time": "Tue Mar 31 15:25:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:33 2009 -0700"
      },
      "message": "uvesafb: fix selecting mode with the vbemode option\n\nIf the vbemode option is used, uvesafb calls fb_get_mode() without first\nsetting the resolution in info-\u003evar.  This results in a division by zero\nin fb_get_mode(), as evidenced e.g.  in [1].  Fix this by ensuring the\ninfo-\u003evar structure is populated before fb_get_mode() is called.\n\n[1] http://bugzilla.kernel.org/show_bug.cgi?id\u003d11661#c37\n\nSigned-off-by: Michal Januszewski \u003cspock@gentoo.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": "1cc9fb6dbf915e5c7e7e59bb7fab10572ddbb349",
      "tree": "1f751eccdd877f72f3eb57c19c6a1a845f54a265",
      "parents": [
        "b935257b1f98291ec1c8cbf7dbccbe0b20665bf6"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Mar 31 15:25:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:32 2009 -0700"
      },
      "message": "uvesafb: bitwise OR has higher precedence than ?:\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nAcked-by: Michal Januszewski \u003cmichalj@gmail.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": "6e6fe42227e23a379d3c70f6ff257131399e4075",
      "tree": "4d45805d093696a61cf19639b7ad298eb4046a5e",
      "parents": [
        "fa7af8b1bb6dfca7a0c8541683a9bfffbc8dd345"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Mar 31 15:25:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:26 2009 -0700"
      },
      "message": "drivers/video/uvesafb.c: don\u0027t use gfp_any()\n\nGFP_KERNEL is legal here - we don\u0027t need to use gfp_any().\n\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff491a7334acfd74e515c896632e37e401f52676",
      "tree": "0e3663706a706029d6fc749ef7f66cdd03925231",
      "parents": [
        "612e244c12215f6f74973ea3b89bff96450dc530"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Feb 05 23:56:36 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 05 23:56:36 2009 -0800"
      },
      "message": "netlink: change return-value logic of netlink_broadcast()\n\nCurrently, netlink_broadcast() reports errors to the caller if no\nmessages at all were delivered:\n\n1) If, at least, one message has been delivered correctly, returns 0.\n2) Otherwise, if no messages at all were delivered due to skb_clone()\n   failure, return -ENOBUFS.\n3) Otherwise, if there are no listeners, return -ESRCH.\n\nWith this patch, the caller knows if the delivery of any of the\nmessages to the listeners have failed:\n\n1) If it fails to deliver any message (for whatever reason), return\n   -ENOBUFS.\n2) Otherwise, if all messages were delivered OK, returns 0.\n3) Otherwise, if no listeners, return -ESRCH.\n\nIn the current ctnetlink code and in Netfilter in general, we can add\nreliable logging and connection tracking event delivery by dropping the\npackets whose events were not successfully delivered over Netlink. Of\ncourse, this option would be settable via /proc as this approach reduces\nperformance (in terms of filtered connections per seconds by a stateful\nfirewall) but providing reliable logging and event delivery (for\nconntrackd) in return.\n\nThis patch also changes some clients of netlink_broadcast() that\nmay report ENOBUFS errors via printk. This error handling is not\nof any help. Instead, the userspace daemons that are listening to\nthose netlink messages should resync themselves with the kernel-side\nif they hit ENOBUFS.\n\nBTW, netlink_broadcast() clients include those that call\ncn_netlink_send(), nlmsg_multicast() and genlmsg_multicast() since they\ninternally call netlink_broadcast() and return its error value.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9350cc90ca8a72bc1974f76a9922f91ced84a5cf",
      "tree": "5f1b40814ed6f3911b63e7e868045875814d7900",
      "parents": [
        "c0dd504cea3703c3ec9bfd810e6bd649680afd37"
      ],
      "author": {
        "name": "Michal Januszewski",
        "email": "spock@gentoo.org",
        "time": "Wed Oct 15 22:03:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:44 2008 -0700"
      },
      "message": "uvesafb: don\u0027t treat mode info retrieval failures as errors\n\nSome BIOSes return error codes when queried for information about\nmodes from their own modelist.  uvesafb treats this as an error\ncase and bails out.\n\nChange this behavior so that broken modes do not prevent the driver\nfrom working.  Only the failure to retrieve information about any\nusable video mode is considered to be an error case.\n\nSigned-off-by: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "012e26096b36bfeacaba2c9e31eaf32d6faa6567",
      "tree": "413440c8d292847858064e5b38342aa2b8fa29f3",
      "parents": [
        "49a1d28f57adc9cb064572f0373e26363b0a412f"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Wed Jul 23 21:31:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:37 2008 -0700"
      },
      "message": "uvesafb: change mode parameter to mode_option\n\nMake more drivers use the \"mode_option\" parameter.  This one is quite new\nso drop the old \"mode\" parameter before someone starts using it seriously.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60c1645dfac320e992bb5635887b7698ae6606bc",
      "tree": "31916e1b7b0a42745ba4165e1bb1cc97cbbfb0c2",
      "parents": [
        "0e27aa3dabb541edee9f23b37114856a528de01e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Apr 28 02:15:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:41 2008 -0700"
      },
      "message": "drivers/video/uvesafb.c: fix error-path memory leak\n\nFix bug identified by Daniel Marjamki: `m\u0027 is leaked on the error path.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d10452\n\nCc: Daniel Marjamki \u003cdanielm77@spray.se\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e72b32d86841e4a4a3045d8e35a39eb53ce7ce2",
      "tree": "dd234ca4c616ac7c3a746fbe8e6a576656ed793a",
      "parents": [
        "e0745ae7210c14e611a1fab2af820a4c2e447de5"
      ],
      "author": {
        "name": "Michal Januszewski",
        "email": "spock@gentoo.org",
        "time": "Mon Apr 28 02:15:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:38 2008 -0700"
      },
      "message": "uvesafb: don\u0027t treat valid modes returned byfb_find_mode() as errors\n\nDon\u0027t treat valid modes returned by fb_find_mode() (best-fit modes, default\nmodes or the first valid mode) as errors.\n\nCurrently, when fb_find_mode() finds a valid mode belonging to one of the\nabove-mentioned classes, uvesafb will ignore it and will try to set a 640x480\nvideo mode.  The expected behaviour (introduced by this patch) would be to use\nthe valid mode returned by fb_find_mode() instead.\n\nSigned-off-by: Michal Januszewski \u003cspock@gentoo.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": "79306a340c23e40c94ce16e504d172ae15b24187",
      "tree": "fed8a3dfac3d49e5b87e4e1300daa4a74380384c",
      "parents": [
        "8808117ca571fd63e188a2306baae86cca9fce7a"
      ],
      "author": {
        "name": "Sergio Luis",
        "email": "sergio@larces.uece.br",
        "time": "Sat Feb 23 15:23:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:12:15 2008 -0800"
      },
      "message": "drivers/video/uvesafb.c: fix section mismatch warning in param_set_scroll()\n\nFix following warnings:\nWARNING: drivers/video/built-in.o(.text+0x7c64a): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/video/built-in.o(.text+0x7c65d): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/video/built-in.o(.text+0x7c679): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/video/built-in.o(.text+0x7c699): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/video/built-in.o(.text+0x7c69f): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/built-in.o(.text+0xa3676): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/built-in.o(.text+0xa3689): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/built-in.o(.text+0xa36a5): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/built-in.o(.text+0xa36c5): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: drivers/built-in.o(.text+0xa36cb): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: vmlinux.o(.text+0x4a079a): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: vmlinux.o(.text+0x4a07ad): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: vmlinux.o(.text+0x4a07c9): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: vmlinux.o(.text+0x4a07e9): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\nWARNING: vmlinux.o(.text+0x4a07ef): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan\n\nRemove __devinitdata annotation from the variable ypan.\n\nSigned-off-by: Sergio Luis \u003csergio@larces.uece.br\u003e\nCc: Michal Januszewski \u003cspock@gentoo.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": "5eb03a4ab239d8769fa13df6c894d618ecae1b50",
      "tree": "d931610790da410a2e5806df09170e67aca92f8b",
      "parents": [
        "0ce85eb8824679cd9e7b3b12202e2bf54f1f3e2c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Feb 06 01:39:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:16 2008 -0800"
      },
      "message": "uvesafb: small cleanups\n\nSome cleanups in uvesafb:\n- The custom module_param() get/set functions don\u0027t need to be inlined\n  since it is referred to via a pointer in a struct.\n- don\u0027t end a #define with a \u0027;\u0027\n- remove one of the single quote marks in \"\u0027\u0027ypan\u0027\"\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: \"Antonino A. Daplas\" \u003cadaplas@pol.net\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27b526a09086d563d61cf0e0fdd5c8e3f3c295d4",
      "tree": "317395b44e62bad55f7bc28a0bc2123a3173c672",
      "parents": [
        "d2d159dbd51a99abdd4ae02fecc68cd1e0b0558e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Jan 14 00:55:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jan 14 08:52:23 2008 -0800"
      },
      "message": "uvesafb: fix section mismatch warnings\n\nMark uvesafb_init_mtrr() as __devinit since its caller is __devinit\nand since it accesses __devinitdata.\n\nWARNING: vmlinux.o(.text+0x4df80e): Section mismatch: reference to .init.data: (between \u0027uvesafb_init_mtrr\u0027 and \u0027uvesafb_show_vbe_ver\u0027)\n\nVariable \u0027blank\u0027 cannot be __devinitdata since it is referenced in an\nfb_ops method that could be called at any time.\n\nWARNING: vmlinux.o(.text+0x4dfc1e): Section mismatch: reference to .init.data:blank (between \u0027param_set_scroll\u0027 and \u0027vesa_setpalette\u0027)\nWARNING: vmlinux.o(.text+0x4dfc24): Section mismatch: reference to .init.data:blank (between \u0027param_set_scroll\u0027 and \u0027vesa_setpalette\u0027)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.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": "03ad369ac900116f35da7505f768ebbd481d09a4",
      "tree": "3a3febc31a77965e78a9d3e45e951cc90daf3910",
      "parents": [
        "0f8c0234f275c8198cbb68f16e035fa46254e372"
      ],
      "author": {
        "name": "Frank Lichtenheld",
        "email": "frank@lichtenheld.de",
        "time": "Wed Nov 14 16:58:47 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:37 2007 -0800"
      },
      "message": "uvesafb: fix warnings about unused variables on non-x86\n\nVariables that are only used in #ifdef CONFIG_X86 should also only be\ndeclared there.\n\nSigned-off-by: Frank Lichtenheld \u003cfrank@lichtenheld.de\u003e\nCc: Michal Januszewski \u003cspock@gentoo.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": "8bdb3a2d7df48b861972c4bfb58490853a228f51",
      "tree": "febc4fbe0fd90e4677fe7703350ce349ddbfc342",
      "parents": [
        "cc54f46e39dff9891dd334ef158a238ff5a9ffd2"
      ],
      "author": {
        "name": "Michal Januszewski",
        "email": "spock@gentoo.org",
        "time": "Tue Oct 16 01:28:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:13 2007 -0700"
      },
      "message": "uvesafb: the driver core\n\nuvesafb is an enhanced version of vesafb.  It uses a userspace helper (v86d)\nto execute calls to the x86 Video BIOS functions.  The driver is not limited\nto any specific arch and whether it works on a given arch or not depends on\nthat arch being supported by the userspace daemon.  It has been tested on\nx86_32 and x86_64.\n\nA single BIOS call is represented by an instance of the uvesafb_ktask\nstructure.  This structure contains a buffer, a completion struct and a\nuvesafb_task substructure, containing the values of the x86 registers, a flags\nfield and a field indicating the length of the buffer.  Whenever a BIOS call\nis made in the driver, uvesafb_exec() builds a message using the uvesafb_task\nsubstructure and the contents of the buffer.  This message is then assigned a\nrandom ack number and sent to the userspace daemon using the connector\ninterface.\n\nThe message\u0027s sequence number is used as an index for the uvfb_tasks array,\nwhich provides a mapping from the messages coming from userspace to the\nin-kernel uvesafb_ktask structs.\n\nThe userspace daemon performs the requested operation and sends a reply in the\nform of a uvesafb_task struct and, optionally, a buffer.  The seq and ack\nnumbers in the reply should be exactly the same as those in the request.\n\nEach message from userspace is processed by uvesafb_cn_callback() and after\npassing a few sanity checks leads to the completion of a BIOS call request.\n\nSigned-off-by: Michal Januszewski \u003cspock@gentoo.org\u003e\nSigned-off-by: Antonino Daplas \u003cadaplas@gmail.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Paulo Marques \u003cpmarques@grupopie.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
