From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Alexander Popov" <alex.popov@linux.com>
Subject: [PATCH 3.2 202/202] tty: n_hdlc: get rid of racy n_hdlc.tbuf
Date: Sat, 11 Mar 2017 15:15:48 +0000 [thread overview]
Message-ID: <lsq.1489245348.909229471@decadent.org.uk> (raw)
In-Reply-To: <lsq.1489245346.151149165@decadent.org.uk>
3.2.87-rc2 review patch. If anyone has any objections, please let me know.
------------------
From: Alexander Popov <alex.popov@linux.com>
commit 82f2341c94d270421f383641b7cd670e474db56b upstream.
Currently N_HDLC line discipline uses a self-made singly linked list for
data buffers and has n_hdlc.tbuf pointer for buffer retransmitting after
an error.
The commit be10eb7589337e5defbe214dae038a53dd21add8
("tty: n_hdlc add buffer flushing") introduced racy access to n_hdlc.tbuf.
After tx error concurrent flush_tx_queue() and n_hdlc_send_frames() can put
one data buffer to tx_free_buf_list twice. That causes double free in
n_hdlc_release().
Let's use standard kernel linked list and get rid of n_hdlc.tbuf:
in case of tx error put current data buffer after the head of tx_buf_list.
Signed-off-by: Alexander Popov <alex.popov@linux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
drivers/tty/n_hdlc.c | 132 +++++++++++++++++++++++++++------------------------
1 file changed, 69 insertions(+), 63 deletions(-)
--- a/drivers/tty/n_hdlc.c
+++ b/drivers/tty/n_hdlc.c
@@ -115,7 +115,7 @@
#define DEFAULT_TX_BUF_COUNT 3
struct n_hdlc_buf {
- struct n_hdlc_buf *link;
+ struct list_head list_item;
int count;
char buf[1];
};
@@ -123,8 +123,7 @@ struct n_hdlc_buf {
#define N_HDLC_BUF_SIZE (sizeof(struct n_hdlc_buf) + maxframe)
struct n_hdlc_buf_list {
- struct n_hdlc_buf *head;
- struct n_hdlc_buf *tail;
+ struct list_head list;
int count;
spinlock_t spinlock;
};
@@ -137,7 +136,6 @@ struct n_hdlc_buf_list {
* @backup_tty - TTY to use if tty gets closed
* @tbusy - reentrancy flag for tx wakeup code
* @woke_up - FIXME: describe this field
- * @tbuf - currently transmitting tx buffer
* @tx_buf_list - list of pending transmit frame buffers
* @rx_buf_list - list of received frame buffers
* @tx_free_buf_list - list unused transmit frame buffers
@@ -150,7 +148,6 @@ struct n_hdlc {
struct tty_struct *backup_tty;
int tbusy;
int woke_up;
- struct n_hdlc_buf *tbuf;
struct n_hdlc_buf_list tx_buf_list;
struct n_hdlc_buf_list rx_buf_list;
struct n_hdlc_buf_list tx_free_buf_list;
@@ -160,6 +157,8 @@ struct n_hdlc {
/*
* HDLC buffer list manipulation functions
*/
+static void n_hdlc_buf_return(struct n_hdlc_buf_list *buf_list,
+ struct n_hdlc_buf *buf);
static void n_hdlc_buf_put(struct n_hdlc_buf_list *list,
struct n_hdlc_buf *buf);
static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *list);
@@ -209,16 +208,9 @@ static void flush_tx_queue(struct tty_st
{
struct n_hdlc *n_hdlc = tty2n_hdlc(tty);
struct n_hdlc_buf *buf;
- unsigned long flags;
while ((buf = n_hdlc_buf_get(&n_hdlc->tx_buf_list)))
n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, buf);
- spin_lock_irqsave(&n_hdlc->tx_buf_list.spinlock, flags);
- if (n_hdlc->tbuf) {
- n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, n_hdlc->tbuf);
- n_hdlc->tbuf = NULL;
- }
- spin_unlock_irqrestore(&n_hdlc->tx_buf_list.spinlock, flags);
}
static struct tty_ldisc_ops n_hdlc_ldisc = {
@@ -284,7 +276,6 @@ static void n_hdlc_release(struct n_hdlc
} else
break;
}
- kfree(n_hdlc->tbuf);
kfree(n_hdlc);
} /* end of n_hdlc_release() */
@@ -403,13 +394,7 @@ static void n_hdlc_send_frames(struct n_
n_hdlc->woke_up = 0;
spin_unlock_irqrestore(&n_hdlc->tx_buf_list.spinlock, flags);
- /* get current transmit buffer or get new transmit */
- /* buffer from list of pending transmit buffers */
-
- tbuf = n_hdlc->tbuf;
- if (!tbuf)
- tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
-
+ tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
while (tbuf) {
if (debuglevel >= DEBUG_LEVEL_INFO)
printk("%s(%d)sending frame %p, count=%d\n",
@@ -421,7 +406,7 @@ static void n_hdlc_send_frames(struct n_
/* rollback was possible and has been done */
if (actual == -ERESTARTSYS) {
- n_hdlc->tbuf = tbuf;
+ n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf);
break;
}
/* if transmit error, throw frame away by */
@@ -436,10 +421,7 @@ static void n_hdlc_send_frames(struct n_
/* free current transmit buffer */
n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, tbuf);
-
- /* this tx buffer is done */
- n_hdlc->tbuf = NULL;
-
+
/* wait up sleeping writers */
wake_up_interruptible(&tty->write_wait);
@@ -449,10 +431,12 @@ static void n_hdlc_send_frames(struct n_
if (debuglevel >= DEBUG_LEVEL_INFO)
printk("%s(%d)frame %p pending\n",
__FILE__,__LINE__,tbuf);
-
- /* buffer not accepted by driver */
- /* set this buffer as pending buffer */
- n_hdlc->tbuf = tbuf;
+
+ /*
+ * the buffer was not accepted by driver,
+ * return it back into tx queue
+ */
+ n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf);
break;
}
}
@@ -750,7 +734,8 @@ static int n_hdlc_tty_ioctl(struct tty_s
int error = 0;
int count;
unsigned long flags;
-
+ struct n_hdlc_buf *buf = NULL;
+
if (debuglevel >= DEBUG_LEVEL_INFO)
printk("%s(%d)n_hdlc_tty_ioctl() called %d\n",
__FILE__,__LINE__,cmd);
@@ -764,8 +749,10 @@ static int n_hdlc_tty_ioctl(struct tty_s
/* report count of read data available */
/* in next available frame (if any) */
spin_lock_irqsave(&n_hdlc->rx_buf_list.spinlock,flags);
- if (n_hdlc->rx_buf_list.head)
- count = n_hdlc->rx_buf_list.head->count;
+ buf = list_first_entry_or_null(&n_hdlc->rx_buf_list.list,
+ struct n_hdlc_buf, list_item);
+ if (buf)
+ count = buf->count;
else
count = 0;
spin_unlock_irqrestore(&n_hdlc->rx_buf_list.spinlock,flags);
@@ -777,8 +764,10 @@ static int n_hdlc_tty_ioctl(struct tty_s
count = tty_chars_in_buffer(tty);
/* add size of next output frame in queue */
spin_lock_irqsave(&n_hdlc->tx_buf_list.spinlock,flags);
- if (n_hdlc->tx_buf_list.head)
- count += n_hdlc->tx_buf_list.head->count;
+ buf = list_first_entry_or_null(&n_hdlc->tx_buf_list.list,
+ struct n_hdlc_buf, list_item);
+ if (buf)
+ count += buf->count;
spin_unlock_irqrestore(&n_hdlc->tx_buf_list.spinlock,flags);
error = put_user(count, (int __user *)arg);
break;
@@ -826,14 +815,14 @@ static unsigned int n_hdlc_tty_poll(stru
poll_wait(filp, &tty->write_wait, wait);
/* set bits for operations that won't block */
- if (n_hdlc->rx_buf_list.head)
+ if (!list_empty(&n_hdlc->rx_buf_list.list))
mask |= POLLIN | POLLRDNORM; /* readable */
if (test_bit(TTY_OTHER_CLOSED, &tty->flags))
mask |= POLLHUP;
if (tty_hung_up_p(filp))
mask |= POLLHUP;
if (!tty_is_writelocked(tty) &&
- n_hdlc->tx_free_buf_list.head)
+ !list_empty(&n_hdlc->tx_free_buf_list.list))
mask |= POLLOUT | POLLWRNORM; /* writable */
}
return mask;
@@ -859,7 +848,12 @@ static struct n_hdlc *n_hdlc_alloc(void)
spin_lock_init(&n_hdlc->tx_free_buf_list.spinlock);
spin_lock_init(&n_hdlc->rx_buf_list.spinlock);
spin_lock_init(&n_hdlc->tx_buf_list.spinlock);
-
+
+ INIT_LIST_HEAD(&n_hdlc->rx_free_buf_list.list);
+ INIT_LIST_HEAD(&n_hdlc->tx_free_buf_list.list);
+ INIT_LIST_HEAD(&n_hdlc->rx_buf_list.list);
+ INIT_LIST_HEAD(&n_hdlc->tx_buf_list.list);
+
/* allocate free rx buffer list */
for(i=0;i<DEFAULT_RX_BUF_COUNT;i++) {
buf = kmalloc(N_HDLC_BUF_SIZE, GFP_KERNEL);
@@ -887,53 +881,65 @@ static struct n_hdlc *n_hdlc_alloc(void)
} /* end of n_hdlc_alloc() */
/**
+ * n_hdlc_buf_return - put the HDLC buffer after the head of the specified list
+ * @buf_list - pointer to the buffer list
+ * @buf - pointer to the buffer
+ */
+static void n_hdlc_buf_return(struct n_hdlc_buf_list *buf_list,
+ struct n_hdlc_buf *buf)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&buf_list->spinlock, flags);
+
+ list_add(&buf->list_item, &buf_list->list);
+ buf_list->count++;
+
+ spin_unlock_irqrestore(&buf_list->spinlock, flags);
+}
+
+/**
* n_hdlc_buf_put - add specified HDLC buffer to tail of specified list
- * @list - pointer to buffer list
+ * @buf_list - pointer to buffer list
* @buf - pointer to buffer
*/
-static void n_hdlc_buf_put(struct n_hdlc_buf_list *list,
+static void n_hdlc_buf_put(struct n_hdlc_buf_list *buf_list,
struct n_hdlc_buf *buf)
{
unsigned long flags;
- spin_lock_irqsave(&list->spinlock,flags);
-
- buf->link=NULL;
- if (list->tail)
- list->tail->link = buf;
- else
- list->head = buf;
- list->tail = buf;
- (list->count)++;
-
- spin_unlock_irqrestore(&list->spinlock,flags);
-
+
+ spin_lock_irqsave(&buf_list->spinlock, flags);
+
+ list_add_tail(&buf->list_item, &buf_list->list);
+ buf_list->count++;
+
+ spin_unlock_irqrestore(&buf_list->spinlock, flags);
} /* end of n_hdlc_buf_put() */
/**
* n_hdlc_buf_get - remove and return an HDLC buffer from list
- * @list - pointer to HDLC buffer list
+ * @buf_list - pointer to HDLC buffer list
*
* Remove and return an HDLC buffer from the head of the specified HDLC buffer
* list.
* Returns a pointer to HDLC buffer if available, otherwise %NULL.
*/
-static struct n_hdlc_buf* n_hdlc_buf_get(struct n_hdlc_buf_list *list)
+static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *buf_list)
{
unsigned long flags;
struct n_hdlc_buf *buf;
- spin_lock_irqsave(&list->spinlock,flags);
-
- buf = list->head;
+
+ spin_lock_irqsave(&buf_list->spinlock, flags);
+
+ buf = list_first_entry_or_null(&buf_list->list,
+ struct n_hdlc_buf, list_item);
if (buf) {
- list->head = buf->link;
- (list->count)--;
+ list_del(&buf->list_item);
+ buf_list->count--;
}
- if (!list->head)
- list->tail = NULL;
-
- spin_unlock_irqrestore(&list->spinlock,flags);
+
+ spin_unlock_irqrestore(&buf_list->spinlock, flags);
return buf;
-
} /* end of n_hdlc_buf_get() */
static char hdlc_banner[] __initdata =
next prev parent reply other threads:[~2017-03-11 15:23 UTC|newest]
Thread overview: 208+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-10 11:46 [PATCH 3.2 000/199] 3.2.87-rc1 review Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 150/199] net: xilinx_emaclite: fix receive buffer overflow Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 109/199] gro: use min_t() in skb_gro_reset_offset() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 184/199] ipv6: addrconf: Avoid addrconf_disable_change() using RCU read-side lock Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 180/199] ipv6: handle -EFAULT from skb_copy_bits Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 040/199] ext4: reject inodes with negative size Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 185/199] net: socket: fix recvmmsg not returning error from sock_error Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 131/199] USB: serial: pl2303: add ATEN device ID Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 123/199] crypto: api - Clear CRYPTO_ALG_DEAD bit before registering an alg Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 149/199] [media] siano: make it work again with CONFIG_VMAP_STACK Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 116/199] can: ti_hecc: add missing prepare and unprepare of the clock Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 156/199] lib/vsprintf.c: improve sanity check in vsnprintf() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 052/199] scsi: avoid a permanent stop of the scsi device's request queue Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 113/199] svcrpc: don't leak contexts on PROC_DESTROY Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 041/199] kconfig/nconf: Fix hang when editing symbol with a long prompt Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 135/199] ALSA: seq: Don't handle loop timeout at snd_seq_pool_done() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 142/199] scsi: zfcp: fix use-after-free by not tracing WKA port open/close on failed send Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 085/199] iommu/amd: Fix the left value check of cmd buffer Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 070/199] USB: serial: io_ti: fix another NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 039/199] nfs_write_end(): fix handling of short copies Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 072/199] USB: serial: keyspan_pda: verify endpoints at probe Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 168/199] net: clear sk_err_soft in sk_clone_lock() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 141/199] ping: fix a null pointer dereference Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 051/199] scsi: zfcp: fix rport unblock race with LUN recovery Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 095/199] USB: serial: ch341: reinitialize chip on reconfiguration Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 096/199] USB: serial: ch341: fix initial modem-control state Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 128/199] parisc: Don't use BITS_PER_LONG in userspace-exported swab.h header Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 050/199] scsi: zfcp: do not trace pure benign residual HBA responses at default level Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 162/199] ipmr/ip6mr: Initialize the last assert time of mfc entries Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 144/199] l2tp: do not use udp_ioctl() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 148/199] packet: fix races in fanout_add() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 099/199] USB: serial: ch341: fix open error handling Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 074/199] USB: serial: mos7720: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 015/199] usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 029/199] USB: serial: kl5kusb105: fix open error path Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 139/199] ALSA: seq: Fix race at creating a queue Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 102/199] ARM: 8634/1: hw_breakpoint: blacklist Scorpion CPUs Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 164/199] tcp: fix overflow in __tcp_retransmit_skb() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 055/199] net, sched: fix soft lockup in tc_classify Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 100/199] USB: serial: ch341: fix resume after reset Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 081/199] USB: serial: oti6858: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 058/199] net/mlx4: Remove BUG_ON from ICM allocation routine Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 104/199] gro: Disable frag0 optimization on IPv6 ext headers Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 001/199] staging: iio: ad7606: fix improper setting of oversampling pins Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 047/199] IB/mad: Fix an array index check Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 133/199] netlabel: out of bound access in cipso_v4_validate() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 101/199] USB: serial: ch341: fix baud rate and line-control handling Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 151/199] vfs: fix uninitialized flags in splice_to_pipe() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 112/199] i2c: fix kernel memory disclosure in dev interface Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 002/199] net/sched: em_meta: Fix 'meta vlan' to correctly recognize zero VID frames Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 022/199] ext4: use more strict checks for inodes_per_block on mount Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 037/199] USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041 Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 175/199] ip6_tunnel: disable caching when the traffic class is inherited Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 068/199] USB: serial: io_edgeport: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 082/199] USB: serial: pl2303: " Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 091/199] USB: ch341: forward USB errors to USB serial core Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 065/199] xhci: free xhci virtual devices with leaf nodes first Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 019/199] scsi: mvsas: fix command_active typo Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 046/199] block_dev: don't test bdev->bd_contains when it is not stable Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 137/199] catc: Combine failure cleanup code in catc_probe() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 161/199] net: bridge: fix old ioctl unlocked net device walk Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 193/199] igmp: do not remove igmp souce list info when set link down Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 098/199] USB: serial: ch341: fix modem-control and B0 handling Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 010/199] USB: UHCI: report non-PME wakeup signalling for Intel hardware Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 007/199] cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 187/199] ipv6: fix ip6_tnl_parse_tlv_enc_lim() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 188/199] ipv6: pointer math error in ip6_tnl_parse_tlv_enc_lim() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 108/199] USB: serial: ch341: fix control-message error handling Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 173/199] sctp: assign assoc_id earlier in __sctp_connect Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 138/199] catc: Use heap buffer for memory size test Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 122/199] platform/x86: intel_mid_powerbtn: Set IRQ_ONESHOT Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 158/199] route: do not cache fib route info on local routes with oif Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 140/199] btrfs: fix btrfs_compat_ioctl failures on non-compat ioctls Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 044/199] libceph: verify authorize reply on connect Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 030/199] USB: serial: kl5kusb105: abort on open exception path Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 176/199] net: sky2: Fix shutdown crash Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 189/199] tcp: fix 0 divide in __tcp_select_window() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 196/199] Revert "KVM: x86: expose MSR_TSC_AUX to userspace" Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 004/199] perf scripting: Avoid leaking the scripting_context variable Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 075/199] USB: serial: mos7720: fix use-after-free on probe errors Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 190/199] tun: Fix TUN_PKT_STRIP setting Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 167/199] net: sctp, forbid negative length Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 111/199] mmc: mxs-mmc: Fix additional cycles after transmission stop Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 021/199] ext4: fix in-superblock mount options processing Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 042/199] sparc: leon: Fix a retry loop in leon_init_timers() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 178/199] net/dccp: fix use-after-free in dccp_invalid_packet Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 003/199] [media] ite-cir: initialize use_demodulator before using it Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 011/199] crypto: caam - fix AEAD givenc descriptors Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 038/199] hwmon: (ds620) Fix overflows seen when writing temperature limits Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 179/199] netvsc: reduce maximum GSO size Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 083/199] USB: serial: spcp8x5: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 157/199] decnet: Do not build routes to devices without decnet private data Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 049/199] scsi: zfcp: fix use-after-"free" in FC ingress path after TMF Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 084/199] USB: serial: ti_usb_3410_5052: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 054/199] Input: i8042 - add Pegatron touchpad to noloop table Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 094/199] USB: serial: ch341: add register and USB request definitions Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 115/199] ubifs: Fix journal replay wrt. xattr nodes Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 064/199] USB: gadgetfs: fix checks of wTotalLength in config descriptors Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 036/199] ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 092/199] USB: ch341: remove redundant close from open error path Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 069/199] USB: serial: io_ti: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 106/199] sysrq: attach sysrq handler correctly for 32-bit kernel Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 087/199] usb: musb: Fix trying to free already-free IRQ 4 Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 005/199] usb: gadget: composite: correctly initialize ep->maxpacket Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 076/199] USB: serial: mos7720: fix parport use-after-free on probe errors Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 152/199] packet: call fanout_release, while UNREGISTERING a netdev Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 009/199] PCI: Check for PME in targeted sleep state Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 154/199] Fix missing sanity check in /dev/sg Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 060/199] USB: dummy-hcd: fix bug in stop_activity (handle ep0) Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 147/199] futex: Move futex_init() to core_initcall Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 143/199] xen-netfront: Delete rx_refill_timer in xennet_disconnect_backend() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 014/199] powerpc/pci/rpadlpar: Fix device reference leaks Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 132/199] mm, fs: check for fatal signals in do_generic_file_read() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 171/199] dccp: fix out of bound access in dccp_v4_err() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 090/199] ata: sata_mv:- Handle return value of devm_ioremap Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 120/199] powerpc/ptrace: Preserve previous fprs/vsrs on short regset write Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 107/199] vme: Fix wrong pointer utilization in ca91cx42_slave_get Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 024/199] dm crypt: mark key as invalid until properly loaded Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 061/199] usb: gadgetfs: restrict upper bound on device configuration size Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 020/199] ssb: Fix error routine when fallback SPROM fails Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 177/199] net/sched: pedit: make sure that offset is valid Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 006/199] drm/gma500: Add compat ioctl Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 078/199] USB: serial: mos7840: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 194/199] mld: do not remove mld souce list info when set link down Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 045/199] fsnotify: Fix possible use-after-free in inode iteration on umount Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 016/199] ext4: fix mballoc breakage with 64k block size Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 086/199] x86/cpu: Fix bootup crashes by sanitizing the argument of the 'clearcpuid=' command-line option Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 165/199] net: avoid sk_forward_alloc overflows Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 057/199] net/mlx4_en: Fix bad WQE issue Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 097/199] USB: serial: ch341: fix open and resume after B0 Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 012/199] powerpc/ibmebus: Fix device reference leaks in sysfs interface Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 166/199] tcp: fix wrong checksum calculation on MTU probing Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 017/199] ext4: fix stack memory corruption with 64k block size Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 110/199] xhci: fix deadlock at host remove by running watchdog correctly Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 018/199] IB/mlx4: Put non zero value in max_ah device attribute Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 181/199] drop_monitor: add missing call to genlmsg_end Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 035/199] hotplug: Make register and unregister notifier API symmetric Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 093/199] USB: ch341: set tty baud speed according to tty struct Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 198/199] sctp: avoid BUG_ON on sctp_wait_for_sndbuf Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 103/199] gro: Enter slow-path if there is no tailroom Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 053/199] target/iscsi: Fix double free in lio_target_tiqn_addtpg() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 169/199] net: mangle zero checksum in skb_checksum_help() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 114/199] net/mlx4_core: Fix racy CQ (Completion Queue) free Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 062/199] USB: gadgetfs: fix unbounded memory allocation bug Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 134/199] mac80211: Fix adding of mesh vendor IEs Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 155/199] irda: Fix lockdep annotations in hashbin_delete() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 079/199] USB: serial: mos7840: fix misleading interrupt-URB comment Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 136/199] rtl8150: Use heap buffers for all register access Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 028/199] thermal: hwmon: Properly report critical temperature in sysfs Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 063/199] USB: gadgetfs: fix use-after-free bug Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 034/199] USB: cdc-acm: add device id for GW Instek AFG-125 Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 071/199] USB: serial: iuu_phoenix: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 118/199] nbd: fix use-after-free of rq/bio in the xmit path Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 199/199] sctp: deny peeloff operation on asocs with threads sleeping on it Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 195/199] igmp, mld: Fix memory leak in igmpv3/mld_del_delrec() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 191/199] tun: read vnet_hdr_sz once Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 008/199] xfs: fix up xfs_swap_extent_forks inline extent handling Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 080/199] USB: serial: omninet: fix NULL-derefs at open and disconnect Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 192/199] macvtap: read vnet_hdr_size once Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 032/199] powerpc/ps3: Fix system hang with GCC 5 builds Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 125/199] mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 088/199] USB: fix problems with duplicate endpoint addresses Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 124/199] USB: serial: option: add device ID for HP lt2523 (Novatel E371) Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 159/199] sch_htb: update backlog as well Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 126/199] USB: Add quirk for WORLDE easykey.25 MIDI keyboard Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 105/199] ocfs2: fix crash caused by stale lvb with fsdlm plugin Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 031/199] drivers: base: dma-mapping: Fix typo in dmam_alloc_non_coherent comments Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 119/199] nbd: only set MSG_MORE when we have more to send Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 182/199] drop_monitor: consider inserted data in genlmsg_end Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 146/199] net/llc: avoid BUG_ON() in skb_orphan() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 127/199] sysctl: fix proc_doulongvec_ms_jiffies_minmax() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 013/199] powerpc/ibmebus: Fix further device reference leaks Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 163/199] net: fix sk_mem_reclaim_partial() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 172/199] ipv6: dccp: fix out of bound access in dccp_v6_err() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 023/199] ext4: add sanity checking to count_overhead() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 073/199] USB: serial: kobil_sct: fix NULL-deref in write Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 117/199] ceph: fix bad endianness handling in parse_reply_info_extra Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 186/199] can: Fix kernel panic at security_sock_rcv_skb Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 183/199] igmp: Make igmp group member RFC 3376 compliant Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 145/199] net/sock: Add sock_efree() function Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 077/199] USB: serial: mos7720: fix parallel probe Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 067/199] USB: serial: garmin_gps: fix memory leak on failed URB submit Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 066/199] USB: serial: cyberjack: fix NULL-deref at open Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 027/199] ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream() Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 026/199] regmap: cache: Remove unused 'blksize' variable Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 130/199] ARM: 8643/3: arm/ptrace: Preserve previous registers for short regset write Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 056/199] net: korina: Fix NAPI versus resources freeing Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 043/199] s390/vmlogrdr: fix IUCV buffer allocation Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 160/199] sch_dsmark: update backlog as well Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 197/199] ipc/shm: Fix shmat mmap nil-page protection Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 089/199] HID: hid-cypress: validate length of report Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 174/199] sock: fix sendmmsg for partial sendmsg Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 129/199] can: bcm: fix hrtimer/tasklet termination in bcm op removal Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 025/199] [media] DaVinci-VPFE-Capture: fix error handling Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 121/199] powerpc: Ignore reserved field in DCSR and PVR reads and writes Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 170/199] dccp: do not send reset to already closed sockets Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 153/199] packet: Do not call fanout_release from atomic contexts Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 033/199] Btrfs: fix tree search logic when replaying directory entry deletes Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 048/199] IB/multicast: Check ib_find_pkey() return value Ben Hutchings
2017-03-10 11:46 ` [PATCH 3.2 059/199] usb: gadget: composite: Test get_alt() presence instead of set_alt() Ben Hutchings
2017-03-10 12:47 ` [PATCH 3.2 000/199] 3.2.87-rc1 review Guenter Roeck
2017-03-10 13:06 ` Ben Hutchings
2017-03-11 15:15 ` [PATCH 3.2 000/202] 3.2.87-rc2 review Ben Hutchings
2017-03-11 15:15 ` [PATCH 3.2 201/202] list: introduce list_first_entry_or_null Ben Hutchings
2017-03-11 15:15 ` [PATCH 3.2 200/202] TTY: n_hdlc, fix lockdep false positive Ben Hutchings
2017-03-11 15:15 ` Ben Hutchings [this message]
2017-03-11 16:52 ` [PATCH 3.2 000/202] 3.2.87-rc2 review Ben Hutchings
2017-03-12 18:18 ` Guenter Roeck
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=lsq.1489245348.909229471@decadent.org.uk \
--to=ben@decadent.org.uk \
--cc=akpm@linux-foundation.org \
--cc=alex.popov@linux.com \
--cc=gregkh@linuxfoundation.org \
--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