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: Dirkjan Bussink <dirkjan.bussink@nedap.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 018/139] tty: Prevent deadlock in n_gsm driver
Date: Thu, 28 Feb 2013 14:42:48 +0000	[thread overview]
Message-ID: <1362062689-2567-19-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: Dirkjan Bussink <d.bussink@gmail.com>

commit 4d9b109060f690f5c835130ff54165ae157b3087 upstream.

This change fixes a deadlock when the multiplexer is closed while there
are still client side ports open.

When the multiplexer is closed and there are active tty's it tries to
close them with tty_vhangup. This has a problem though, because
tty_vhangup needs the tty_lock. This patch changes it to unlock the
tty_lock before attempting the hangup and relocks afterwards. The
additional call to tty_port_tty_set is needed because otherwise the
port stays active because of the reference counter.

This change also exposed another problem that other code paths don't
expect that the multiplexer could have been closed. This patch also adds
checks for these cases in the gsmtty_ class of function that could be
called.

The documentation explicitly states that "first close all virtual ports
before closing the physical port" but we've found this to not always
reality in our field situations. The GPRS / UTMS modem sometimes crashes
and needs a power cycle in that case which means cleanly shutting down
everything is not always possible. This change makes it much more robust
for our situation where at least the system is recoverable with this patch
and doesn't hang in a deadlock situation inside the kernel.

The patch is against the long term support kernel (3.4.27) and should
apply cleanly to more recent branches. Tested with a Telit GE864-QUADV2
and Telit HE910 modem.

Signed-off-by: Dirkjan Bussink <dirkjan.bussink@nedap.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ luis: adjust context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 drivers/tty/n_gsm.c | 42 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 90dff82..4056483 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -1692,6 +1692,8 @@ static inline void dlci_put(struct gsm_dlci *dlci)
 	kref_put(&dlci->ref, gsm_dlci_free);
 }
 
+static void gsm_destroy_network(struct gsm_dlci *dlci);
+
 /**
  *	gsm_dlci_release		-	release DLCI
  *	@dlci: DLCI to destroy
@@ -1705,9 +1707,19 @@ static void gsm_dlci_release(struct gsm_dlci *dlci)
 {
 	struct tty_struct *tty = tty_port_tty_get(&dlci->port);
 	if (tty) {
+		mutex_lock(&dlci->mutex);
+		gsm_destroy_network(dlci);
+		mutex_unlock(&dlci->mutex);
+
+		/* tty_vhangup needs the tty_lock, so unlock and
+		   relock after doing the hangup. */
+		tty_unlock(tty);
 		tty_vhangup(tty);
+		tty_lock(tty);
+		tty_port_tty_set(&dlci->port, NULL);
 		tty_kref_put(tty);
 	}
+	dlci->state = DLCI_CLOSED;
 	dlci_put(dlci);
 }
 
@@ -2933,6 +2945,8 @@ static void gsmtty_close(struct tty_struct *tty, struct file *filp)
 
 	if (dlci == NULL)
 		return;
+	if (dlci->state == DLCI_CLOSED)
+		return;
 	mutex_lock(&dlci->mutex);
 	gsm_destroy_network(dlci);
 	mutex_unlock(&dlci->mutex);
@@ -2951,6 +2965,8 @@ out:
 static void gsmtty_hangup(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return;
 	tty_port_hangup(&dlci->port);
 	gsm_dlci_begin_close(dlci);
 }
@@ -2958,9 +2974,12 @@ static void gsmtty_hangup(struct tty_struct *tty)
 static int gsmtty_write(struct tty_struct *tty, const unsigned char *buf,
 								    int len)
 {
+	int sent;
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 	/* Stuff the bytes into the fifo queue */
-	int sent = kfifo_in_locked(dlci->fifo, buf, len, &dlci->lock);
+	sent = kfifo_in_locked(dlci->fifo, buf, len, &dlci->lock);
 	/* Need to kick the channel */
 	gsm_dlci_data_kick(dlci);
 	return sent;
@@ -2969,18 +2988,24 @@ static int gsmtty_write(struct tty_struct *tty, const unsigned char *buf,
 static int gsmtty_write_room(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 	return TX_SIZE - kfifo_len(dlci->fifo);
 }
 
 static int gsmtty_chars_in_buffer(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 	return kfifo_len(dlci->fifo);
 }
 
 static void gsmtty_flush_buffer(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return;
 	/* Caution needed: If we implement reliable transport classes
 	   then the data being transmitted can't simply be junked once
 	   it has first hit the stack. Until then we can just blow it
@@ -2999,6 +3024,8 @@ static void gsmtty_wait_until_sent(struct tty_struct *tty, int timeout)
 static int gsmtty_tiocmget(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 	return dlci->modem_rx;
 }
 
@@ -3008,6 +3035,8 @@ static int gsmtty_tiocmset(struct tty_struct *tty,
 	struct gsm_dlci *dlci = tty->driver_data;
 	unsigned int modem_tx = dlci->modem_tx;
 
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 	modem_tx &= ~clear;
 	modem_tx |= set;
 
@@ -3026,6 +3055,8 @@ static int gsmtty_ioctl(struct tty_struct *tty,
 	struct gsm_netconfig nc;
 	int index;
 
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 	switch (cmd) {
 	case GSMIOC_ENABLE_NET:
 		if (copy_from_user(&nc, (void __user *)arg, sizeof(nc)))
@@ -3052,6 +3083,9 @@ static int gsmtty_ioctl(struct tty_struct *tty,
 
 static void gsmtty_set_termios(struct tty_struct *tty, struct ktermios *old)
 {
+	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return;
 	/* For the moment its fixed. In actual fact the speed information
 	   for the virtual channel can be propogated in both directions by
 	   the RPN control message. This however rapidly gets nasty as we
@@ -3063,6 +3097,8 @@ static void gsmtty_set_termios(struct tty_struct *tty, struct ktermios *old)
 static void gsmtty_throttle(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return;
 	if (tty->termios->c_cflag & CRTSCTS)
 		dlci->modem_tx &= ~TIOCM_DTR;
 	dlci->throttled = 1;
@@ -3073,6 +3109,8 @@ static void gsmtty_throttle(struct tty_struct *tty)
 static void gsmtty_unthrottle(struct tty_struct *tty)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
+	if (dlci->state == DLCI_CLOSED)
+		return;
 	if (tty->termios->c_cflag & CRTSCTS)
 		dlci->modem_tx |= TIOCM_DTR;
 	dlci->throttled = 0;
@@ -3084,6 +3122,8 @@ static int gsmtty_break_ctl(struct tty_struct *tty, int state)
 {
 	struct gsm_dlci *dlci = tty->driver_data;
 	int encode = 0;	/* Off */
+	if (dlci->state == DLCI_CLOSED)
+		return -EINVAL;
 
 	if (state == -1)	/* "On indefinitely" - we can't encode this
 				    properly */
-- 
1.8.1.2


  parent reply	other threads:[~2013-02-28 14:46 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 ` Luis Henriques [this message]
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 ` [PATCH 096/139] fb: rework locking to fix lock ordering on takeover Luis Henriques
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-19-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@canonical.com \
    --cc=dirkjan.bussink@nedap.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --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®