summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2017-03-09 07:38:02 +0100
committerThorsten Leemhuis <fedora@leemhuis.info>2017-03-09 07:38:02 +0100
commite01b928da0e1984b498a8e5a054d6e7067adadfa (patch)
tree4db3f96f8dd2f4da72fe1dc4b2bb2813fe98af43
parentdfe5d795000eb53b0f56696f7be9e8a12cd76275 (diff)
parenta8888fabaccfcf1fd0885834045f81a7a2b24e6a (diff)
downloadkernel-e01b928da0e1984b498a8e5a054d6e7067adadfa.tar.gz
kernel-e01b928da0e1984b498a8e5a054d6e7067adadfa.tar.xz
kernel-e01b928da0e1984b498a8e5a054d6e7067adadfa.zip
-rw-r--r--0001-tty-n_hdlc-get-rid-of-racy-n_hdlc.tbuf.patch311
-rw-r--r--baseconfig/CONFIG_KPROBE_EVENT1
-rw-r--r--baseconfig/CONFIG_KPROBE_EVENTS1
-rw-r--r--baseconfig/CONFIG_UPROBE_EVENT1
-rw-r--r--baseconfig/CONFIG_UPROBE_EVENTS1
-rw-r--r--baseconfig/x86/CONFIG_NET_VENDOR_SOLARFLARE1
-rw-r--r--gitrev2
-rw-r--r--kernel-aarch64-debug.config4
-rw-r--r--kernel-aarch64.config4
-rw-r--r--kernel-armv7hl-debug.config4
-rw-r--r--kernel-armv7hl-lpae-debug.config4
-rw-r--r--kernel-armv7hl-lpae.config4
-rw-r--r--kernel-armv7hl.config4
-rw-r--r--kernel-i686-PAE.config6
-rw-r--r--kernel-i686-PAEdebug.config6
-rw-r--r--kernel-i686-debug.config6
-rw-r--r--kernel-i686.config6
-rw-r--r--kernel-ppc64-debug.config4
-rw-r--r--kernel-ppc64.config4
-rw-r--r--kernel-ppc64le-debug.config4
-rw-r--r--kernel-ppc64le.config4
-rw-r--r--kernel-ppc64p7-debug.config4
-rw-r--r--kernel-ppc64p7.config4
-rw-r--r--kernel-s390x-debug.config4
-rw-r--r--kernel-s390x.config4
-rw-r--r--kernel-x86_64-debug.config6
-rw-r--r--kernel-x86_64.config6
-rw-r--r--kernel.spec21
-rw-r--r--sources1
29 files changed, 380 insertions, 52 deletions
diff --git a/0001-tty-n_hdlc-get-rid-of-racy-n_hdlc.tbuf.patch b/0001-tty-n_hdlc-get-rid-of-racy-n_hdlc.tbuf.patch
new file mode 100644
index 000000000..b6cd8b211
--- /dev/null
+++ b/0001-tty-n_hdlc-get-rid-of-racy-n_hdlc.tbuf.patch
@@ -0,0 +1,311 @@
+From 1dea7a8061ad9212f4464464a80d0dcd477eceab Mon Sep 17 00:00:00 2001
+From: Alexander Popov <alex.popov@linux.com>
+Date: Tue, 28 Feb 2017 19:28:54 +0300
+Subject: [PATCH 1/1] tty: n_hdlc: get rid of racy n_hdlc.tbuf
+
+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>
+---
+ drivers/tty/n_hdlc.c | 132 +++++++++++++++++++++++++++------------------------
+ 1 file changed, 69 insertions(+), 63 deletions(-)
+
+diff --git a/drivers/tty/n_hdlc.c b/drivers/tty/n_hdlc.c
+index eb27883..728c824 100644
+--- a/drivers/tty/n_hdlc.c
++++ b/drivers/tty/n_hdlc.c
+@@ -114,7 +114,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];
+ };
+@@ -122,8 +122,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;
+ };
+@@ -136,7 +135,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
+@@ -149,7 +147,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;
+@@ -159,6 +156,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);
+@@ -208,16 +207,9 @@ static void flush_tx_queue(struct tty_struct *tty)
+ {
+ 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 = {
+@@ -283,7 +275,6 @@ static void n_hdlc_release(struct n_hdlc *n_hdlc)
+ } else
+ break;
+ }
+- kfree(n_hdlc->tbuf);
+ kfree(n_hdlc);
+
+ } /* end of n_hdlc_release() */
+@@ -402,13 +393,7 @@ static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
+ 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",
+@@ -420,7 +405,7 @@ static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
+
+ /* 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 */
+@@ -435,10 +420,7 @@ static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
+
+ /* 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);
+
+@@ -448,10 +430,12 @@ static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
+ 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;
+ }
+ }
+@@ -749,7 +733,8 @@ static int n_hdlc_tty_ioctl(struct tty_struct *tty, struct file *file,
+ 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);
+@@ -763,8 +748,10 @@ static int n_hdlc_tty_ioctl(struct tty_struct *tty, struct file *file,
+ /* 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);
+@@ -776,8 +763,10 @@ static int n_hdlc_tty_ioctl(struct tty_struct *tty, struct file *file,
+ 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;
+@@ -825,14 +814,14 @@ static unsigned int n_hdlc_tty_poll(struct tty_struct *tty, struct file *filp,
+ 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;
+@@ -856,7 +845,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);
+@@ -884,53 +878,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 =
+--
+2.7.4
+
diff --git a/baseconfig/CONFIG_KPROBE_EVENT b/baseconfig/CONFIG_KPROBE_EVENT
deleted file mode 100644
index 1ba78399b..000000000
--- a/baseconfig/CONFIG_KPROBE_EVENT
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_KPROBE_EVENT=y
diff --git a/baseconfig/CONFIG_KPROBE_EVENTS b/baseconfig/CONFIG_KPROBE_EVENTS
new file mode 100644
index 000000000..2111c5d1a
--- /dev/null
+++ b/baseconfig/CONFIG_KPROBE_EVENTS
@@ -0,0 +1 @@
+CONFIG_KPROBE_EVENTS=y
diff --git a/baseconfig/CONFIG_UPROBE_EVENT b/baseconfig/CONFIG_UPROBE_EVENT
deleted file mode 100644
index aba82daa5..000000000
--- a/baseconfig/CONFIG_UPROBE_EVENT
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_UPROBE_EVENT=y
diff --git a/baseconfig/CONFIG_UPROBE_EVENTS b/baseconfig/CONFIG_UPROBE_EVENTS
new file mode 100644
index 000000000..81f7be965
--- /dev/null
+++ b/baseconfig/CONFIG_UPROBE_EVENTS
@@ -0,0 +1 @@
+CONFIG_UPROBE_EVENTS=y
diff --git a/baseconfig/x86/CONFIG_NET_VENDOR_SOLARFLARE b/baseconfig/x86/CONFIG_NET_VENDOR_SOLARFLARE
new file mode 100644
index 000000000..8b1f0b6bf
--- /dev/null
+++ b/baseconfig/x86/CONFIG_NET_VENDOR_SOLARFLARE
@@ -0,0 +1 @@
+CONFIG_NET_VENDOR_SOLARFLARE=y
diff --git a/gitrev b/gitrev
index 7173ea9a0..b7ba475ea 100644
--- a/gitrev
+++ b/gitrev
@@ -1 +1 @@
-c82be9d2244aacea9851c86f4fb74694c99cd874
+ec3b93ae0bf4742e9cbb40e1964129926c1464e0
diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config
index 901119211..bcc018653 100644
--- a/kernel-aarch64-debug.config
+++ b/kernel-aarch64-debug.config
@@ -2562,7 +2562,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5580,7 +5580,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-aarch64.config b/kernel-aarch64.config
index ee57765e5..e2ffa03d1 100644
--- a/kernel-aarch64.config
+++ b/kernel-aarch64.config
@@ -2543,7 +2543,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5557,7 +5557,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config
index 995fa89b4..d30434604 100644
--- a/kernel-armv7hl-debug.config
+++ b/kernel-armv7hl-debug.config
@@ -2752,7 +2752,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -6109,7 +6109,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config
index c7a10d987..0c521f1a6 100644
--- a/kernel-armv7hl-lpae-debug.config
+++ b/kernel-armv7hl-lpae-debug.config
@@ -2635,7 +2635,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5748,7 +5748,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config
index e10ac3725..fe7ed9997 100644
--- a/kernel-armv7hl-lpae.config
+++ b/kernel-armv7hl-lpae.config
@@ -2616,7 +2616,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5725,7 +5725,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config
index 8050c2de4..188c19a1d 100644
--- a/kernel-armv7hl.config
+++ b/kernel-armv7hl.config
@@ -2733,7 +2733,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -6086,7 +6086,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config
index 6002064ca..cba70f84c 100644
--- a/kernel-i686-PAE.config
+++ b/kernel-i686-PAE.config
@@ -2471,7 +2471,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -3360,7 +3360,7 @@ CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@@ -5314,7 +5314,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config
index 82b8f9ae6..1bb5ebb6c 100644
--- a/kernel-i686-PAEdebug.config
+++ b/kernel-i686-PAEdebug.config
@@ -2491,7 +2491,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -3380,7 +3380,7 @@ CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@@ -5336,7 +5336,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config
index d47c0d982..952b46fee 100644
--- a/kernel-i686-debug.config
+++ b/kernel-i686-debug.config
@@ -2491,7 +2491,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -3380,7 +3380,7 @@ CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@@ -5336,7 +5336,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-i686.config b/kernel-i686.config
index a3c3eed6a..2fa682913 100644
--- a/kernel-i686.config
+++ b/kernel-i686.config
@@ -2471,7 +2471,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -3360,7 +3360,7 @@ CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@@ -5314,7 +5314,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config
index 7b2e3556c..cc7331921 100644
--- a/kernel-ppc64-debug.config
+++ b/kernel-ppc64-debug.config
@@ -2367,7 +2367,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5144,7 +5144,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-ppc64.config b/kernel-ppc64.config
index 39559e713..1d7d6b227 100644
--- a/kernel-ppc64.config
+++ b/kernel-ppc64.config
@@ -2347,7 +2347,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5120,7 +5120,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config
index 93937b4df..d19d366be 100644
--- a/kernel-ppc64le-debug.config
+++ b/kernel-ppc64le-debug.config
@@ -2313,7 +2313,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5073,7 +5073,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config
index f983a8f66..987d2e1c0 100644
--- a/kernel-ppc64le.config
+++ b/kernel-ppc64le.config
@@ -2293,7 +2293,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5049,7 +5049,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config
index 21e07cefb..f62c03e85 100644
--- a/kernel-ppc64p7-debug.config
+++ b/kernel-ppc64p7-debug.config
@@ -2312,7 +2312,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5072,7 +5072,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config
index af1bd6134..d34c46840 100644
--- a/kernel-ppc64p7.config
+++ b/kernel-ppc64p7.config
@@ -2292,7 +2292,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -5048,7 +5048,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config
index 300c8b13f..6f7436a7f 100644
--- a/kernel-s390x-debug.config
+++ b/kernel-s390x-debug.config
@@ -2261,7 +2261,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -4970,7 +4970,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-s390x.config b/kernel-s390x.config
index 297e1a581..8882f74f7 100644
--- a/kernel-s390x.config
+++ b/kernel-s390x.config
@@ -2241,7 +2241,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -4946,7 +4946,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config
index b9cbc61d6..ca3813820 100644
--- a/kernel-x86_64-debug.config
+++ b/kernel-x86_64-debug.config
@@ -2528,7 +2528,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -3403,7 +3403,7 @@ CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@@ -5368,7 +5368,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel-x86_64.config b/kernel-x86_64.config
index e244dcbc6..123b71017 100644
--- a/kernel-x86_64.config
+++ b/kernel-x86_64.config
@@ -2508,7 +2508,7 @@ CONFIG_KGDB_TESTS=y
CONFIG_KGDB=y
CONFIG_KINGSUN_DONGLE=m
# CONFIG_KMX61 is not set
-CONFIG_KPROBE_EVENT=y
+CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
CONFIG_KS0108_DELAY=2
@@ -3383,7 +3383,7 @@ CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@@ -5346,7 +5346,7 @@ CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
CONFIG_UNIX=y
CONFIG_UNUSED_SYMBOLS=y
-CONFIG_UPROBE_EVENT=y
+CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
CONFIG_USB_ACM=m
CONFIG_USB_ADUTUX=m
diff --git a/kernel.spec b/kernel.spec
index 8bfbb341c..2fa64187c 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -44,7 +44,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
-%global baserelease 1
+%global baserelease 2
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@@ -77,7 +77,7 @@ Summary: The Linux kernel
# The rc snapshot level
%global rcrev 1
# The git snapshot level
-%define gitrev 0
+%define gitrev 1
# Set rpm version accordingly
%define rpmversion 4.%{upstream_sublevel}.0
%endif
@@ -133,7 +133,7 @@ Summary: The Linux kernel
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
# and 0 for rawhide (all kernels are debug kernels).
# See also 'make debug' and 'make release'.
-%define debugbuildsenabled 1
+%define debugbuildsenabled 0
# Want to build a vanilla kernel build without any non-upstream patches?
%define with_vanilla %{?_without_vanilla: 0} %{?!_without_vanilla: 1}
@@ -613,6 +613,9 @@ Patch665: netfilter-x_tables-deal-with-bogus-nextoffset-values.patch
# grabbed from mailing list
Patch667: v3-Revert-tty-serial-pl011-add-ttyAMA-for-matching-pl011-console.patch
+# CVE-2017-2636 rhbz 1430049
+Patch668: 0001-tty-n_hdlc-get-rid-of-racy-n_hdlc.tbuf.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -2180,6 +2183,18 @@ fi
#
#
%changelog
+* Thu Mar 09 2017 Laura Abbott <labbott@fedoraproject.org> - 4.11.0-0.rc1.git1.2
+- Bump and build for updated buildroot
+
+* Wed Mar 08 2017 Laura Abbott <labbott@fedoraproject.org> - 4.11.0-0.rc1.git1.1
+- Linux v4.11-rc1-88-gec3b93a
+
+* Wed Mar 08 2017 Laura Abbott <labbott@fedoraproject.org>
+- Reenable debugging options.
+
+* Tue Mar 07 2017 Laura Abbott <labbott@fedoraproject.org>
+- CVE-2017-2636 Race condition access to n_hdlc.tbuf causes double free in n_hdlc_release (rhbz 1430049)
+
* Mon Mar 06 2017 Laura Abbott <labbott@fedoraproject.org> - 4.11.0-0.rc1.git0.1
- Linux v4.11-rc1
diff --git a/sources b/sources
index 442f7a134..c4cc9182c 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,4 @@
SHA512 (linux-4.10.tar.xz) = c3690125a8402df638095bd98a613fcf1a257b81de7611c84711d315cd11e2634ab4636302b3742aedf1e3ba9ce0fea53fe8c7d48e37865d8ee5db3565220d90
SHA512 (perf-man-4.10.tar.gz) = 2c830e06f47211d70a8330961487af73a8bc01073019475e6b6131d3bb8c95658b77ca0ae5f1b44371accf103658bc5a3a4366b3e017a4088a8fd408dd6867e8
SHA512 (patch-4.11-rc1.xz) = a7b11ee0f2faedb2415effd3ad49e5309e30b3e57a49106a18d21628f4d08b988112086b080d4620bd9e00b07ec2751a5bfe05c348cfd343020c39d4d18faa81
+SHA512 (patch-4.11-rc1-git1.xz) = 9e43d4946b74fdc2eaaf343b120c92577ef1b1ad6f928176e77c01c89f8226377bd4d27296ee021bc0b8e612dbc70b7ba6d81fd523871d51f0f984f3124e3336