From 2f99e562e03487b927782fcd0f690346d71c34e1 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 1 Nov 2015 13:48:26 +0000 Subject: CC: kernel: update kernel 3.18 to version 3.18.23 Changelog: * https://cdn.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.22 * https://cdn.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.18.23 backport of r47334. Signed-off-by: Hauke Mehrtens git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@47335 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches-3.18/431-spi-add-various-flags.patch | 4 ++-- .../461-spi-add-type-field-to-spi_transfer.patch | 4 ++-- .../464-spi-ath79-fix-fast-flash-read.patch | 2 +- ...07-MIPS-ath79-add-support-for-QCA953x-SoC.patch | 4 ++-- .../718-MIPS-ath79-add-EPG5000-support.patch | 4 ++-- ...35-MIPS-ath79-add-support-for-QCA956x-SoC.patch | 4 ++-- .../736-MIPS-ath79-add-MC-MAC1200R-support.patch | 6 ++--- .../737-MIPS-ath79-add-om5p-an-support.patch | 4 ++-- ...8-MIPS-ath79-add-meraki-mr12-mr16-support.patch | 6 ++--- .../799-MIPS-ath79-add-minibox-v1-support.patch | 28 +++++++++++----------- .../800-MIPS-ath79-add-RB922GS-support.patch | 6 ++--- .../patches-3.18/902-unaligned_access_hacks.patch | 4 ++-- .../903-MIPS-ath79-ubnt-rocket-m-xw-support.patch | 2 +- ...05-MIPS-ath79-bitmain-antminer-s3-support.patch | 2 +- .../906-MIPS-ath79-add-blackswift.patch | 2 +- 15 files changed, 41 insertions(+), 41 deletions(-) (limited to 'target/linux/ar71xx') diff --git a/target/linux/ar71xx/patches-3.18/431-spi-add-various-flags.patch b/target/linux/ar71xx/patches-3.18/431-spi-add-various-flags.patch index 91a4ff34c5..bf8bd84940 100644 --- a/target/linux/ar71xx/patches-3.18/431-spi-add-various-flags.patch +++ b/target/linux/ar71xx/patches-3.18/431-spi-add-various-flags.patch @@ -1,6 +1,6 @@ --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h -@@ -620,6 +620,8 @@ struct spi_transfer { +@@ -622,6 +622,8 @@ struct spi_transfer { unsigned cs_change:1; unsigned tx_nbits:3; unsigned rx_nbits:3; @@ -9,7 +9,7 @@ #define SPI_NBITS_SINGLE 0x01 /* 1bit transfer */ #define SPI_NBITS_DUAL 0x02 /* 2bits transfer */ #define SPI_NBITS_QUAD 0x04 /* 4bits transfer */ -@@ -665,6 +667,7 @@ struct spi_message { +@@ -667,6 +669,7 @@ struct spi_message { struct spi_device *spi; unsigned is_dma_mapped:1; diff --git a/target/linux/ar71xx/patches-3.18/461-spi-add-type-field-to-spi_transfer.patch b/target/linux/ar71xx/patches-3.18/461-spi-add-type-field-to-spi_transfer.patch index a1a51dfd92..0e42deb538 100644 --- a/target/linux/ar71xx/patches-3.18/461-spi-add-type-field-to-spi_transfer.patch +++ b/target/linux/ar71xx/patches-3.18/461-spi-add-type-field-to-spi_transfer.patch @@ -1,6 +1,6 @@ --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h -@@ -508,6 +508,12 @@ extern struct spi_master *spi_busnum_to_ +@@ -510,6 +510,12 @@ extern struct spi_master *spi_busnum_to_ /*---------------------------------------------------------------------------*/ @@ -13,7 +13,7 @@ /* * I/O INTERFACE between SPI controller and protocol drivers * -@@ -628,6 +634,7 @@ struct spi_transfer { +@@ -630,6 +636,7 @@ struct spi_transfer { u8 bits_per_word; u16 delay_usecs; u32 speed_hz; diff --git a/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch b/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch index 4f886820e7..e48665d6a0 100644 --- a/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch +++ b/target/linux/ar71xx/patches-3.18/464-spi-ath79-fix-fast-flash-read.patch @@ -25,7 +25,7 @@ while (len--) { --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h -@@ -635,6 +635,7 @@ struct spi_transfer { +@@ -637,6 +637,7 @@ struct spi_transfer { u16 delay_usecs; u32 speed_hz; enum spi_transfer_type type; diff --git a/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch b/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch index b44e88492b..5041619656 100644 --- a/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch +++ b/target/linux/ar71xx/patches-3.18/707-MIPS-ath79-add-support-for-QCA953x-SoC.patch @@ -22,7 +22,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -1228,6 +1228,10 @@ config SOC_AR934X +@@ -1248,6 +1248,10 @@ config SOC_AR934X select PCI_AR724X if PCI def_bool n @@ -33,7 +33,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed. config SOC_QCA955X select HW_HAS_PCI select PCI_AR724X if PCI -@@ -1270,7 +1274,7 @@ config ATH79_DEV_USB +@@ -1290,7 +1294,7 @@ config ATH79_DEV_USB def_bool n config ATH79_DEV_WMAC diff --git a/target/linux/ar71xx/patches-3.18/718-MIPS-ath79-add-EPG5000-support.patch b/target/linux/ar71xx/patches-3.18/718-MIPS-ath79-add-EPG5000-support.patch index a86fb5500e..a47e24d61b 100644 --- a/target/linux/ar71xx/patches-3.18/718-MIPS-ath79-add-EPG5000-support.patch +++ b/target/linux/ar71xx/patches-3.18/718-MIPS-ath79-add-EPG5000-support.patch @@ -20,7 +20,7 @@ select SOC_QCA955X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -71,6 +71,7 @@ obj-$(CONFIG_ATH79_MACH_EAP300V2) += mac +@@ -72,6 +72,7 @@ obj-$(CONFIG_ATH79_MACH_EAP300V2) += mac obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o obj-$(CONFIG_ATH79_MACH_EL_M150) += mach-el-m150.o obj-$(CONFIG_ATH79_MACH_EL_MINI) += mach-el-mini.o @@ -30,7 +30,7 @@ obj-$(CONFIG_ATH79_MACH_GL_INET) += mach-gl-inet.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -61,6 +61,7 @@ enum ath79_mach_type { +@@ -62,6 +62,7 @@ enum ath79_mach_type { ATH79_MACH_EL_M150, /* EasyLink EL-M150 */ ATH79_MACH_EL_MINI, /* EasyLink EL-MINI */ ATH79_MACH_ESR1750, /* EnGenius ESR1750 */ diff --git a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch index 8f15790e30..491a7aa4f4 100644 --- a/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch +++ b/target/linux/ar71xx/patches-3.18/735-MIPS-ath79-add-support-for-QCA956x-SoC.patch @@ -445,7 +445,7 @@ } --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -1248,6 +1248,12 @@ config SOC_QCA955X +@@ -1268,6 +1268,12 @@ config SOC_QCA955X select PCI_AR724X if PCI def_bool n @@ -458,7 +458,7 @@ config ATH79_DEV_M25P80 select ATH79_DEV_SPI def_bool n -@@ -1285,7 +1291,7 @@ config ATH79_DEV_USB +@@ -1305,7 +1311,7 @@ config ATH79_DEV_USB def_bool n config ATH79_DEV_WMAC diff --git a/target/linux/ar71xx/patches-3.18/736-MIPS-ath79-add-MC-MAC1200R-support.patch b/target/linux/ar71xx/patches-3.18/736-MIPS-ath79-add-MC-MAC1200R-support.patch index b9e1f7e837..cef612b300 100644 --- a/target/linux/ar71xx/patches-3.18/736-MIPS-ath79-add-MC-MAC1200R-support.patch +++ b/target/linux/ar71xx/patches-3.18/736-MIPS-ath79-add-MC-MAC1200R-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -579,6 +579,16 @@ config ATH79_MACH_R6100 +@@ -590,6 +590,16 @@ config ATH79_MACH_R6100 select ATH79_DEV_USB select ATH79_DEV_WMAC @@ -19,7 +19,7 @@ select SOC_AR71XX --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -80,6 +80,7 @@ obj-$(CONFIG_ATH79_MACH_HIWIFI_HC6361) + +@@ -81,6 +81,7 @@ obj-$(CONFIG_ATH79_MACH_HIWIFI_HC6361) + obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o obj-$(CONFIG_ATH79_MACH_HORNET_UB) += mach-hornet-ub.o @@ -29,7 +29,7 @@ obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -120,6 +120,7 @@ enum ath79_mach_type { +@@ -121,6 +121,7 @@ enum ath79_mach_type { ATH79_MACH_TEW_673GRU, /* TRENDnet TEW-673GRU */ ATH79_MACH_TEW_712BR, /* TRENDnet TEW-712BR */ ATH79_MACH_TEW_732BR, /* TRENDnet TEW-732BR */ diff --git a/target/linux/ar71xx/patches-3.18/737-MIPS-ath79-add-om5p-an-support.patch b/target/linux/ar71xx/patches-3.18/737-MIPS-ath79-add-om5p-an-support.patch index c77831f284..3fbfba7024 100644 --- a/target/linux/ar71xx/patches-3.18/737-MIPS-ath79-add-om5p-an-support.patch +++ b/target/linux/ar71xx/patches-3.18/737-MIPS-ath79-add-om5p-an-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -86,6 +86,7 @@ enum ath79_mach_type { +@@ -87,6 +87,7 @@ enum ath79_mach_type { ATH79_MACH_OM2P_LC, /* OpenMesh OM2P-LC */ ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */ ATH79_MACH_OM2P, /* OpenMesh OM2P */ @@ -10,7 +10,7 @@ ATH79_MACH_PB42, /* Atheros PB42 */ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -732,6 +732,7 @@ config ATH79_MACH_OM2P +@@ -743,6 +743,7 @@ config ATH79_MACH_OM2P config ATH79_MACH_OM5P bool "OpenMesh OM5P board support" select SOC_AR934X diff --git a/target/linux/ar71xx/patches-3.18/738-MIPS-ath79-add-meraki-mr12-mr16-support.patch b/target/linux/ar71xx/patches-3.18/738-MIPS-ath79-add-meraki-mr12-mr16-support.patch index 4e65e0e6d7..ceee0aa05c 100644 --- a/target/linux/ar71xx/patches-3.18/738-MIPS-ath79-add-meraki-mr12-mr16-support.patch +++ b/target/linux/ar71xx/patches-3.18/738-MIPS-ath79-add-meraki-mr12-mr16-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -749,6 +749,26 @@ config ATH79_MACH_ONION_OMEGA +@@ -760,6 +760,26 @@ config ATH79_MACH_ONION_OMEGA select ATH79_DEV_USB select ATH79_DEV_WMAC @@ -29,7 +29,7 @@ select SOC_AR934X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -81,6 +81,8 @@ obj-$(CONFIG_ATH79_MACH_JA76PF) += mach +@@ -82,6 +82,8 @@ obj-$(CONFIG_ATH79_MACH_JA76PF) += mach obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o obj-$(CONFIG_ATH79_MACH_HORNET_UB) += mach-hornet-ub.o obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o @@ -40,7 +40,7 @@ obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -70,6 +70,8 @@ enum ath79_mach_type { +@@ -71,6 +71,8 @@ enum ath79_mach_type { ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */ ATH79_MACH_JWAP003, /* jjPlus JWAP003 */ ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */ diff --git a/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch b/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch index 4a8f4fcde5..dab82a3df3 100644 --- a/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch +++ b/target/linux/ar71xx/patches-3.18/799-MIPS-ath79-add-minibox-v1-support.patch @@ -1,19 +1,19 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -64,6 +64,7 @@ enum ath79_mach_type { - ATH79_MACH_EPG5000, /* EnGenius EPG5000 */ - ATH79_MACH_F9K1115V2, /* Belkin AC1750DB */ - ATH79_MACH_GL_INET, /* GL-CONNECT GL-INET */ +@@ -65,6 +65,7 @@ enum ath79_mach_type { + ATH79_MACH_EPG5000, /* EnGenius EPG5000 */ + ATH79_MACH_F9K1115V2, /* Belkin AC1750DB */ + ATH79_MACH_GL_INET, /* GL-CONNECT GL-INET */ + ATH79_MACH_GS_MINIBOX_V1, /* Gainstrong MiniBox V1.0 */ - ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */ - ATH79_MACH_HIWIFI_HC6361, /* HiWiFi HC6361 */ - ATH79_MACH_JA76PF, /* jjPlus JA76PF */ + ATH79_MACH_GS_OOLITE, /* GS OOLITE V1.0 */ + ATH79_MACH_HIWIFI_HC6361, /* HiWiFi HC6361 */ + ATH79_MACH_JA76PF, /* jjPlus JA76PF */ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -511,6 +511,16 @@ - select ATH79_DEV_M25P80 - select ATH79_DEV_WMAC - +@@ -522,6 +522,16 @@ config ATH79_MACH_EAP300V2 + select ATH79_DEV_M25P80 + select ATH79_DEV_WMAC + +config ATH79_MACH_GS_MINIBOX_V1 + bool "Gainstrong MiniBox V1.0 support" + select SOC_AR933X @@ -27,9 +27,9 @@ config ATH79_MACH_GS_OOLITE bool "GS Oolite V1 support" select SOC_AR933X ---- a/arch/mips/ath79/Makefile 2015-08-10 23:27:44.599500173 +0200 -+++ b/arch/mips/ath79/Makefile 2015-08-10 23:29:25.090929262 +0200 -@@ -75,6 +75,7 @@ +--- a/arch/mips/ath79/Makefile ++++ b/arch/mips/ath79/Makefile +@@ -76,6 +76,7 @@ obj-$(CONFIG_ATH79_MACH_EPG5000) += mach obj-$(CONFIG_ATH79_MACH_ESR1750) += mach-esr1750.o obj-$(CONFIG_ATH79_MACH_F9K1115V2) += mach-f9k1115v2.o obj-$(CONFIG_ATH79_MACH_GL_INET) += mach-gl-inet.o diff --git a/target/linux/ar71xx/patches-3.18/800-MIPS-ath79-add-RB922GS-support.patch b/target/linux/ar71xx/patches-3.18/800-MIPS-ath79-add-RB922GS-support.patch index 7f1ac451eb..6f1795f24d 100644 --- a/target/linux/ar71xx/patches-3.18/800-MIPS-ath79-add-RB922GS-support.patch +++ b/target/linux/ar71xx/patches-3.18/800-MIPS-ath79-add-RB922GS-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -614,6 +614,16 @@ config ATH79_MACH_RB91X +@@ -635,6 +635,16 @@ config ATH79_MACH_RB91X select ATH79_DEV_USB select ATH79_ROUTERBOOT @@ -19,7 +19,7 @@ select SOC_AR934X --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -102,6 +102,7 @@ obj-$(CONFIG_ATH79_MACH_R6100) += mach- +@@ -104,6 +104,7 @@ obj-$(CONFIG_ATH79_MACH_R6100) += mach- obj-$(CONFIG_ATH79_MACH_RB4XX) += mach-rb4xx.o obj-$(CONFIG_ATH79_MACH_RB750) += mach-rb750.o obj-$(CONFIG_ATH79_MACH_RB91X) += mach-rb91x.o @@ -29,7 +29,7 @@ obj-$(CONFIG_ATH79_MACH_RBSXTLITE) += mach-rbsxtlite.o --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -109,6 +109,7 @@ enum ath79_mach_type { +@@ -111,6 +111,7 @@ enum ath79_mach_type { ATH79_MACH_RB_750G_R3, /* MikroTik RouterBOARD 750GL */ ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */ ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */ diff --git a/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch b/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch index 21fdd67ae3..3a9ca14204 100644 --- a/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch +++ b/target/linux/ar71xx/patches-3.18/902-unaligned_access_hacks.patch @@ -237,7 +237,7 @@ */ --- a/net/ipv6/datagram.c +++ b/net/ipv6/datagram.c -@@ -374,7 +374,7 @@ int ipv6_recv_error(struct sock *sk, str +@@ -384,7 +384,7 @@ int ipv6_recv_error(struct sock *sk, str ipv6_iface_scope_id(&sin->sin6_addr, IP6CB(skb)->iif); } else { @@ -246,7 +246,7 @@ &sin->sin6_addr); sin->sin6_scope_id = 0; } -@@ -708,12 +708,12 @@ int ip6_datagram_send_ctl(struct net *ne +@@ -718,12 +718,12 @@ int ip6_datagram_send_ctl(struct net *ne } if (fl6->flowlabel&IPV6_FLOWINFO_MASK) { diff --git a/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch b/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch index a0fc34f562..a1674a7a87 100644 --- a/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch +++ b/target/linux/ar71xx/patches-3.18/903-MIPS-ath79-ubnt-rocket-m-xw-support.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -175,6 +175,7 @@ enum ath79_mach_type { +@@ -177,6 +177,7 @@ enum ath79_mach_type { ATH79_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */ ATH79_MACH_UBNT_NANO_M_XW, /* Ubiquiti NanoStation M XW */ ATH79_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */ diff --git a/target/linux/ar71xx/patches-3.18/905-MIPS-ath79-bitmain-antminer-s3-support.patch b/target/linux/ar71xx/patches-3.18/905-MIPS-ath79-bitmain-antminer-s3-support.patch index bca3adb576..c1cb70e864 100644 --- a/target/linux/ar71xx/patches-3.18/905-MIPS-ath79-bitmain-antminer-s3-support.patch +++ b/target/linux/ar71xx/patches-3.18/905-MIPS-ath79-bitmain-antminer-s3-support.patch @@ -32,7 +32,7 @@ @@ -22,6 +22,7 @@ enum ath79_mach_type { ATH79_MACH_ALL0305, /* Allnet ALL0305 */ ATH79_MACH_ALL0315N, /* Allnet ALL0315N */ - ATH79_MACH_ANTMINER_S1, /* Antminer-S1 */ + ATH79_MACH_ANTMINER_S1, /* Antminer-S1 */ + ATH79_MACH_ANTMINER_S3, /* Antminer-S3 */ ATH79_MACH_AP113, /* Atheros AP113 reference board */ ATH79_MACH_AP121, /* Atheros AP121 reference board */ diff --git a/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch b/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch index 3b5aa54f41..4d01a805a6 100644 --- a/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch +++ b/target/linux/ar71xx/patches-3.18/906-MIPS-ath79-add-blackswift.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/Kconfig +++ b/arch/mips/ath79/Kconfig -@@ -866,6 +866,16 @@ config ATH79_MACH_EAP7660D +@@ -887,6 +887,16 @@ config ATH79_MACH_EAP7660D select ATH79_DEV_LEDS_GPIO select ATH79_DEV_M25P80 -- cgit v1.2.3