diff options
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 @@ -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 @@ -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 |