mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Alan Cox <alan@linux.intel.com>,
	Florian Tobias Schandinat <FlorianSchandinat@gmx.de>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Jiri Kosina <jkosina@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Dave Airlie <airlied@redhat.com>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 096/139] fb: rework locking to fix lock ordering on takeover
Date: Thu, 28 Feb 2013 14:44:06 +0000	[thread overview]
Message-ID: <1362062689-2567-97-git-send-email-luis.henriques@canonical.com> (raw)
In-Reply-To: <1362062689-2567-1-git-send-email-luis.henriques@canonical.com>

3.5.7.7 -stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alan Cox <alan@linux.intel.com>

commit 50e244cc793d511b86adea24972f3a7264cae114 upstream.

Adjust the console layer to allow a take over call where the caller
already holds the locks.  Make the fb layer lock in order.

This is partly a band aid, the fb layer is terminally confused about the
locking rules it uses for its notifiers it seems.

[akpm@linux-foundation.org: remove stray non-ascii char, tidy comment]
[akpm@linux-foundation.org: export do_take_over_console()]
[airlied: cleanup another non-ascii char]
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Jiri Kosina <jkosina@suse.cz>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 drivers/tty/vt/vt.c           | 93 ++++++++++++++++++++++++++++++++-----------
 drivers/video/console/fbcon.c | 29 +++++++++++++-
 drivers/video/fbmem.c         |  5 +--
 drivers/video/fbsysfs.c       |  3 ++
 include/linux/console.h       |  1 +
 5 files changed, 104 insertions(+), 27 deletions(-)

diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c
index 3b4f5b6..f7ffae5 100644
--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -3017,7 +3017,7 @@ int __init vty_init(const struct file_operations *console_fops)
 
 static struct class *vtconsole_class;
 
-static int bind_con_driver(const struct consw *csw, int first, int last,
+static int do_bind_con_driver(const struct consw *csw, int first, int last,
 			   int deflt)
 {
 	struct module *owner = csw->owner;
@@ -3028,7 +3028,7 @@ static int bind_con_driver(const struct consw *csw, int first, int last,
 	if (!try_module_get(owner))
 		return -ENODEV;
 
-	console_lock();
+	WARN_CONSOLE_UNLOCKED();
 
 	/* check if driver is registered */
 	for (i = 0; i < MAX_NR_CON_DRIVER; i++) {
@@ -3113,11 +3113,22 @@ static int bind_con_driver(const struct consw *csw, int first, int last,
 
 	retval = 0;
 err:
-	console_unlock();
 	module_put(owner);
 	return retval;
 };
 
+
+static int bind_con_driver(const struct consw *csw, int first, int last,
+			   int deflt)
+{
+	int ret;
+
+	console_lock();
+	ret = do_bind_con_driver(csw, first, last, deflt);
+	console_unlock();
+	return ret;
+}
+
 #ifdef CONFIG_VT_HW_CONSOLE_BINDING
 static int con_is_graphics(const struct consw *csw, int first, int last)
 {
@@ -3229,9 +3240,9 @@ int unbind_con_driver(const struct consw *csw, int first, int last, int deflt)
 	if (!con_is_bound(csw))
 		con_driver->flag &= ~CON_DRIVER_FLAG_INIT;
 
-	console_unlock();
 	/* ignore return value, binding should not fail */
-	bind_con_driver(defcsw, first, last, deflt);
+	do_bind_con_driver(defcsw, first, last, deflt);
+	console_unlock();
 err:
 	module_put(owner);
 	return retval;
@@ -3522,28 +3533,18 @@ int con_debug_leave(void)
 }
 EXPORT_SYMBOL_GPL(con_debug_leave);
 
-/**
- * register_con_driver - register console driver to console layer
- * @csw: console driver
- * @first: the first console to take over, minimum value is 0
- * @last: the last console to take over, maximum value is MAX_NR_CONSOLES -1
- *
- * DESCRIPTION: This function registers a console driver which can later
- * bind to a range of consoles specified by @first and @last. It will
- * also initialize the console driver by calling con_startup().
- */
-int register_con_driver(const struct consw *csw, int first, int last)
+static int do_register_con_driver(const struct consw *csw, int first, int last)
 {
 	struct module *owner = csw->owner;
 	struct con_driver *con_driver;
 	const char *desc;
 	int i, retval = 0;
 
+	WARN_CONSOLE_UNLOCKED();
+
 	if (!try_module_get(owner))
 		return -ENODEV;
 
-	console_lock();
-
 	for (i = 0; i < MAX_NR_CON_DRIVER; i++) {
 		con_driver = &registered_con_driver[i];
 
@@ -3596,10 +3597,29 @@ int register_con_driver(const struct consw *csw, int first, int last)
 	}
 
 err:
-	console_unlock();
 	module_put(owner);
 	return retval;
 }
+
+/**
+ * register_con_driver - register console driver to console layer
+ * @csw: console driver
+ * @first: the first console to take over, minimum value is 0
+ * @last: the last console to take over, maximum value is MAX_NR_CONSOLES -1
+ *
+ * DESCRIPTION: This function registers a console driver which can later
+ * bind to a range of consoles specified by @first and @last. It will
+ * also initialize the console driver by calling con_startup().
+ */
+int register_con_driver(const struct consw *csw, int first, int last)
+{
+	int retval;
+
+	console_lock();
+	retval = do_register_con_driver(csw, first, last);
+	console_unlock();
+	return retval;
+}
 EXPORT_SYMBOL(register_con_driver);
 
 /**
@@ -3653,17 +3673,44 @@ EXPORT_SYMBOL(unregister_con_driver);
  *	when a driver wants to take over some existing consoles
  *	and become default driver for newly opened ones.
  *
- *      take_over_console is basically a register followed by unbind
+ *	take_over_console is basically a register followed by unbind
+ */
+int do_take_over_console(const struct consw *csw, int first, int last, int deflt)
+{
+	int err;
+
+	err = do_register_con_driver(csw, first, last);
+	/*
+	 * If we get an busy error we still want to bind the console driver
+	 * and return success, as we may have unbound the console driver
+	 * but not unregistered it.
+	 */
+	if (err == -EBUSY)
+		err = 0;
+	if (!err)
+		do_bind_con_driver(csw, first, last, deflt);
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(do_take_over_console);
+
+/*
+ *	If we support more console drivers, this function is used
+ *	when a driver wants to take over some existing consoles
+ *	and become default driver for newly opened ones.
+ *
+ *	take_over_console is basically a register followed by unbind
  */
 int take_over_console(const struct consw *csw, int first, int last, int deflt)
 {
 	int err;
 
 	err = register_con_driver(csw, first, last);
-	/* if we get an busy error we still want to bind the console driver
+	/*
+	 * If we get an busy error we still want to bind the console driver
 	 * and return success, as we may have unbound the console driver
-	 * but not unregistered it.
-	*/
+	 * but not unregistered it.
+	 */
 	if (err == -EBUSY)
 		err = 0;
 	if (!err)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index bdcd34d..7ccec55 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -529,6 +529,33 @@ static int search_for_mapped_con(void)
 	return retval;
 }
 
+static int do_fbcon_takeover(int show_logo)
+{
+	int err, i;
+
+	if (!num_registered_fb)
+		return -ENODEV;
+
+	if (!show_logo)
+		logo_shown = FBCON_LOGO_DONTSHOW;
+
+	for (i = first_fb_vc; i <= last_fb_vc; i++)
+		con2fb_map[i] = info_idx;
+
+	err = do_take_over_console(&fb_con, first_fb_vc, last_fb_vc,
+				fbcon_is_default);
+
+	if (err) {
+		for (i = first_fb_vc; i <= last_fb_vc; i++)
+			con2fb_map[i] = -1;
+		info_idx = -1;
+	} else {
+		fbcon_has_console_bind = 1;
+	}
+
+	return err;
+}
+
 static int fbcon_takeover(int show_logo)
 {
 	int err, i;
@@ -3121,7 +3148,7 @@ static int fbcon_fb_registered(struct fb_info *info)
 		}
 
 		if (info_idx != -1)
-			ret = fbcon_takeover(1);
+			ret = do_fbcon_takeover(1);
 	} else {
 		for (i = first_fb_vc; i <= last_fb_vc; i++) {
 			if (con2fb_map_boot[i] == idx)
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 0dff12a..616278a 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1651,7 +1651,9 @@ static int do_register_framebuffer(struct fb_info *fb_info)
 	event.info = fb_info;
 	if (!lock_fb_info(fb_info))
 		return -ENODEV;
+	console_lock();
 	fb_notifier_call_chain(FB_EVENT_FB_REGISTERED, &event);
+	console_unlock();
 	unlock_fb_info(fb_info);
 	return 0;
 }
@@ -1854,11 +1856,8 @@ int fb_new_modelist(struct fb_info *info)
 	err = 1;
 
 	if (!list_empty(&info->modelist)) {
-		if (!lock_fb_info(info))
-			return -ENODEV;
 		event.info = info;
 		err = fb_notifier_call_chain(FB_EVENT_NEW_MODELIST, &event);
-		unlock_fb_info(info);
 	}
 
 	return err;
diff --git a/drivers/video/fbsysfs.c b/drivers/video/fbsysfs.c
index a55e366..ef476b0 100644
--- a/drivers/video/fbsysfs.c
+++ b/drivers/video/fbsysfs.c
@@ -177,6 +177,8 @@ static ssize_t store_modes(struct device *device,
 	if (i * sizeof(struct fb_videomode) != count)
 		return -EINVAL;
 
+	if (!lock_fb_info(fb_info))
+		return -ENODEV;
 	console_lock();
 	list_splice(&fb_info->modelist, &old_list);
 	fb_videomode_to_modelist((const struct fb_videomode *)buf, i,
@@ -188,6 +190,7 @@ static ssize_t store_modes(struct device *device,
 		fb_destroy_modelist(&old_list);
 
 	console_unlock();
+	unlock_fb_info(fb_info);
 
 	return 0;
 }
diff --git a/include/linux/console.h b/include/linux/console.h
index 7201ce4..e8ea7d7 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -78,6 +78,7 @@ int con_is_bound(const struct consw *csw);
 int register_con_driver(const struct consw *csw, int first, int last);
 int unregister_con_driver(const struct consw *csw);
 int take_over_console(const struct consw *sw, int first, int last, int deflt);
+int do_take_over_console(const struct consw *sw, int first, int last, int deflt);
 void give_up_console(const struct consw *sw);
 #ifdef CONFIG_HW_CONSOLE
 int con_debug_enter(struct vc_data *vc);
-- 
1.8.1.2


  parent reply	other threads:[~2013-02-28 14:50 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-28 14:42 [ 3.5.y.z extended stable ] Linux 3.5.7.7 stable review Luis Henriques
2013-02-28 14:42 ` [PATCH 001/139] genirq: Avoid deadlock in spurious handling Luis Henriques
2013-02-28 14:42 ` [PATCH 002/139] KVM: s390: Handle hosts not supporting s390-virtio Luis Henriques
2013-02-28 14:42 ` [PATCH 003/139] rc: unlock on error in show_protocols() Luis Henriques
2013-02-28 14:42 ` [PATCH 004/139] v4l: Reset subdev v4l2_dev field to NULL if registration fails Luis Henriques
2013-02-28 14:42 ` [PATCH 005/139] powerpc/eeh: Fix crash when adding a device in a slot with DDW Luis Henriques
2013-02-28 14:42 ` [PATCH 006/139] pcmcia/vrc4171: Add missing spinlock init Luis Henriques
2013-02-28 14:42 ` [PATCH 007/139] USB: DWC3: Generate interrupt on each TRB as default option Luis Henriques
2013-02-28 14:42 ` [PATCH 008/139] usb: dwc3: gadget: fix skip LINK_TRB on ISOC Luis Henriques
2013-02-28 14:42 ` [PATCH 009/139] usb: dwc3: gadget: req->queued must be forced to false in cleanup Luis Henriques
2013-02-28 14:42 ` [PATCH 010/139] Purge existing TLB entries in set_pte_at and ptep_set_wrprotect Luis Henriques
2013-02-28 14:42 ` [PATCH 011/139] ARM: PXA3xx: program the CSMSADRCFG register Luis Henriques
2013-02-28 14:42 ` [PATCH 012/139] ab8500-chargalg: Only root should have write permission on sysfs file Luis Henriques
2013-02-28 14:42 ` [PATCH 013/139] USB: option: add and update Alcatel modems Luis Henriques
2013-02-28 14:42 ` [PATCH 014/139] uprobes/powerpc: Add dependency on single step emulation Luis Henriques
2013-02-28 14:42 ` [PATCH 015/139] drivers/video: fsl-diu-fb: fix pixel formats for 24 and 16 bpp Luis Henriques
2013-02-28 14:42 ` [PATCH 016/139] s390/kvm: Fix store status for ACRS/FPRS Luis Henriques
2013-02-28 14:42 ` [PATCH 017/139] staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors Luis Henriques
2013-02-28 14:42 ` [PATCH 018/139] tty: Prevent deadlock in n_gsm driver Luis Henriques
2013-02-28 14:42 ` [PATCH 019/139] ALSA: usb-audio: fix Roland A-PRO support Luis Henriques
2013-02-28 14:42 ` [PATCH 020/139] x86-32, mm: Rip out x86_32 NUMA remapping code Luis Henriques
2013-02-28 14:42 ` [PATCH 021/139] x86-32, mm: Remove reference to resume_map_numa_kva() Luis Henriques
2013-02-28 14:42 ` [PATCH 022/139] x86-32, mm: Remove reference to alloc_remap() Luis Henriques
2013-02-28 14:42 ` [PATCH 023/139] ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open() Luis Henriques
2013-02-28 14:42 ` [PATCH 024/139] ab8500_btemp: Demote initcall sequence Luis Henriques
2013-02-28 14:42 ` [PATCH 025/139] Driver core: treat unregistered bus_types as having no devices Luis Henriques
2013-02-28 14:42 ` [PATCH 026/139] ALSA: aloop: Fix Oops while PM resume Luis Henriques
2013-02-28 14:42 ` [PATCH 027/139] ASoC: wm2200: correct IN2L and IN3L digital mute Luis Henriques
2013-02-28 14:42 ` [PATCH 028/139] tty: set_termios/set_termiox should not return -EINTR Luis Henriques
2013-02-28 14:42 ` [PATCH 029/139] ARM: i.MX25: clk: parent per5_clk to AHB clock Luis Henriques
2013-02-28 14:43 ` [PATCH 030/139] hrtimer: Prevent hrtimer_enqueue_reprogram race Luis Henriques
2013-02-28 14:43 ` [PATCH 031/139] staging: comedi: check s->async for poll(), read() and write() Luis Henriques
2013-02-28 14:43 ` [PATCH 032/139] ACPI: Add DMI entry for Sony VGN-FW41E_H Luis Henriques
2013-02-28 14:43 ` [PATCH 033/139] timeconst.pl: Eliminate Perl warning Luis Henriques
2013-02-28 14:43 ` [PATCH 034/139] p54usb: corrected USB ID for T-Com Sinus 154 data II Luis Henriques
2013-02-28 14:43 ` [PATCH 035/139] rtlwifi: rtl8192cu: Fix NULL dereference BUG when using new_id Luis Henriques
2013-02-28 14:43 ` [PATCH 036/139] rtlwifi: rtl8192cu: Add new USB ID Luis Henriques
2013-02-28 14:43 ` [PATCH 037/139] USB: storage: properly handle the endian issues of idProduct Luis Henriques
2013-02-28 14:43 ` [PATCH 038/139] ALSA: rme32.c irq enabling after spin_lock_irq Luis Henriques
2013-02-28 14:43 ` [PATCH 039/139] ALSA: ali5451: remove irq enabling in pointer callback Luis Henriques
2013-02-28 14:43 ` [PATCH 040/139] ARM: 7643/1: sched: correct update_sched_clock() Luis Henriques
2013-02-28 14:43 ` [PATCH 041/139] ALSA: hda - Workaround for silent output on Sony Vaio VGC-LN51JGB with ALC889 Luis Henriques
2013-02-28 14:43 ` [PATCH 042/139] x86: Hyper-V: register clocksource only if its advertised Luis Henriques
2013-02-28 14:43 ` [PATCH 043/139] USB: option: add Yota / Megafon M100-1 4g modem Luis Henriques
2013-02-28 14:43 ` [PATCH 044/139] USB: serial: fix null-pointer dereferences on disconnect Luis Henriques
2013-02-28 14:43 ` [PATCH 045/139] idr: idr_for_each_entry() macro Luis Henriques
2013-02-28 14:43 ` [PATCH 046/139] pps: Add pps_lookup_dev() function Luis Henriques
2013-02-28 14:43 ` [PATCH 047/139] pps: Use pps_lookup_dev to reduce ldisc coupling Luis Henriques
2013-02-28 14:43 ` [PATCH 048/139] pps: Fix a use-after free bug when unregistering a source Luis Henriques
2013-02-28 14:43 ` [PATCH 049/139] USB: option: add Huawei "ACM" devices using protocol = vendor Luis Henriques
2013-02-28 14:43 ` [PATCH 050/139] ARM: samsung: fix assembly syntax for new gas Luis Henriques
2013-02-28 14:43 ` [PATCH 051/139] USB: ehci-omap: Don't free gpios that we didn't request Luis Henriques
2013-02-28 14:43 ` [PATCH 052/139] USB: ehci-omap: Fix autoloading of module Luis Henriques
2013-02-28 14:43 ` [PATCH 053/139] USB: usb-storage: unusual_devs update for Super TOP SATA bridge Luis Henriques
2013-02-28 14:43 ` [PATCH 054/139] perf tools: Fix build with bison 2.3 and older Luis Henriques
2013-02-28 14:43 ` [PATCH 055/139] serial: imx: Fix recursive locking bug Luis Henriques
2013-02-28 14:43 ` [PATCH 056/139] posix-cpu-timers: Fix nanosleep task_struct leak Luis Henriques
2013-02-28 14:43 ` [PATCH 057/139] drivercore: Fix ordering between deferred_probe and exiting initcalls Luis Henriques
2013-02-28 14:43 ` [PATCH 058/139] NFSv4.1: Don't decode skipped layoutgets Luis Henriques
2013-02-28 14:43 ` [PATCH 059/139] umount oops when remove blocklayoutdriver first Luis Henriques
2013-02-28 14:43 ` [PATCH 060/139] HID: wiimote: fix nunchuck button parser Luis Henriques
2013-02-28 14:43 ` [PATCH 061/139] cgroup: fix exit() vs rmdir() race Luis Henriques
2013-02-28 14:43 ` [PATCH 062/139] cpuset: fix cpuset_print_task_mems_allowed() vs rename() race Luis Henriques
2013-02-28 14:43 ` [PATCH 063/139] rtlwifi: usb: allocate URB control message setup_packet and data buffer separately Luis Henriques
2013-02-28 14:43 ` [PATCH 064/139] b43: Increase number of RX DMA slots Luis Henriques
2013-02-28 14:43 ` [PATCH 065/139] futex: Revert "futex: Mark get_robust_list as deprecated" Luis Henriques
2013-02-28 14:43 ` [PATCH 066/139] NLM: Ensure that we resend all pending blocking locks after a reclaim Luis Henriques
2013-02-28 14:43 ` [PATCH 067/139] ALSA: hda - hdmi: ELD shouldn't be valid after unplug Luis Henriques
2013-02-28 14:43 ` [PATCH 068/139] xen: close evtchn port if binding to irq fails Luis Henriques
2013-02-28 14:43 ` [PATCH 069/139] xen: Send spinlock IPI to all waiters Luis Henriques
2013-02-28 14:43 ` [PATCH 070/139] ALSA: usb: Fix Processing Unit Descriptor parsers Luis Henriques
2013-02-28 14:43 ` [PATCH 071/139] inotify: remove broken mask checks causing unmount to be EINVAL Luis Henriques
2013-02-28 14:43 ` [PATCH 072/139] fs/block_dev.c: page cache wrongly left invalidated after revalidate_disk() Luis Henriques
2013-02-28 14:43 ` [PATCH 073/139] ocfs2: unlock super lock if lockres refresh failed Luis Henriques
2013-02-28 14:43 ` [PATCH 074/139] drivers/video/backlight/adp88?0_bl.c: fix resume Luis Henriques
2013-02-28 14:43 ` [PATCH 075/139] powerpc/kexec: Disable hard IRQ before kexec Luis Henriques
2013-02-28 14:43 ` [PATCH 076/139] mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may safely schedule Luis Henriques
2013-02-28 14:43 ` [PATCH 077/139] mm: mmu_notifier: make the mmu_notifier srcu static Luis Henriques
2013-02-28 14:43 ` [PATCH 078/139] mmu_notifier_unregister NULL Pointer deref and multiple ->release() callouts Luis Henriques
2013-02-28 14:43 ` [PATCH 079/139] mm/fadvise.c: drain all pagevecs if POSIX_FADV_DONTNEED fails to discard all pages Luis Henriques
2013-02-28 14:43 ` [PATCH 080/139] tmpfs: fix use-after-free of mempolicy object Luis Henriques
2013-02-28 14:43 ` [PATCH 081/139] dca: check against empty dca_domains list before unregister provider Luis Henriques
2013-02-28 14:43 ` [PATCH 082/139] ext4: return ENOMEM if sb_getblk() fails Luis Henriques
2013-02-28 14:43 ` [PATCH 083/139] ext4: check bh in ext4_read_block_bitmap() Luis Henriques
2013-02-28 14:43 ` [PATCH 084/139] quota: autoload the quota_v2 module for QFMT_VFS_V1 quota format Luis Henriques
2013-02-28 14:43 ` [PATCH 085/139] ext4: fix possible use-after-free with AIO Luis Henriques
2013-02-28 14:43 ` [PATCH 086/139] drm/i915: Fix CAGF for HSW Luis Henriques
2013-02-28 14:43 ` [PATCH 087/139] ext4: fix race in ext4_mb_add_n_trim() Luis Henriques
2013-02-28 14:43 ` [PATCH 088/139] UBIFS: fix use of freed ubifs_orphan objects Luis Henriques
2013-02-28 14:43 ` [PATCH 089/139] UBIFS: fix double free of " Luis Henriques
2013-02-28 14:44 ` [PATCH 090/139] drm/radeon/dce6: fix display powergating Luis Henriques
2013-02-28 14:44 ` [PATCH 091/139] vgacon/vt: clear buffer attributes when we load a 512 character font (v2) Luis Henriques
2013-02-28 14:44 ` [PATCH 092/139] fbcon: don't lose the console font across generic->chip driver switch Luis Henriques
2013-02-28 14:44 ` [PATCH 093/139] drm/usb: bind driver to correct device Luis Henriques
2013-02-28 14:44 ` [PATCH 094/139] drm/udl: make usage as a console safer Luis Henriques
2013-02-28 14:44 ` [PATCH 095/139] drm/udl: disable fb_defio by default Luis Henriques
2013-02-28 14:44 ` Luis Henriques [this message]
2013-02-28 14:44 ` [PATCH 097/139] fb: Yet another band-aid for fixing lockdep mess Luis Henriques
2013-02-28 14:44 ` [PATCH 098/139] Revert "drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S" Luis Henriques
2013-02-28 14:44 ` [PATCH 099/139] ext4: fix xattr block allocation/release with bigalloc Luis Henriques
2013-02-28 14:44 ` [PATCH 100/139] target: Fix lookup of dynamic NodeACLs during cached demo-mode operation Luis Henriques
2013-02-28 14:44 ` [PATCH 101/139] target: Add missing mapped_lun bounds checking during make_mappedlun setup Luis Henriques
2013-02-28 14:44 ` [PATCH 102/139] ftrace: Call ftrace cleanup module notifier after all other notifiers Luis Henriques
2013-02-28 14:44 ` [PATCH 103/139] drm: don't add inferred modes for monitors that don't support them Luis Henriques
2013-02-28 14:44 ` [PATCH 104/139] drm/i915: disable shared panel fitter for pipe Luis Henriques
2013-02-28 14:44 ` [PATCH 105/139] drm: Fill depth/bits_per_pixel for C8 format Luis Henriques
2013-02-28 14:44 ` [PATCH 106/139] drm: Use C8 instead of RGB332 when determining the format from depth/bpp Luis Henriques
2013-02-28 14:44 ` [PATCH 107/139] drm/i915: add missing \n to UTS_RELEASE in the error_state Luis Henriques
2013-02-28 14:44 ` [PATCH 108/139] drm/i915: Set i9xx sdvo clock limits according to specifications Luis Henriques
2013-02-28 14:44 ` [PATCH 109/139] drm/i915: inverted brightness quirk for Acer Aspire 4736Z Luis Henriques
2013-02-28 14:44 ` [PATCH 110/139] intel/iommu: force writebuffer-flush quirk on Gen 4 Chipsets Luis Henriques
2013-02-28 14:44 ` [PATCH 111/139] drm/radeon: remove overzealous warning in hdmi handling Luis Henriques
2013-02-28 14:44 ` [PATCH 112/139] x86, efi: Make "noefi" really disable EFI runtime serivces Luis Henriques
2013-02-28 14:44 ` [PATCH 113/139] posix-timer: Don't call idr_find() with out-of-range ID Luis Henriques
2013-02-28 14:44 ` [PATCH 114/139] ext4: fix free clusters calculation in bigalloc filesystem Luis Henriques
2013-02-28 14:44 ` [PATCH 115/139] fs: Fix possible use-after-free with AIO Luis Henriques
2013-02-28 14:44 ` [PATCH 116/139] mmc: sdhci-esdhc-imx: fix host version read Luis Henriques
2013-02-28 14:44 ` [PATCH 117/139] b43: Fix lockdep splat on module unload Luis Henriques
2013-02-28 14:44 ` [PATCH 118/139] ocfs2: fix possible use-after-free with AIO Luis Henriques
2013-02-28 14:44 ` [PATCH 119/139] x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS Luis Henriques
2013-02-28 14:44 ` [PATCH 120/139] igb: Remove artificial restriction on RQDPC stat reading Luis Henriques
2013-02-28 14:44 ` [PATCH 121/139] ptrace/x86: Introduce set_task_blockstep() helper Luis Henriques
2013-02-28 14:44 ` [PATCH 122/139] ptrace/x86: Partly fix set_task_blockstep()->update_debugctlmsr() logic Luis Henriques
2013-02-28 14:44 ` [PATCH 123/139] sunvdc: Fix off-by-one in generic_request() Luis Henriques
2013-02-28 14:44 ` [PATCH 124/139] sparc64: Fix gfp_flags setting in tsb_grow() Luis Henriques
2013-02-28 14:44 ` [PATCH 125/139] xen-pciback: rate limit error messages from xen_pcibk_enable_msi{,x}() Luis Henriques
2013-02-28 14:44 ` [PATCH 126/139] bridge: set priority of STP packets Luis Henriques
2013-02-28 14:44 ` [PATCH 127/139] xen-netback: correctly return errors from netbk_count_requests() Luis Henriques
2013-02-28 14:44 ` [PATCH 128/139] xen-netback: cancel the credit timer when taking the vif down Luis Henriques
2013-02-28 14:44 ` [PATCH 129/139] net: fix a compile error when SOCK_REFCNT_DEBUG is enabled Luis Henriques
2013-02-28 14:44 ` [PATCH 130/139] ipv4: fix a bug in ping_err() Luis Henriques
2013-02-28 14:44 ` [PATCH 131/139] ipv6: use a stronger hash for tcp Luis Henriques
2013-02-28 14:44 ` [PATCH 132/139] sock_diag: Fix out-of-bounds access to sock_diag_handlers[] Luis Henriques
2013-02-28 14:44 ` [PATCH 133/139] ARM: 7635/1: versatile: fix the PCI IRQ regression Luis Henriques
2013-02-28 14:44 ` [PATCH 134/139] net: fix infinite loop in __skb_recv_datagram() Luis Henriques
2013-02-28 14:44 ` [PATCH 135/139] staging: vt6656: Fix URB submitted while active warning Luis Henriques
2013-02-28 14:44 ` [PATCH 136/139] vlan: adjust vlan_set_encap_proto() for its callers Luis Henriques
2013-02-28 14:44 ` [PATCH 137/139] gpio/ich: Add missing spinlock init Luis Henriques
2013-02-28 14:44 ` [PATCH 138/139] staging: comedi: ni_labpc: set up command4 register *after* command3 Luis Henriques
2013-02-28 14:44 ` [PATCH 139/139] staging: comedi: ni_labpc: correct differential channel sequence for AI commands Luis Henriques

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1362062689-2567-97-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@canonical.com \
    --cc=FlorianSchandinat@gmx.de \
    --cc=airlied@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alan@linux.intel.com \
    --cc=jkosina@suse.cz \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sfr@canb.auug.org.au \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®