summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado2017-03-17 17:42:28 -0300
committerAndré Fabian Silva Delgado2017-03-17 17:42:28 -0300
commit371e4df867f61d7fd8c9d61318a081859603db01 (patch)
tree187e00cdc264661257c859b6142e99cc7d89ad03
parent664541d19e4db2a37c498c8700be8b7288fda025 (diff)
downloadaur-371e4df867f61d7fd8c9d61318a081859603db01.tar.gz
Update to 4.10.2_gnu-1
-rw-r--r--.SRCINFO46
-rw-r--r--0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch6
-rw-r--r--0001-tty-n_hdlc-get-rid-of-racy-n_hdlc_tbuf.patch311
-rw-r--r--0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch8
-rw-r--r--0003-SMILE-Plug-device-tree-file.patch8
-rw-r--r--0004-fix-mvsdio-eMMC-timing.patch6
-rw-r--r--0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch7
-rw-r--r--0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch6
-rw-r--r--0007-set-default-cubietruck-led-triggers.patch6
-rw-r--r--0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch6
-rw-r--r--0009-drm-armada-tracing-fix.patch6
-rw-r--r--0010-disable-USB3-port-on-ODROID-XU.patch27
-rw-r--r--PKGBUILD47
-rw-r--r--config.armv7h4
14 files changed, 425 insertions, 69 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0fa591723890..e9511d80f3ec 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
# Generated by mksrcinfo v8
-# Tue Feb 28 10:28:48 UTC 2017
+# Fri Mar 17 20:41:20 UTC 2017
pkgbase = linux-libre
- pkgver = 4.10.1_gnu
+ pkgver = 4.10.2_gnu
pkgrel = 1
url = https://linux-libre.fsfla.org/
arch = i686
@@ -17,8 +17,8 @@ pkgbase = linux-libre
options = !strip
source = https://linux-libre.fsfla.org/pub/linux-libre/releases/4.10-gnu/linux-libre-4.10-gnu.tar.xz
source = https://linux-libre.fsfla.org/pub/linux-libre/releases/4.10-gnu/linux-libre-4.10-gnu.tar.xz.sign
- source = https://linux-libre.fsfla.org/pub/linux-libre/releases/4.10.1-gnu/patch-4.10-gnu-4.10.1-gnu.xz
- source = https://linux-libre.fsfla.org/pub/linux-libre/releases/4.10.1-gnu/patch-4.10-gnu-4.10.1-gnu.xz.sign
+ source = https://linux-libre.fsfla.org/pub/linux-libre/releases/4.10.2-gnu/patch-4.10-gnu-4.10.2-gnu.xz
+ source = https://linux-libre.fsfla.org/pub/linux-libre/releases/4.10.2-gnu/patch-4.10-gnu-4.10.2-gnu.xz.sign
source = https://repo.parabola.nu/other/linux-libre/logos/logo_linux_clut224.ppm
source = https://repo.parabola.nu/other/linux-libre/logos/logo_linux_clut224.ppm.sig
source = https://repo.parabola.nu/other/linux-libre/logos/logo_linux_mono.pbm
@@ -30,10 +30,11 @@ pkgbase = linux-libre
source = config.armv7h
source = 99-linux.hook
source = linux.preset
+ source = 0001-tty-n_hdlc-get-rid-of-racy-n_hdlc_tbuf.patch
source = 0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch
source = 0002-fix-Atmel-maXTouch-touchscreen-support.patch
- source = https://repo.parabola.nu/other/rcn-libre/patches/4.10.1/rcn-libre-4.10.1-armv7-x1.patch
- source = https://repo.parabola.nu/other/rcn-libre/patches/4.10.1/rcn-libre-4.10.1-armv7-x1.patch.sig
+ source = https://repo.parabola.nu/other/rcn-libre/patches/4.10.2/rcn-libre-4.10.2-armv7-x1.patch
+ source = https://repo.parabola.nu/other/rcn-libre/patches/4.10.2/rcn-libre-4.10.2-armv7-x1.patch.sig
source = 0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch
source = 0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
source = 0003-SMILE-Plug-device-tree-file.patch
@@ -43,9 +44,10 @@ pkgbase = linux-libre
source = 0007-set-default-cubietruck-led-triggers.patch
source = 0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch
source = 0009-drm-armada-tracing-fix.patch
+ source = 0010-disable-USB3-port-on-ODROID-XU.patch
sha512sums = 44d1774a1d43a15322297d351737fbcbf92c6f433266ce2b17587437d433562cf5811fdae48fafd5a8e00d18ed9ac2e1ad4b12a657f322eb234384316ad131e0
sha512sums = SKIP
- sha512sums = 03669d17c68d1a845db36dcc953fd98450c692d97c4273c91ae17ad5e4ec395834f6320e4862ffe5fff7eecbe2ea5888cbe3c9c9093dd16fad8603db756b8053
+ sha512sums = 02e518e8192f7b71dcb3724d1b9f4bc502d210387548a77a8edf6900281ccd13de55986382c9be00afacf0dc0ca2f13a70327be9230b1c93d95bc917cfd17643
sha512sums = SKIP
sha512sums = 13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3
sha512sums = SKIP
@@ -55,22 +57,24 @@ pkgbase = linux-libre
sha512sums = SKIP
sha512sums = 9f402a1a61887d85966108446bbc71f9b98c44e09ed226ea21fd01edea992c55168b991ee8207b4635663a07d3df4babc379491eed65695440772e46a6dc015a
sha512sums = bc6b1208be9a939e4831e91c27df1553510e359b4915afb071b3816a97cde9c65f306f61a9bee0a624f6439c232b102e62572126e9e1d0cf31715dacfdaa85fc
- sha512sums = d2159ac8a81de606b44bbf19ffe9f2af907bc71a88043f3b6bb1195b69ab6cb8c6fdda8c40b41a0c8764e44a82dd2ece4a702a236e20bf764d3b3f962fd7e5c3
+ sha512sums = 82b94244d3c641921b0e04da28faba10bc6b04ce94258ad01174166ed9c99acced8895d979c120cacf9cc9fcad4e1d7f57c0af655316c73cc3b093f2fd48d890
sha512sums = d6faa67f3ef40052152254ae43fee031365d0b1524aa0718b659eb75afc21a3f79ea8d62d66ea311a800109bed545bc8f79e8752319cd378eef2cbd3a09aba22
sha512sums = 2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf
+ sha512sums = 397fc751697cc4e2ceb7e6d854f5e7fc115ed8511df406ffe5d8f80afeec385ba64cd28c4666bb206612fdcd7a578b60ca6ff125c2138c615aee6135d86b0197
sha512sums = 02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af
sha512sums = b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168
- sha512sums = 85983a22bf5aae49504523062bf73cd278862823df24b7f176915c4fbf5854d9bc3f512cce402accff04793f86f855c45a3264d77c5025af253a56a26eca267b
+ sha512sums = 08f47087aa71d1aca8dc4d5b7bb28cff3a7bb99f5bd64fc47664d3927ef470e256d22018da0726c186d9f9d19711c91ae4f3333aa161a0b18c082b5b60e5d74d
sha512sums = SKIP
- sha512sums = de2caaf68d817582f70b7382566108cdfd54557675172d88c0aef45a9bad9c2c4c2cbae4b4cd393a083f1f78563a05f7280dc8553f8f91cb214f88f0c4c3790c
- sha512sums = 7815bb6eded4f0fd3cb6eac3849d6f69728d4e9f5ae83064d6c1f319a5771f49d5fafad3b62c68f5d5c1f8643202e8968866005c50d069904ff57ee6dd4ce39d
- sha512sums = cb767339d5ad2844da971dd1c8f0eed26a2aee3c08747f7d116965872cba44abb73a393408fbec420933b1d4f4b9837d12100522c1b89a376a2defc6b470d971
- sha512sums = 764d174fde06916986a46b274b63f8978ad2229eced9502a46cdb95bfe70e5e4e172b37002e19c44d1cf0b573a8c9f35b806b3f3c4d00aed6a64e41216d5a00f
- sha512sums = 1e6682960231c653c8dbcc632620adbb3bb8aa6647a58b9d1f98446ae8829c216960732e71e24561ba4dffa24cd2f868bb59ed2c367ddf5f2b8b503fc20e56ba
- sha512sums = 97cb0a576375bb4eed5f1328d1e61e912c3f7eed5f7c45e2d41a59f7f3429d23b267b3f37506dc52efa3a7f9de62fe59b629970bcc1e1a8b1ef74bf6e7e3196e
- sha512sums = 7ce4d348c3cdf218dd9ded4884d7e5712b0d18bd17d897a2fc1a6507e776b66c8ead0018437c735e1080f2d4a114abb15bcf24a0d404937ada231d7c04a2814f
- sha512sums = a62714d52cd7f7979e69d7f26974dec7dd5f133ed6fab3d56aa0b7b232ce7dbab0f6a0dbd69b2c424313a19a218d0e96433968709104be0796549c582090ec1a
- sha512sums = cfb61d1e09aba91c956f187828219ef0e86cf29455e1d2fa905a2a68ba4619b16acc529a721cbd55efcd8dbf548da0df0d7afb705081b41bcebf7c2398505f2b
+ sha512sums = dd4e2482d6e3d91d00e37e665933515a4fa876d39c036d639f21c48a09f03202f3dec0dbe04b7c60c4b7e1f49617b5f94ace688afacbe33dc6d6818c0c797031
+ sha512sums = cf0a3061cef91c04fa5e6d50c4ee235f817cb97f6b7a77f42d42ada707e71bd9731dfafdfcf396e767362998acd8b98ad9942a989c2dd8457e57177c354ec7d2
+ sha512sums = 6866b84fac93df7eb669f71ed0041270a5f7254bddf6e4f3de7820dbf5696f09eb3051843f7f48d9ae418487ed765b203eccf4bf399d0ca95061ba0399043839
+ sha512sums = f41af76bbb6727fa415bb4e7e5da1896a5f01316354d5f34bc55b3f4451e571f2302c4e66c2b949bb330241d4187d507faba83b1584907d1b66a82a60a1c8923
+ sha512sums = ddf31c7db4c873c258763ddff4419315af3d06dc28f14f8d48b0d99e35ecd953d02a992da414c8dd1b9fd9f2bb12580393a541a3064051ece1fa6e173fc52ba2
+ sha512sums = df749d4d4f71b4514f526941af592cc11eec13214375e7c0088b84558b56508bf444ea70fb93a0c114a03cd4efd559ea816deb670064fa91f02c7b7f7483d57d
+ sha512sums = d1c6d28d22724f9d3700f5d8350164ddba7e6f64980a8d25ebb7cbcffa83250125f337e91510a925deb10bc1e30ac999cb18f3427e051e00d82f5bbaf8a848ec
+ sha512sums = d14cedaf275ea1337b18a75d72b7610cb96f982896542edc0a59306c10888d62594b8a36197e33d079e6d5a9b5d20f46892b96a2d3aab5258013f0e5991e3f9b
+ sha512sums = 0a806db7df7761f5dc64b8a3b3860c6c9216cecfe135778f3019e51e1245bcc34980c6124a11447285b18e284547ffc57a4b2c1290b4dd91a55b0237a7007cc9
+ sha512sums = c02d0e1d6b399c84323937a81b702fd3ac7c6f9e08254d1697858f829fd045ee33d5952d42eb22558c290efe7fd5d8fdd7695d8ef3526742a67052fb9e303ebe
makedepends_armv7h = git
pkgname = linux-libre
@@ -81,20 +85,20 @@ pkgname = linux-libre
depends = kmod
depends = mkinitcpio>=0.7
optdepends = crda: to set the correct wireless channels of your country
- provides = linux=4.10.1
+ provides = linux=4.10.2
conflicts =
replaces =
backup = etc/mkinitcpio.d/linux-libre.preset
pkgname = linux-libre-headers
pkgdesc = Header files and scripts for building modules for Linux-libre kernel
- provides = linux-headers=4.10.1
+ provides = linux-headers=4.10.2
conflicts =
replaces =
pkgname = linux-libre-docs
pkgdesc = Kernel hackers manual - HTML documentation that comes with the Linux-libre kernel
- provides = linux-docs=4.10.1
+ provides = linux-docs=4.10.2
conflicts =
replaces =
diff --git a/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch b/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch
index d8af5cd53408..9581d071bc19 100644
--- a/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch
+++ b/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch
@@ -1,7 +1,7 @@
-From b9f6d275e5af76eb4e32beb66480e8f53a7d1685 Mon Sep 17 00:00:00 2001
+From 2a2ab2b8ed60e043da32ddac674d7c58a63c1c8f Mon Sep 17 00:00:00 2001
From: Willy Tarreau <w@xxxxxx>
Date: Sun, 2 Dec 2012 19:59:28 +0100
-Subject: [PATCH 1/9] ARM: atags: add support for Marvell's u-boot
+Subject: [PATCH 01/10] ARM: atags: add support for Marvell's u-boot
Marvell uses a specific atag in its u-boot which includes among other
information the MAC addresses for up to 4 network interfaces.
@@ -47,5 +47,5 @@ index 979ff4016404..d1d0c1950fa4 100644
};
--
-2.11.0
+2.11.1
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 000000000000..0c13c98674dc
--- /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/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
index ac44398c6f05..9f31aa5809b7 100644
--- a/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
+++ b/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch
@@ -1,8 +1,8 @@
-From 3573189a2857cd66d248fb79e48a45ae70399c0b Mon Sep 17 00:00:00 2001
+From 2890deaac9ce485f0b20211872784b0071d82717 Mon Sep 17 00:00:00 2001
From: Willy Tarreau <w@xxxxxx>
Date: Sun, 2 Dec 2012 19:56:58 +0100
-Subject: [PATCH 2/9] ARM: atags/fdt: retrieve MAC addresses from Marvell boot
- loader
+Subject: [PATCH 02/10] ARM: atags/fdt: retrieve MAC addresses from Marvell
+ boot loader
The atags are parsed and if a Marvell atag is found, up to 4 MAC
addresses are extracted there and assigned to node aliases eth0..3
@@ -43,5 +43,5 @@ index 9448aa0c6686..ac7b6ae6c00f 100644
}
--
-2.11.0
+2.11.1
diff --git a/0003-SMILE-Plug-device-tree-file.patch b/0003-SMILE-Plug-device-tree-file.patch
index 931c95877440..9ad4ac228e9b 100644
--- a/0003-SMILE-Plug-device-tree-file.patch
+++ b/0003-SMILE-Plug-device-tree-file.patch
@@ -1,7 +1,7 @@
-From 94679e069c9def09906a6b5f85c58ebd981ff615 Mon Sep 17 00:00:00 2001
+From fcd4be4707777620a01f1b1097fdb8f93e4c1077 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Fri, 5 Sep 2014 15:41:19 -0600
-Subject: [PATCH 3/9] SMILE Plug device tree file
+Subject: [PATCH 03/10] SMILE Plug device tree file
This adds a dts file for the SMILE Plug, which only differs from the Mirabox
dts with the LED definitions.
@@ -14,7 +14,7 @@ Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index f10fe8526239..f00e858de082 100644
+index 01d178a2009f..85f6d6661443 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -935,6 +935,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \
@@ -205,5 +205,5 @@ index 000000000000..d01308ab848b
+ };
+};
--
-2.11.0
+2.11.1
diff --git a/0004-fix-mvsdio-eMMC-timing.patch b/0004-fix-mvsdio-eMMC-timing.patch
index bd053eb6b31c..189d73b44368 100644
--- a/0004-fix-mvsdio-eMMC-timing.patch
+++ b/0004-fix-mvsdio-eMMC-timing.patch
@@ -1,7 +1,7 @@
-From 4831d1d37e42c17f97ae238d6bbcfda7c8dac028 Mon Sep 17 00:00:00 2001
+From 14c522e0476341f7684cef8b1ad0c03a3e4509e6 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Fri, 5 Sep 2014 15:43:56 -0600
-Subject: [PATCH 4/9] fix mvsdio eMMC timing
+Subject: [PATCH 04/10] fix mvsdio eMMC timing
These changes from Globalscale change the MMC timing to allow the eMMC versions
of the Mirabox and SMILE Plug to work.
@@ -34,5 +34,5 @@ index 42296e55b9de..e5ce6d27ec82 100644
host->clock = ios->clock;
host->ns_per_clk = 1000000000 / (host->base_clock / (m+1));
--
-2.11.0
+2.11.1
diff --git a/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
index 0434d079403b..eb5f11b8b520 100644
--- a/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
+++ b/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch
@@ -1,7 +1,8 @@
-From 079ecb4f368b983d08e7c19daaf64311b8814ee3 Mon Sep 17 00:00:00 2001
+From 92ba4f4447bc5ed008f449e2d44ed339df3f4d0f Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Tue, 18 Feb 2014 01:43:50 -0300
-Subject: [PATCH 5/9] net/smsc95xx: Allow mac address to be set as a parameter
+Subject: [PATCH 05/10] net/smsc95xx: Allow mac address to be set as a
+ parameter
---
drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -91,5 +92,5 @@ index 831aa33d078a..03625547d794 100644
/* maybe the boot loader passed the MAC address in devicetree */
--
-2.11.0
+2.11.1
diff --git a/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch b/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch
index 28e4ad8e87e9..ebf56d216174 100644
--- a/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch
+++ b/0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch
@@ -1,7 +1,7 @@
-From f8ed0685d6606fe27a3e8fc8aa3744f17f9e1956 Mon Sep 17 00:00:00 2001
+From 73eeb8c53d5402e318c7414ca89197faacc82a7d Mon Sep 17 00:00:00 2001
From: dobatog <dobatog@gmail.com>
Date: Thu, 26 Feb 2015 12:32:27 +0100
-Subject: [PATCH 6/9] ARM: TLV320AIC23 SoC Audio Codec: Fix errors reported
+Subject: [PATCH 06/10] ARM: TLV320AIC23 SoC Audio Codec: Fix errors reported
related to input routing signals.
The following patch, based on stable v3.19, corrects the errors that are reported in the boot trace in reference to the Input Signals of the audio codec TLV320AIC23:
@@ -45,5 +45,5 @@ index 410cae0f2060..0bb8e2602d8e 100644
/* input mux */
{"Capture Source", "Line", "Line Input"},
--
-2.11.0
+2.11.1
diff --git a/0007-set-default-cubietruck-led-triggers.patch b/0007-set-default-cubietruck-led-triggers.patch
index a13f2e1f8a78..e4b8868bef11 100644
--- a/0007-set-default-cubietruck-led-triggers.patch
+++ b/0007-set-default-cubietruck-led-triggers.patch
@@ -1,7 +1,7 @@
-From 6a7d1d2fab44c1830903b7af1a8a844ce4925763 Mon Sep 17 00:00:00 2001
+From ab716cec125455302c0e09ce6709033933b618df Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Sat, 14 Feb 2015 12:32:27 +0100
-Subject: [PATCH 7/9] set default cubietruck led triggers
+Subject: [PATCH 07/10] set default cubietruck led triggers
Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
---
@@ -29,5 +29,5 @@ index 83f39b0362cb..15e9626ea81b 100644
};
--
-2.11.0
+2.11.1
diff --git a/0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch b/0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch
index 8405722345e7..824c0b3901ce 100644
--- a/0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch
+++ b/0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch
@@ -1,7 +1,7 @@
-From 5bd43bf12a2258976be01fe1211de9ad4d8e9145 Mon Sep 17 00:00:00 2001
+From 357aaf663585092fc717d6bb8397b6ef8764a660 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Thu, 11 Aug 2016 00:42:37 -0600
-Subject: [PATCH 8/9] exynos4412-odroid: set higher minimum buck2 regulator
+Subject: [PATCH 08/10] exynos4412-odroid: set higher minimum buck2 regulator
voltage
Set a higher minimum voltage to help reboot issue.
@@ -26,5 +26,5 @@ index 8aa19ba14436..8e2d94e3af72 100644
regulator-always-on;
regulator-boot-on;
--
-2.11.0
+2.11.1
diff --git a/0009-drm-armada-tracing-fix.patch b/0009-drm-armada-tracing-fix.patch
index 1b2a160695a3..c9e4e7958893 100644
--- a/0009-drm-armada-tracing-fix.patch
+++ b/0009-drm-armada-tracing-fix.patch
@@ -1,7 +1,7 @@
-From 24b08faa09d097e432fe36817dce69335c63d412 Mon Sep 17 00:00:00 2001
+From a5f7ae6a9dc41c26bcc0d4e66f18c352435ba4eb Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Mon, 26 Dec 2016 12:56:09 -0700
-Subject: [PATCH 9/9] drm/armada tracing fix
+Subject: [PATCH 09/10] drm/armada tracing fix
https://lists.freedesktop.org/archives/dri-devel/2016-December/126212.html
---
@@ -19,5 +19,5 @@ index a18f156c8b66..64c0b4546fb2 100644
+
+CFLAGS_armada_trace.o := -I$(src)
--
-2.11.0
+2.11.1
diff --git a/0010-disable-USB3-port-on-ODROID-XU.patch b/0010-disable-USB3-port-on-ODROID-XU.patch
new file mode 100644
index 000000000000..bb2be4c5d04e
--- /dev/null
+++ b/0010-disable-USB3-port-on-ODROID-XU.patch
@@ -0,0 +1,27 @@
+From 891345676e0af18d5d809b8a810db56a363aaf3b Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <kevin@archlinuxarm.org>
+Date: Sat, 25 Feb 2017 19:39:51 -0700
+Subject: [PATCH 10/10] disable USB3 port on ODROID-XU
+
+Ports report over-current condition and are non-operable.
+
+Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
+---
+ arch/arm/boot/dts/exynos5410-odroidxu.dts | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
+index c4de1353e5df..f80fa58995c5 100644
+--- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
++++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
+@@ -630,6 +630,7 @@
+
+ &usbdrd_dwc3_0 {
+ dr_mode = "host";
++ status = "disabled";
+ };
+
+ &usbdrd_dwc3_1 {
+--
+2.11.1
+
diff --git a/PKGBUILD b/PKGBUILD
index 010103a251ef..eebdf2dc08b9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,7 +11,7 @@
pkgbase=linux-libre # Build stock kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_pkgbasever=4.10-gnu
-_pkgver=4.10.1-gnu
+_pkgver=4.10.2-gnu
_replacesarchkernel=('linux%') # '%' gets replaced with _kernelname
_replacesoldkernels=() # '%' gets replaced with _kernelname
@@ -44,6 +44,7 @@ source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/l
'99-linux.hook'
# standard config files for mkinitcpio ramdisk
'linux.preset'
+ '0001-tty-n_hdlc-get-rid-of-racy-n_hdlc_tbuf.patch'
'0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch'
'0002-fix-Atmel-maXTouch-touchscreen-support.patch'
# armv7h patches
@@ -57,10 +58,11 @@ source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/l
'0006-ARM-TLV320AIC23-SoC-Audio-Codec-Fix-errors-reported-.patch'
'0007-set-default-cubietruck-led-triggers.patch'
'0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch'
- '0009-drm-armada-tracing-fix.patch')
+ '0009-drm-armada-tracing-fix.patch'
+ '0010-disable-USB3-port-on-ODROID-XU.patch')
sha512sums=('44d1774a1d43a15322297d351737fbcbf92c6f433266ce2b17587437d433562cf5811fdae48fafd5a8e00d18ed9ac2e1ad4b12a657f322eb234384316ad131e0'
'SKIP'
- '03669d17c68d1a845db36dcc953fd98450c692d97c4273c91ae17ad5e4ec395834f6320e4862ffe5fff7eecbe2ea5888cbe3c9c9093dd16fad8603db756b8053'
+ '02e518e8192f7b71dcb3724d1b9f4bc502d210387548a77a8edf6900281ccd13de55986382c9be00afacf0dc0ca2f13a70327be9230b1c93d95bc917cfd17643'
'SKIP'
'13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3'
'SKIP'
@@ -70,22 +72,24 @@ sha512sums=('44d1774a1d43a15322297d351737fbcbf92c6f433266ce2b17587437d433562cf58
'SKIP'
'9f402a1a61887d85966108446bbc71f9b98c44e09ed226ea21fd01edea992c55168b991ee8207b4635663a07d3df4babc379491eed65695440772e46a6dc015a'
'bc6b1208be9a939e4831e91c27df1553510e359b4915afb071b3816a97cde9c65f306f61a9bee0a624f6439c232b102e62572126e9e1d0cf31715dacfdaa85fc'
- 'd2159ac8a81de606b44bbf19ffe9f2af907bc71a88043f3b6bb1195b69ab6cb8c6fdda8c40b41a0c8764e44a82dd2ece4a702a236e20bf764d3b3f962fd7e5c3'
+ '82b94244d3c641921b0e04da28faba10bc6b04ce94258ad01174166ed9c99acced8895d979c120cacf9cc9fcad4e1d7f57c0af655316c73cc3b093f2fd48d890'
'd6faa67f3ef40052152254ae43fee031365d0b1524aa0718b659eb75afc21a3f79ea8d62d66ea311a800109bed545bc8f79e8752319cd378eef2cbd3a09aba22'
'2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf'
+ '397fc751697cc4e2ceb7e6d854f5e7fc115ed8511df406ffe5d8f80afeec385ba64cd28c4666bb206612fdcd7a578b60ca6ff125c2138c615aee6135d86b0197'
'02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af'
'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168'
- '85983a22bf5aae49504523062bf73cd278862823df24b7f176915c4fbf5854d9bc3f512cce402accff04793f86f855c45a3264d77c5025af253a56a26eca267b'
+ '08f47087aa71d1aca8dc4d5b7bb28cff3a7bb99f5bd64fc47664d3927ef470e256d22018da0726c186d9f9d19711c91ae4f3333aa161a0b18c082b5b60e5d74d'
'SKIP'
- 'de2caaf68d817582f70b7382566108cdfd54557675172d88c0aef45a9bad9c2c4c2cbae4b4cd393a083f1f78563a05f7280dc8553f8f91cb214f88f0c4c3790c'
- '7815bb6eded4f0fd3cb6eac3849d6f69728d4e9f5ae83064d6c1f319a5771f49d5fafad3b62c68f5d5c1f8643202e8968866005c50d069904ff57ee6dd4ce39d'
- 'cb767339d5ad2844da971dd1c8f0eed26a2aee3c08747f7d116965872cba44abb73a393408fbec420933b1d4f4b9837d12100522c1b89a376a2defc6b470d971'
- '764d174fde06916986a46b274b63f8978ad2229eced9502a46cdb95bfe70e5e4e172b37002e19c44d1cf0b573a8c9f35b806b3f3c4d00aed6a64e41216d5a00f'
- '1e6682960231c653c8dbcc632620adbb3bb8aa6647a58b9d1f98446ae8829c216960732e71e24561ba4dffa24cd2f868bb59ed2c367ddf5f2b8b503fc20e56ba'
- '97cb0a576375bb4eed5f1328d1e61e912c3f7eed5f7c45e2d41a59f7f3429d23b267b3f37506dc52efa3a7f9de62fe59b629970bcc1e1a8b1ef74bf6e7e3196e'
- '7ce4d348c3cdf218dd9ded4884d7e5712b0d18bd17d897a2fc1a6507e776b66c8ead0018437c735e1080f2d4a114abb15bcf24a0d404937ada231d7c04a2814f'
- 'a62714d52cd7f7979e69d7f26974dec7dd5f133ed6fab3d56aa0b7b232ce7dbab0f6a0dbd69b2c424313a19a218d0e96433968709104be0796549c582090ec1a'
- 'cfb61d1e09aba91c956f187828219ef0e86cf29455e1d2fa905a2a68ba4619b16acc529a721cbd55efcd8dbf548da0df0d7afb705081b41bcebf7c2398505f2b')
+ 'dd4e2482d6e3d91d00e37e665933515a4fa876d39c036d639f21c48a09f03202f3dec0dbe04b7c60c4b7e1f49617b5f94ace688afacbe33dc6d6818c0c797031'
+ 'cf0a3061cef91c04fa5e6d50c4ee235f817cb97f6b7a77f42d42ada707e71bd9731dfafdfcf396e767362998acd8b98ad9942a989c2dd8457e57177c354ec7d2'
+ '6866b84fac93df7eb669f71ed0041270a5f7254bddf6e4f3de7820dbf5696f09eb3051843f7f48d9ae418487ed765b203eccf4bf399d0ca95061ba0399043839'
+ 'f41af76bbb6727fa415bb4e7e5da1896a5f01316354d5f34bc55b3f4451e571f2302c4e66c2b949bb330241d4187d507faba83b1584907d1b66a82a60a1c8923'
+ 'ddf31c7db4c873c258763ddff4419315af3d06dc28f14f8d48b0d99e35ecd953d02a992da414c8dd1b9fd9f2bb12580393a541a3064051ece1fa6e173fc52ba2'
+ 'df749d4d4f71b4514f526941af592cc11eec13214375e7c0088b84558b56508bf444ea70fb93a0c114a03cd4efd559ea816deb670064fa91f02c7b7f7483d57d'
+ 'd1c6d28d22724f9d3700f5d8350164ddba7e6f64980a8d25ebb7cbcffa83250125f337e91510a925deb10bc1e30ac999cb18f3427e051e00d82f5bbaf8a848ec'
+ 'd14cedaf275ea1337b18a75d72b7610cb96f982896542edc0a59306c10888d62594b8a36197e33d079e6d5a9b5d20f46892b96a2d3aab5258013f0e5991e3f9b'
+ '0a806db7df7761f5dc64b8a3b3860c6c9216cecfe135778f3019e51e1245bcc34980c6124a11447285b18e284547ffc57a4b2c1290b4dd91a55b0237a7007cc9'
+ 'c02d0e1d6b399c84323937a81b702fd3ac7c6f9e08254d1697858f829fd045ee33d5952d42eb22558c290efe7fd5d8fdd7695d8ef3526742a67052fb9e303ebe')
validpgpkeys=(
'474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
'C92BAA713B8D53D3CAE63FC9E6974752F9704456' # André Silva
@@ -127,6 +131,7 @@ prepare() {
patch -p1 -i "${srcdir}/0007-set-default-cubietruck-led-triggers.patch"
patch -p1 -i "${srcdir}/0008-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch"
patch -p1 -i "${srcdir}/0009-drm-armada-tracing-fix.patch"
+ patch -p1 -i "${srcdir}/0010-disable-USB3-port-on-ODROID-XU.patch"
fi
# add freedo as boot logo
@@ -136,6 +141,9 @@ prepare() {
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
+ # patch for CVE-2017-2636
+ patch -p1 -i "${srcdir}/0001-tty-n_hdlc-get-rid-of-racy-n_hdlc_tbuf.patch"
+
# maintain the TTY over USB disconnects
# http://www.coreboot.org/EHCI_Gadget_Debug
patch -p1 -i "${srcdir}/0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch"
@@ -211,8 +219,13 @@ _package() {
true && install=${install}.pkg
# install mkinitcpio preset file for kernel
- sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" |
- install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+ if [ "${CARCH}" = "armv7h" ]; then
+ sed "s|/boot/vmlinuz-%PKGBASE%|${_kernver}|g" "${srcdir}/linux.preset" |
+ install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+ elif [ "${CARCH}" = "x86_64" ] || [ "${CARCH}" = "i686" ]; then
+ sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" |
+ install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+ fi
# install pacman hook for initramfs regeneration
sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
@@ -355,7 +368,7 @@ _package-headers() {
# add objtool for external module building and enabled VALIDATION_STACK option
if [ -f tools/objtool/objtool ]; then
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool"
- cp -a tools/objtool/objtool ${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool/
+ cp -a tools/objtool/objtool ${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool/
fi
chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
diff --git a/config.armv7h b/config.armv7h
index 10dfad095b95..d2a4ca369873 100644
--- a/config.armv7h
+++ b/config.armv7h
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.10.0-gnu-1 Kernel Configuration
+# Linux/arm 4.10.2-gnu-1 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_ARM_HAS_SG_CHAIN=y
@@ -3846,7 +3846,7 @@ CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
CONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_SYSFS=y
# CONFIG_GPIO_OF_HELPER is not set
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_MAX730X=m