From 515ee0712a3b409f25b1c7bea137355321035235 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 26 Aug 2014 21:22:24 +0100 Subject: [PATCH 1/9] - Minor generic ARMv7 updates - Build tegra on both LPAE and general ARMv7 kernels (thank srwarren RHBZ 1110963) - Set CMA to 64mb on LPAE kernel (RHBZ 1127000) --- config-arm-generic | 1 + config-armv7 | 59 ++++------------------------------- config-armv7-generic | 74 ++++++++++++++++++++++++++++++++++++++++---- config-armv7-lpae | 28 ++++++++++++----- kernel.spec | 5 +++ 5 files changed, 100 insertions(+), 67 deletions(-) diff --git a/config-arm-generic b/config-arm-generic index a75d77263..38a00166f 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -45,6 +45,7 @@ CONFIG_ARM_CCI=y CONFIG_ARM_DMA_USE_IOMMU=y CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8 CONFIG_ARM_GIC=y +CONFIG_KVM_ARM_VGIC=y CONFIG_ARM_GLOBAL_TIMER=y CONFIG_ARM_SMMU=y CONFIG_MMC_ARMMMCI=y diff --git a/config-armv7 b/config-armv7 index 967cdad5e..4ddeea52e 100644 --- a/config-armv7 +++ b/config-armv7 @@ -557,45 +557,19 @@ CONFIG_IIO_ST_SENSORS_I2C=m CONFIG_IIO_ST_SENSORS_SPI=m CONFIG_IIO_ST_SENSORS_CORE=m -# tegra +# Allwinner +CONFIG_MACH_SUN4I=y +CONFIG_MACH_SUN5I=y + +# Tegra (non A15) CONFIG_ARCH_TEGRA_2x_SOC=y CONFIG_ARCH_TEGRA_3x_SOC=y -CONFIG_ARCH_TEGRA_114_SOC=y -CONFIG_ARCH_TEGRA_124_SOC=y -CONFIG_ARM_TEGRA_CPUFREQ=y CONFIG_TEGRA20_MC=y -CONFIG_TEGRA30_MC=y -CONFIG_TRUSTED_FOUNDATIONS=y - -CONFIG_SERIAL_TEGRA=y - -CONFIG_PCI_TEGRA=y CONFIG_TEGRA_IOMMU_GART=y -CONFIG_TEGRA_IOMMU_SMMU=y -CONFIG_MMC_SDHCI_TEGRA=m -CONFIG_TEGRA_WATCHDOG=m -CONFIG_I2C_TEGRA=m -CONFIG_TEGRA_SYSTEM_DMA=y -CONFIG_TEGRA_EMC_SCALING_ENABLE=y -CONFIG_TEGRA_AHB=y -CONFIG_TEGRA20_APB_DMA=y -CONFIG_SPI_TEGRA114=m CONFIG_SPI_TEGRA20_SFLASH=m CONFIG_SPI_TEGRA20_SLINK=m -CONFIG_PWM_TEGRA=m CONFIG_MFD_MAX8907=m -CONFIG_KEYBOARD_TEGRA=m -CONFIG_PINCTRL_TEGRA=y -CONFIG_PINCTRL_TEGRA20=y -CONFIG_PINCTRL_TEGRA30=y -CONFIG_USB_EHCI_TEGRA=m -CONFIG_RTC_DRV_TEGRA=m -CONFIG_CRYPTO_DEV_TEGRA_AES=m - -CONFIG_SND_SOC_TEGRA=m CONFIG_SND_SOC_TEGRA_ALC5632=m -CONFIG_SND_SOC_TEGRA_MAX98090=m -CONFIG_SND_SOC_TEGRA_RT5640=m CONFIG_SND_SOC_TEGRA_TRIMSLICE=m CONFIG_SND_SOC_TEGRA_WM8753=m CONFIG_SND_SOC_TEGRA_WM8903=m @@ -603,9 +577,6 @@ CONFIG_SND_SOC_TEGRA_WM9712=m CONFIG_SND_SOC_TEGRA20_AC97=m CONFIG_SND_SOC_TEGRA20_DAS=m CONFIG_SND_SOC_TEGRA20_SPDIF=m -CONFIG_SND_SOC_TEGRA30_AHUB=m -CONFIG_SND_SOC_TEGRA30_I2S=m -CONFIG_SND_HDA_TEGRA=m # AC100 (PAZ00) CONFIG_MFD_NVEC=y @@ -619,25 +590,6 @@ CONFIG_MFD_TPS6586X=y CONFIG_GPIO_TPS6586X=y CONFIG_RTC_DRV_TPS6586X=m -# Jetson TK1 -CONFIG_PINCTRL_AS3722=y -CONFIG_POWER_RESET_AS3722=y -CONFIG_MFD_AS3722=y -CONFIG_REGULATOR_AS3722=m -CONFIG_RTC_DRV_AS3722=y - -CONFIG_TEGRA_HOST1X=m -CONFIG_TEGRA_HOST1X_FIREWALL=y -CONFIG_DRM_TEGRA=m -CONFIG_DRM_TEGRA_FBDEV=y -# CONFIG_DRM_TEGRA_DEBUG is not set -CONFIG_DRM_TEGRA_STAGING=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_SIMPLE=m -CONFIG_DRM_PANEL_LD9040=m -CONFIG_DRM_PANEL_S6E8AA0=m -CONFIG_NOUVEAU_PLATFORM_DRIVER=m - # OLPC XO CONFIG_SERIO_OLPC_APSP=m @@ -667,6 +619,7 @@ CONFIG_SND_SOC_ADI_AXI_SPDIF=m CONFIG_XILLYBUS=m CONFIG_XILLYBUS_PCIE=m CONFIG_XILLYBUS_OF=m +CONFIG_GS_FPGABOOT=m # Multi function devices CONFIG_MFD_88PM800=m diff --git a/config-armv7-generic b/config-armv7-generic index 82faa0303..739a04021 100644 --- a/config-armv7-generic +++ b/config-armv7-generic @@ -54,12 +54,12 @@ CONFIG_IRQ_CROSSBAR=y CONFIG_ARCH_EXYNOS=y CONFIG_ARCH_HIGHBANK=y CONFIG_ARCH_SUNXI=y +CONFIG_ARCH_TEGRA=y CONFIG_ARCH_VEXPRESS_CA9X4=y CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y # CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_HI3xxx is not set -# CONFIG_ARCH_MSM_DT is not set # CONFIG_ARCH_QCOM is not set # CONFIG_ARCH_SHMOBILE_MULTI is not set # CONFIG_ARCH_SIRF is not set @@ -128,6 +128,9 @@ CONFIG_PCI_HOST_GENERIC=y CONFIG_LBDAF=y +# GRR, needed for MFD_AS3722 +CONFIG_I2C=y + # Device tree CONFIG_USE_OF=y CONFIG_ARM_ATAG_DTB_COMPAT=y @@ -158,15 +161,13 @@ CONFIG_ARM_HIGHBANK_CPUFREQ=m # CONFIG_ARM_HIGHBANK_CPUIDLE is not set # Allwinner -CONFIG_MACH_SUN4I=y -CONFIG_MACH_SUN5I=y +# CONFIG_MACH_SUN4I is not set +# CONFIG_MACH_SUN5I is not set CONFIG_MACH_SUN6I=y CONFIG_MACH_SUN7I=y CONFIG_PINCTRL_SUNXI=y CONFIG_SUNXI_WATCHDOG=m -CONFIG_MDIO_SUN4I=m CONFIG_NET_VENDOR_ALLWINNER=y -CONFIG_SUN4I_EMAC=m CONFIG_STMMAC_PLATFORM=y CONFIG_DWMAC_SOCFPGA=y CONFIG_DWMAC_SUNXI=y @@ -183,7 +184,11 @@ CONFIG_POWER_RESET_SUN6I=y CONFIG_TOUCHSCREEN_SUN4I=m CONFIG_MFD_AXP20X=y CONFIG_REGULATOR_AXP20X=m +CONFIG_MDIO_SUN4I=m +CONFIG_SUN4I_EMAC=m +CONFIG_MDIO_SUN4I=m +CONFIG_SUN4I_EMAC=m # Exynos CONFIG_ARCH_EXYNOS3=y CONFIG_ARCH_EXYNOS4=y @@ -286,6 +291,55 @@ CONFIG_RTC_DRV_MAX8997=m CONFIG_RTC_DRV_MAX77686=m CONFIG_EXTCON_MAX8997=m +# Tegra +CONFIG_ARCH_TEGRA_114_SOC=y +CONFIG_ARCH_TEGRA_124_SOC=y +CONFIG_ARM_TEGRA_CPUFREQ=y +CONFIG_TRUSTED_FOUNDATIONS=y +CONFIG_SERIAL_TEGRA=y +CONFIG_TEGRA30_MC=y +CONFIG_PCI_TEGRA=y +CONFIG_AHCI_TEGRA=m +CONFIG_TEGRA_IOMMU_SMMU=y +CONFIG_MMC_SDHCI_TEGRA=m +CONFIG_TEGRA_WATCHDOG=m +CONFIG_I2C_TEGRA=m +CONFIG_TEGRA_SYSTEM_DMA=y +CONFIG_TEGRA_EMC_SCALING_ENABLE=y +CONFIG_TEGRA_AHB=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_SPI_TEGRA114=m +CONFIG_PWM_TEGRA=m +CONFIG_KEYBOARD_TEGRA=m +CONFIG_USB_EHCI_TEGRA=m +CONFIG_RTC_DRV_TEGRA=m +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA_MAX98090=m +CONFIG_SND_SOC_TEGRA_RT5640=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m +CONFIG_SND_HDA_TEGRA=m +CONFIG_TEGRA_HOST1X=m +CONFIG_TEGRA_HOST1X_FIREWALL=y +CONFIG_DRM_TEGRA=m +CONFIG_DRM_TEGRA_FBDEV=y +# CONFIG_DRM_TEGRA_DEBUG is not set +CONFIG_DRM_TEGRA_STAGING=y +CONFIG_NOUVEAU_PLATFORM_DRIVER=m + +# Jetson TK1 +CONFIG_PINCTRL_AS3722=y +CONFIG_POWER_RESET_AS3722=y +CONFIG_MFD_AS3722=y +CONFIG_REGULATOR_AS3722=m +CONFIG_RTC_DRV_AS3722=y + +# DRM panels +CONFIG_DRM_PANEL=y +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_LD9040=m +CONFIG_DRM_PANEL_S6E8AA0=m + # regmap CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m @@ -365,7 +419,14 @@ CONFIG_MFD_TPS65912_SPI=y # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_PM8921_CORE is not set -# CONFIG_MFD_AXP20X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set # Pin stuff CONFIG_PINMUX=y @@ -472,6 +533,7 @@ CONFIG_MTD_NAND_PLATFORM=m CONFIG_MTD_NAND_PXA3xx=m CONFIG_MTD_NAND_RICOH=m CONFIG_MTD_NAND_TMIO=m +CONFIG_MTD_SPI_NOR=m CONFIG_MTD_SPINAND_MT29F=m CONFIG_MTD_SPINAND_ONDIEECC=y CONFIG_MTD_SST25L=m diff --git a/config-armv7-lpae b/config-armv7-lpae index e86aaad26..b282f5de9 100644 --- a/config-armv7-lpae +++ b/config-armv7-lpae @@ -8,12 +8,10 @@ CONFIG_ARCH_VIRT=y # CONFIG_ARCH_OMAP4 is not set # CONFIG_SOC_OMAP5 is not set # CONFIG_SOC_AM33XX is not set -# CONFIG_SND_AM33XX_SOC_EVM is not set # CONFIG_SOC_AM43XX is not set # CONFIG_SOC_DRA7XX is not set # CONFIG_ARCH_ROCKCHIP is not set # CONFIG_ARCH_SOCFPGA is not set -# CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_ZYNQ is not set # CONFIG_ARCH_AXXIA is not set @@ -24,6 +22,9 @@ CONFIG_ARM_VIRT_EXT=y CONFIG_VIRTUALIZATION=y CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8 +CONFIG_CMA_SIZE_SEL_MBYTES=y +CONFIG_CMA_SIZE_MBYTES=64 + # Cortex-A15 CONFIG_ARM_ERRATA_798181=y CONFIG_ARM_ERRATA_773022=y @@ -31,7 +32,6 @@ CONFIG_ARM_ERRATA_773022=y CONFIG_KVM=y CONFIG_KVM_ARM_HOST=y CONFIG_KVM_ARM_MAX_VCPUS=8 -CONFIG_KVM_ARM_VGIC=y CONFIG_KVM_ARM_TIMER=y # CONFIG_XEN is not set @@ -62,10 +62,22 @@ CONFIG_TI_AEMIF=m CONFIG_POWER_RESET_KEYSTONE=y CONFIG_DAVINCI_WATCHDOG=m CONFIG_SPI_DAVINCI=m -# CONFIG_SND_DAVINCI_SOC is not set # CONFIG_TI_SOC_THERMAL is not set -# CONFIG_TEGRA_HOST1X is not set -# CONFIG_DRM_PANEL_SIMPLE is not set -# CONFIG_DRM_PANEL_LD9040 is not set -# CONFIG_DRM_PANEL_S6E8AA0 is not set +# Tegra (non A15 device options) +# CONFIG_ARCH_TEGRA_2x_SOC is not set +# CONFIG_ARCH_TEGRA_3x_SOC is not set +# CONFIG_TEGRA20_MC is not set +# CONFIG_TEGRA_IOMMU_GART is not set +# CONFIG_SPI_TEGRA20_SFLASH is not set +# CONFIG_SPI_TEGRA20_SLINK is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_NVEC is not set +# CONFIG_SND_SOC_TEGRA_ALC5632 is not set +# CONFIG_SND_SOC_TEGRA_TRIMSLICE is not set +# CONFIG_SND_SOC_TEGRA_WM8753 is not set +# CONFIG_SND_SOC_TEGRA_WM8903 is not set +# CONFIG_SND_SOC_TEGRA_WM9712 is not set +# CONFIG_SND_SOC_TEGRA20_AC97 is not set +# CONFIG_SND_SOC_TEGRA20_DAS is not set +# CONFIG_SND_SOC_TEGRA20_SPDIF is not set diff --git a/kernel.spec b/kernel.spec index 733b8fbfa..11f431ef1 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2264,6 +2264,11 @@ fi # ||----w | # || || %changelog +* Tue Aug 26 2014 Peter Robinson +- Minor generic ARMv7 updates +- Build tegra on both LPAE and general ARMv7 kernels (thank srwarren RHBZ 1110963) +- Set CMA to 64mb on LPAE kernel (RHBZ 1127000) + * Fri Aug 22 2014 Josh Boyer - 3.16.1-301 - Drop userns revert patch (rhbz 917708) From a3696887c0907eefa1a50bde894b6e034eb8b08f Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 27 Aug 2014 08:15:27 -0400 Subject: [PATCH 2/9] Disable streams on via XHCI (rhbz 1132666) --- kernel.spec | 9 ++++ ...eams-on-Via-XHCI-with-device-id-0x34.patch | 42 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch diff --git a/kernel.spec b/kernel.spec index 11f431ef1..9da8335ef 100644 --- a/kernel.spec +++ b/kernel.spec @@ -649,6 +649,9 @@ Patch25121: 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch #rhbz 1131551 Patch25122: nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch +#rhbz 1132666 +Patch26016: xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch + # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel Patch30000: kernel-arm64.patch @@ -1382,6 +1385,9 @@ ApplyPatch 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch #rhbz 1131551 ApplyPatch nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch +#rhbz 1132666 +ApplyPatch xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch + %if 0%{?aarch64patches} ApplyPatch kernel-arm64.patch %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. @@ -2264,6 +2270,9 @@ fi # ||----w | # || || %changelog +* Wed Aug 27 2014 Josh Boyer +- Disable streams on via XHCI (rhbz 1132666) + * Tue Aug 26 2014 Peter Robinson - Minor generic ARMv7 updates - Build tegra on both LPAE and general ARMv7 kernels (thank srwarren RHBZ 1110963) diff --git a/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch b/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch new file mode 100644 index 000000000..37543b923 --- /dev/null +++ b/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch @@ -0,0 +1,42 @@ +From 160cf46209944d2fd7e20e39cf3fa77b961b5b20 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 25 Aug 2014 12:21:56 +0200 +Subject: [PATCH] xhci: Disable streams on Via XHCI with device-id 0x3432 + +This is a bit bigger hammer then I would like to use for this, but for now +it will have to make do. I'm working on getting my hands on one of these so +that I can try to get streams to work (with a quirk flag if necessary) and +then we can re-enable them. + +For now this at least makes uas capable disk enclosures work again by forcing +fallback to the usb-storage driver. + +https://bugzilla.kernel.org/show_bug.cgi?id=79511 +Bugzilla: 1132666 +Upstream-status: Sent for 3.17 and Cc'd stable + +Cc: stable@vger.kernel.org # 3.15 +Signed-off-by: Hans de Goede +--- + drivers/usb/host/xhci-pci.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c +index 687d36608155..d973682f72ce 100644 +--- a/drivers/usb/host/xhci-pci.c ++++ b/drivers/usb/host/xhci-pci.c +@@ -151,6 +151,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) + if (pdev->vendor == PCI_VENDOR_ID_VIA) + xhci->quirks |= XHCI_RESET_ON_RESUME; + ++ /* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */ ++ if (pdev->vendor == PCI_VENDOR_ID_VIA && ++ pdev->device == 0x3432) ++ xhci->quirks |= XHCI_BROKEN_STREAMS; ++ + if (xhci->quirks & XHCI_RESET_ON_RESUME) + xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, + "QUIRK: Resetting on resume"); +-- +1.9.3 + From 0d360df2cdf5b013a6a0eac17783caaa6683d3bb Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 27 Aug 2014 15:52:39 -0500 Subject: [PATCH 3/9] CVE-2014-{5471,5472} isofs: Fix unbounded recursion when processing relocated directories --- ...hen-processing-relocated-directories.patch | 199 ++++++++++++++++++ kernel.spec | 10 + 2 files changed, 209 insertions(+) create mode 100644 isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch diff --git a/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch b/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch new file mode 100644 index 000000000..e937682f0 --- /dev/null +++ b/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch @@ -0,0 +1,199 @@ +commit 410dd3cf4c9b36f27ed4542ee18b1af5e68645a4 +Author: Jan Kara +Date: Sun Aug 17 11:49:57 2014 +0200 + + isofs: Fix unbounded recursion when processing relocated directories + + We did not check relocated directory in any way when processing Rock + Ridge 'CL' tag. Thus a corrupted isofs image can possibly have a CL + entry pointing to another CL entry leading to possibly unbounded + recursion in kernel code and thus stack overflow or deadlocks (if there + is a loop created from CL entries). + + Fix the problem by not allowing CL entry to point to a directory entry + with CL entry (such use makes no good sense anyway) and by checking + whether CL entry doesn't point to itself. + + CC: stable@vger.kernel.org + Reported-by: Chris Evans + Signed-off-by: Jan Kara + +diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c +index 4556ce1..5ddaf86 100644 +--- a/fs/isofs/inode.c ++++ b/fs/isofs/inode.c +@@ -61,7 +61,7 @@ static void isofs_put_super(struct super_block *sb) + return; + } + +-static int isofs_read_inode(struct inode *); ++static int isofs_read_inode(struct inode *, int relocated); + static int isofs_statfs (struct dentry *, struct kstatfs *); + + static struct kmem_cache *isofs_inode_cachep; +@@ -1259,7 +1259,7 @@ out_toomany: + goto out; + } + +-static int isofs_read_inode(struct inode *inode) ++static int isofs_read_inode(struct inode *inode, int relocated) + { + struct super_block *sb = inode->i_sb; + struct isofs_sb_info *sbi = ISOFS_SB(sb); +@@ -1404,7 +1404,7 @@ static int isofs_read_inode(struct inode *inode) + */ + + if (!high_sierra) { +- parse_rock_ridge_inode(de, inode); ++ parse_rock_ridge_inode(de, inode, relocated); + /* if we want uid/gid set, override the rock ridge setting */ + if (sbi->s_uid_set) + inode->i_uid = sbi->s_uid; +@@ -1483,9 +1483,10 @@ static int isofs_iget5_set(struct inode *ino, void *data) + * offset that point to the underlying meta-data for the inode. The + * code below is otherwise similar to the iget() code in + * include/linux/fs.h */ +-struct inode *isofs_iget(struct super_block *sb, +- unsigned long block, +- unsigned long offset) ++struct inode *__isofs_iget(struct super_block *sb, ++ unsigned long block, ++ unsigned long offset, ++ int relocated) + { + unsigned long hashval; + struct inode *inode; +@@ -1507,7 +1508,7 @@ struct inode *isofs_iget(struct super_block *sb, + return ERR_PTR(-ENOMEM); + + if (inode->i_state & I_NEW) { +- ret = isofs_read_inode(inode); ++ ret = isofs_read_inode(inode, relocated); + if (ret < 0) { + iget_failed(inode); + inode = ERR_PTR(ret); +diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h +index 9916723..0ac4c1f 100644 +--- a/fs/isofs/isofs.h ++++ b/fs/isofs/isofs.h +@@ -107,7 +107,7 @@ extern int iso_date(char *, int); + + struct inode; /* To make gcc happy */ + +-extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *); ++extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *, int relocated); + extern int get_rock_ridge_filename(struct iso_directory_record *, char *, struct inode *); + extern int isofs_name_translate(struct iso_directory_record *, char *, struct inode *); + +@@ -118,9 +118,24 @@ extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int + extern struct buffer_head *isofs_bread(struct inode *, sector_t); + extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long); + +-extern struct inode *isofs_iget(struct super_block *sb, +- unsigned long block, +- unsigned long offset); ++struct inode *__isofs_iget(struct super_block *sb, ++ unsigned long block, ++ unsigned long offset, ++ int relocated); ++ ++static inline struct inode *isofs_iget(struct super_block *sb, ++ unsigned long block, ++ unsigned long offset) ++{ ++ return __isofs_iget(sb, block, offset, 0); ++} ++ ++static inline struct inode *isofs_iget_reloc(struct super_block *sb, ++ unsigned long block, ++ unsigned long offset) ++{ ++ return __isofs_iget(sb, block, offset, 1); ++} + + /* Because the inode number is no longer relevant to finding the + * underlying meta-data for an inode, we are free to choose a more +diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c +index c0bf424..f488bba 100644 +--- a/fs/isofs/rock.c ++++ b/fs/isofs/rock.c +@@ -288,12 +288,16 @@ eio: + goto out; + } + ++#define RR_REGARD_XA 1 ++#define RR_RELOC_DE 2 ++ + static int + parse_rock_ridge_inode_internal(struct iso_directory_record *de, +- struct inode *inode, int regard_xa) ++ struct inode *inode, int flags) + { + int symlink_len = 0; + int cnt, sig; ++ unsigned int reloc_block; + struct inode *reloc; + struct rock_ridge *rr; + int rootflag; +@@ -305,7 +309,7 @@ parse_rock_ridge_inode_internal(struct iso_directory_record *de, + + init_rock_state(&rs, inode); + setup_rock_ridge(de, inode, &rs); +- if (regard_xa) { ++ if (flags & RR_REGARD_XA) { + rs.chr += 14; + rs.len -= 14; + if (rs.len < 0) +@@ -485,12 +489,22 @@ repeat: + "relocated directory\n"); + goto out; + case SIG('C', 'L'): +- ISOFS_I(inode)->i_first_extent = +- isonum_733(rr->u.CL.location); +- reloc = +- isofs_iget(inode->i_sb, +- ISOFS_I(inode)->i_first_extent, +- 0); ++ if (flags & RR_RELOC_DE) { ++ printk(KERN_ERR ++ "ISOFS: Recursive directory relocation " ++ "is not supported\n"); ++ goto eio; ++ } ++ reloc_block = isonum_733(rr->u.CL.location); ++ if (reloc_block == ISOFS_I(inode)->i_iget5_block && ++ ISOFS_I(inode)->i_iget5_offset == 0) { ++ printk(KERN_ERR ++ "ISOFS: Directory relocation points to " ++ "itself\n"); ++ goto eio; ++ } ++ ISOFS_I(inode)->i_first_extent = reloc_block; ++ reloc = isofs_iget_reloc(inode->i_sb, reloc_block, 0); + if (IS_ERR(reloc)) { + ret = PTR_ERR(reloc); + goto out; +@@ -637,9 +651,11 @@ static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit) + return rpnt; + } + +-int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode) ++int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode, ++ int relocated) + { +- int result = parse_rock_ridge_inode_internal(de, inode, 0); ++ int flags = relocated ? RR_RELOC_DE : 0; ++ int result = parse_rock_ridge_inode_internal(de, inode, flags); + + /* + * if rockridge flag was reset and we didn't look for attributes +@@ -647,7 +663,8 @@ int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode) + */ + if ((ISOFS_SB(inode->i_sb)->s_rock_offset == -1) + && (ISOFS_SB(inode->i_sb)->s_rock == 2)) { +- result = parse_rock_ridge_inode_internal(de, inode, 14); ++ result = parse_rock_ridge_inode_internal(de, inode, ++ flags | RR_REGARD_XA); + } + return result; + } diff --git a/kernel.spec b/kernel.spec index 9da8335ef..1eb01ff66 100644 --- a/kernel.spec +++ b/kernel.spec @@ -652,6 +652,9 @@ Patch25122: nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch #rhbz 1132666 Patch26016: xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch +#CVE-2014-{5471,5472} rhbz 1134099 1134101 +Patch26017: isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch + # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel Patch30000: kernel-arm64.patch @@ -1388,6 +1391,9 @@ ApplyPatch nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch #rhbz 1132666 ApplyPatch xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch +#CVE-2014-{5471,5472} rhbz 1134099 1134101 +ApplyPatch isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch + %if 0%{?aarch64patches} ApplyPatch kernel-arm64.patch %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. @@ -2270,6 +2276,10 @@ fi # ||----w | # || || %changelog +* Wed Aug 27 2014 Justin M. Forbes +- CVE-2014-{5471,5472} isofs: Fix unbounded recursion when processing relocated + directories (rhbz 1134099 1134101) + * Wed Aug 27 2014 Josh Boyer - Disable streams on via XHCI (rhbz 1132666) From 0de60bed72b6956afed8660845497d51c5825ab4 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 28 Aug 2014 10:38:28 -0400 Subject: [PATCH 4/9] Don't enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH (rhbz 1114160) --- Makefile | 1 - Makefile.release | 1 - config-debug | 1 - config-generic | 1 + config-nodebug | 1 - kernel.spec | 3 +++ 6 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index e63bbf299..274ae2a8a 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,6 @@ debug: @perl -pi -e 's/# CONFIG_DEBUG_STACK_USAGE is not set/CONFIG_DEBUG_STACK_USAGE=y/' config-nodebug @perl -pi -e 's/# CONFIG_DEBUG_SLAB is not set/CONFIG_DEBUG_SLAB=y/' config-nodebug @perl -pi -e 's/# CONFIG_DEBUG_MUTEXES is not set/CONFIG_DEBUG_MUTEXES=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set/CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y/' config-nodebug @perl -pi -e 's/# CONFIG_DEBUG_RT_MUTEXES is not set/CONFIG_DEBUG_RT_MUTEXES=y/' config-nodebug @perl -pi -e 's/# CONFIG_DEBUG_LOCK_ALLOC is not set/CONFIG_DEBUG_LOCK_ALLOC=y/' config-nodebug @perl -pi -e 's/# CONFIG_LOCK_TORTURE_TEST is not set/CONFIG_LOCK_TORTURE_TEST=m/' config-nodebug diff --git a/Makefile.release b/Makefile.release index 58a011758..6c79d4ef3 100644 --- a/Makefile.release +++ b/Makefile.release @@ -10,7 +10,6 @@ config-release: @perl -pi -e 's/CONFIG_DEBUG_STACK_USAGE=y/# CONFIG_DEBUG_STACK_USAGE is not set/' config-nodebug @perl -pi -e 's/CONFIG_DEBUG_SLAB=y/# CONFIG_DEBUG_SLAB is not set/' config-nodebug @perl -pi -e 's/CONFIG_DEBUG_MUTEXES=y/# CONFIG_DEBUG_MUTEXES is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y/# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set/' config-nodebug @perl -pi -e 's/CONFIG_DEBUG_RT_MUTEXES=y/# CONFIG_DEBUG_RT_MUTEXES is not set/' config-nodebug @perl -pi -e 's/CONFIG_DEBUG_LOCK_ALLOC=y/# CONFIG_DEBUG_LOCK_ALLOC is not set/' config-nodebug @perl -pi -e 's/CONFIG_LOCK_TORTURE_TEST=m/# CONFIG_LOCK_TORTURE_TEST is not set/' config-nodebug diff --git a/config-debug b/config-debug index 302280b6f..bc9ad26e6 100644 --- a/config-debug +++ b/config-debug @@ -5,7 +5,6 @@ CONFIG_SND_PCM_XRUN_DEBUG=y CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_LOCK_TORTURE_TEST=m diff --git a/config-generic b/config-generic index 1c9ed2650..1958b04dc 100644 --- a/config-generic +++ b/config-generic @@ -4351,6 +4351,7 @@ CONFIG_HEADERS_CHECK=y # CONFIG_READABLE_ASM is not set # CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set # CONFIG_DEBUG_LOCKDEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set diff --git a/config-nodebug b/config-nodebug index e16a37b57..299016139 100644 --- a/config-nodebug +++ b/config-nodebug @@ -5,7 +5,6 @@ CONFIG_SND_PCM_XRUN_DEBUG=y # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_LOCK_TORTURE_TEST is not set diff --git a/kernel.spec b/kernel.spec index 1eb01ff66..f43ddd055 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2276,6 +2276,9 @@ fi # ||----w | # || || %changelog +* Thu Aug 28 2014 Josh Boyer +- Don't enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH (rhbz 1114160) + * Wed Aug 27 2014 Justin M. Forbes - CVE-2014-{5471,5472} isofs: Fix unbounded recursion when processing relocated directories (rhbz 1134099 1134101) From 02f15284fb9c1f7834630c0a44f6ff086e749abc Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 28 Aug 2014 14:56:54 -0400 Subject: [PATCH 5/9] Fix NFSv3 ACL regression (rhbz 1132786) --- NFSv3-Fix-another-acl-regression.patch | 37 ++++++++++++++++++++++++++ kernel.spec | 7 +++++ 2 files changed, 44 insertions(+) create mode 100644 NFSv3-Fix-another-acl-regression.patch diff --git a/NFSv3-Fix-another-acl-regression.patch b/NFSv3-Fix-another-acl-regression.patch new file mode 100644 index 000000000..af3af2a66 --- /dev/null +++ b/NFSv3-Fix-another-acl-regression.patch @@ -0,0 +1,37 @@ +From 498a0fb58f119bfa222065fc4f2932e81e1510ed Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Sun, 24 Aug 2014 14:46:48 -0400 +Subject: [PATCH] NFSv3: Fix another acl regression + +When creating a new object on the NFS server, we should not be sending +posix setacl requests unless the preceding posix_acl_create returned a +non-trivial acl. Doing so, causes Solaris servers in particular to +return an EINVAL. + +Fixes: 013cdf1088d72 (nfs: use generic posix ACL infrastructure,,,) +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132786 +Cc: stable@vger.kernel.org # 3.14+ +Signed-off-by: Trond Myklebust +--- + fs/nfs/nfs3acl.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c +index d0fec260132a..24c6898159cc 100644 +--- a/fs/nfs/nfs3acl.c ++++ b/fs/nfs/nfs3acl.c +@@ -129,7 +129,10 @@ static int __nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, + .rpc_argp = &args, + .rpc_resp = &fattr, + }; +- int status; ++ int status = 0; ++ ++ if (acl == NULL && (!S_ISDIR(inode->i_mode) || dfacl == NULL)) ++ goto out; + + status = -EOPNOTSUPP; + if (!nfs_server_capable(inode, NFS_CAP_ACLS)) +-- +1.9.3 + diff --git a/kernel.spec b/kernel.spec index f43ddd055..1bcd432de 100644 --- a/kernel.spec +++ b/kernel.spec @@ -655,6 +655,9 @@ Patch26016: xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch #CVE-2014-{5471,5472} rhbz 1134099 1134101 Patch26017: isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch +#rhbz 1132786 +Patch26018: NFSv3-Fix-another-acl-regression.patch + # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel Patch30000: kernel-arm64.patch @@ -1394,6 +1397,9 @@ ApplyPatch xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch #CVE-2014-{5471,5472} rhbz 1134099 1134101 ApplyPatch isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch +#rhbz 1132786 +ApplyPatch NFSv3-Fix-another-acl-regression.patch + %if 0%{?aarch64patches} ApplyPatch kernel-arm64.patch %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. @@ -2277,6 +2283,7 @@ fi # || || %changelog * Thu Aug 28 2014 Josh Boyer +- Fix NFSv3 ACL regression (rhbz 1132786) - Don't enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH (rhbz 1114160) * Wed Aug 27 2014 Justin M. Forbes From 88954ba3648fb111f0c34be9f7d92568c315e000 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 2 Sep 2014 12:42:53 -0400 Subject: [PATCH 6/9] Remove with_extra switch The with_extra switch was originally added with the addition of the modules-extra subpackage. However, it never really worked. If you build with it disabled, the subpackage is omitted but the modules that would be included in it would still be built. That can lead to errors further in the build when we're moving things around in the -core and -modules subpackages. Since it doesn't actually save build time at all, and it leads to build failures for no real gain, drop it. --- kernel.spec | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/kernel.spec b/kernel.spec index 1bcd432de..94592f8cc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -94,8 +94,6 @@ Summary: The Linux kernel %define with_debug %{?_without_debug: 0} %{?!_without_debug: 1} # kernel-headers %define with_headers %{?_without_headers: 0} %{?!_without_headers: 1} -# kernel-modules-extra -%define with_extra %{?_without_extra: 0} %{?!_without_extra: 1} # perf %define with_perf %{?_without_perf: 0} %{?!_without_perf: 1} # tools @@ -932,9 +930,7 @@ Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?1:+%{1}}\ %endif\ %{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ %{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ -%if %{with_extra}\ %{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ -%endif\ %{expand:%%kernel_debuginfo_package %{?1:%{1}}}\ %{nil} @@ -1707,10 +1703,8 @@ BuildKernel() { rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep} popd -%if %{with_extra} # Call the modules-extra script to move things around %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE16} -%endif # # Generate the kernel-core and kernel-modules files lists @@ -2080,9 +2074,7 @@ fi\ %define kernel_variant_post(v:r:) \ %{expand:%%kernel_devel_post %{?-v*}}\ %{expand:%%kernel_modules_post %{?-v*}}\ -%if %{with_extra}\ %{expand:%%kernel_modules_extra_post %{?-v*}}\ -%endif\ %{expand:%%kernel_variant_posttrans %{?-v*}}\ %{expand:%%post %{?-v*:%{-v*}-}core}\ %{-r:\ @@ -2243,9 +2235,7 @@ fi %{expand:%%files %{?2:%{2}-}devel}\ %defattr(-,root,root)\ /usr/src/kernels/%{KVERREL}%{?2:+%{2}}\ -%if %{with_extra}\ %{expand:%%files %{?2:%{2}-}modules-extra}\ -%endif\ %defattr(-,root,root)\ /lib/modules/%{KVERREL}%{?2:+%{2}}/extra\ %if %{with_debuginfo}\ @@ -2282,6 +2272,9 @@ fi # ||----w | # || || %changelog +* Tue Sep 02 2014 Josh Boyer +- Remove with_extra switch + * Thu Aug 28 2014 Josh Boyer - Fix NFSv3 ACL regression (rhbz 1132786) - Don't enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH (rhbz 1114160) From 52fafd4758b164e870134b4764bba4c76e7ea897 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 4 Sep 2014 08:47:53 -0400 Subject: [PATCH 7/9] Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969) --- ...Add-support-for-the-Cintiq-Companion.patch | 46 +++++++++++++++++++ kernel.spec | 9 ++++ 2 files changed, 55 insertions(+) create mode 100644 Input-wacom-Add-support-for-the-Cintiq-Companion.patch diff --git a/Input-wacom-Add-support-for-the-Cintiq-Companion.patch b/Input-wacom-Add-support-for-the-Cintiq-Companion.patch new file mode 100644 index 000000000..33691ccff --- /dev/null +++ b/Input-wacom-Add-support-for-the-Cintiq-Companion.patch @@ -0,0 +1,46 @@ +From bdfffc320102278edac2db5a397ffbfd89faeab3 Mon Sep 17 00:00:00 2001 +From: Benjamin Tissoires +Date: Wed, 3 Sep 2014 15:43:25 -0400 +Subject: [PATCH] Input: wacom: Add support for the Cintiq Companion + +The Wacom Cintiq Companion shares the same sensor than the Cintiq +Companion Hybrid, with the exception of the different PIDs. + +Bugzilla: 1134969 +Upstream-status: Queued for 3.18 + +Signed-off-by: Benjamin Tissoires +--- + drivers/input/tablet/wacom_wac.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c +index e73cf2c71f35..7f6caf8c85fb 100644 +--- a/drivers/input/tablet/wacom_wac.c ++++ b/drivers/input/tablet/wacom_wac.c +@@ -2332,6 +2332,13 @@ static const struct wacom_features wacom_features_0x0307 = + static const struct wacom_features wacom_features_0x0309 = + { "Wacom ISDv5 309", .type = WACOM_24HDT, /* Touch */ + .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x0307, .touch_max = 10 }; ++static const struct wacom_features wacom_features_0x030A = ++ { "Wacom ISDv5 30A", WACOM_PKGLEN_INTUOS, 59352, 33648, 2047, ++ 63, CINTIQ_HYBRID, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES, 200, 200, ++ .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x30C }; ++static const struct wacom_features wacom_features_0x030C = ++ { "Wacom ISDv5 30C", .type = WACOM_24HDT, /* Touch */ ++ .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x030A, .touch_max = 10 }; + + #define USB_DEVICE_WACOM(prod) \ + USB_DEVICE(USB_VENDOR_ID_WACOM, prod), \ +@@ -2478,6 +2485,8 @@ const struct usb_device_id wacom_ids[] = { + { USB_DEVICE_WACOM(0xFA) }, + { USB_DEVICE_WACOM(0xFB) }, + { USB_DEVICE_WACOM(0x0307) }, ++ { USB_DEVICE_WACOM(0x030A) }, ++ { USB_DEVICE_DETAILED(0x030C, USB_CLASS_HID, 0, 0) }, + { USB_DEVICE_DETAILED(0x0309, USB_CLASS_HID, 0, 0) }, + { USB_DEVICE_LENOVO(0x6004) }, + { } +-- +1.9.3 + diff --git a/kernel.spec b/kernel.spec index 94592f8cc..677bad1bb 100644 --- a/kernel.spec +++ b/kernel.spec @@ -656,6 +656,9 @@ Patch26017: isofs-Fix-unbounded-recursion-when-processing-relocated-directories. #rhbz 1132786 Patch26018: NFSv3-Fix-another-acl-regression.patch +#rhbz 1134969 +Patch26019: Input-wacom-Add-support-for-the-Cintiq-Companion.patch + # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel Patch30000: kernel-arm64.patch @@ -1396,6 +1399,9 @@ ApplyPatch isofs-Fix-unbounded-recursion-when-processing-relocated-directories.p #rhbz 1132786 ApplyPatch NFSv3-Fix-another-acl-regression.patch +#rhbz 1134969 +ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch + %if 0%{?aarch64patches} ApplyPatch kernel-arm64.patch %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. @@ -2272,6 +2278,9 @@ fi # ||----w | # || || %changelog +* Thu Sep 04 2014 Josh Boyer +- Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969) + * Tue Sep 02 2014 Josh Boyer - Remove with_extra switch From db4d0648e2d59f0df9b00afa7ffe0c1fef2c8a6d Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 5 Sep 2014 22:28:29 -0400 Subject: [PATCH 8/9] Linux v3.16.2 --- ...epth-to-32-when-connected-over-usb-2.patch | 36 ---- ...sing-streams-on-the-Etron-EJ168-cont.patch | 100 --------- NFSv3-Fix-another-acl-regression.patch | 37 ---- ...hen-processing-relocated-directories.patch | 199 ------------------ kernel.spec | 49 +---- ...l-check-get_acl-result-with-IS_ERR_O.patch | 41 ---- sched-fix-sched_setparam-policy-1-logic.patch | 68 ------ sources | 2 +- ...eams-on-Via-XHCI-with-device-id-0x34.patch | 42 ---- 9 files changed, 6 insertions(+), 568 deletions(-) delete mode 100644 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch delete mode 100644 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch delete mode 100644 NFSv3-Fix-another-acl-regression.patch delete mode 100644 isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch delete mode 100644 nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch delete mode 100644 sched-fix-sched_setparam-policy-1-logic.patch delete mode 100644 xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch diff --git a/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch b/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch deleted file mode 100644 index ec2af2ab2..000000000 --- a/0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 86da2d12cf6f76b1fa487f7acf3995f058a2e516 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 1 Aug 2014 17:27:49 +0200 -Subject: [PATCH v2 1/2] uas: Limit qdepth to 32 when connected over usb-2 - -Some jmicron uas chipsets act up (they disconnect from the bus) when sending -more then 32 commands to them at once. - -Rather then building an ever growing list with usb-id based quirks for -devices using this chipset, simply reduce the qdepth to 32 when connected -over usb-2. 32 should be plenty to keep things close to maximum -possible throughput on usb-2. - -Cc: stable@vger.kernel.org -Tested-and-reported-by: Laszlo T. -Signed-off-by: Hans de Goede ---- - drivers/usb/storage/uas.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c -index 511b229..3f42785 100644 ---- a/drivers/usb/storage/uas.c -+++ b/drivers/usb/storage/uas.c -@@ -1026,7 +1026,7 @@ static int uas_configure_endpoints(struct uas_dev_info *devinfo) - usb_endpoint_num(&eps[3]->desc)); - - if (udev->speed != USB_SPEED_SUPER) { -- devinfo->qdepth = 256; -+ devinfo->qdepth = 32; - devinfo->use_streams = 0; - } else { - devinfo->qdepth = usb_alloc_streams(devinfo->intf, eps + 1, --- -2.0.4 - diff --git a/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch b/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch deleted file mode 100644 index 1b6c45be0..000000000 --- a/0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch +++ /dev/null @@ -1,100 +0,0 @@ -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1121288 -Upstream-status: Send upstream for 3.16/3.17 with Cc: stable - -From 508b353921aa266c48f70e1cd9332d3e2ef67171 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 25 Jul 2014 12:28:02 +0200 -Subject: [PATCH v2] xhci: Blacklist using streams on the Etron EJ168 - controller - -Streams on the EJ168 do not work as they should. I've spend 2 days trying -to get them to work, but without success. - -The first problem is that when ever you ring the stream-ring doorbell, the -controller starts executing trbs at the beginning of the first ring segment, -event if it ended somewhere else previously. This can be worked around by -allowing enqueing only one td (not a problem with how streams are typically -used) and then resetting our copies of the enqueueing en dequeueing pointers -on a td completion to match what the controller seems to be doing. - -This way things seem to start working with uas and instead of being able -to complete only the very first scsi command, the scsi core can probe the disk. - -But then things break later on when td-s get enqueued with more then one -trb. The controller does seem to increase its dequeue pointer while executing -a stream-ring (data transfer events I inserted for debugging do trigger). -However execution seems to stop at the final normal trb of a multi trb td, -even if there is a data transfer event inserted after the final trb. - -The first problem alone is a serious deviation from the spec, and esp. -dealing with cancellation would have been very tricky if not outright -impossible, but the second problem simply is a deal breaker altogether, -so this patch simply disables streams. - -Note this will cause the usb-storage + uas driver pair to automatically switch -to using usb-storage instead of uas on these devices, essentially reverting -to the 3.14 and earlier behavior when uas was marked CONFIG_BROKEN. - -https://bugzilla.redhat.com/show_bug.cgi?id=1121288 -https://bugzilla.kernel.org/show_bug.cgi?id=80101 - -Cc: stable@vger.kernel.org # 3.15 -Signed-off-by: Hans de Goede ---- - drivers/usb/host/xhci-pci.c | 4 +++- - drivers/usb/host/xhci.c | 3 ++- - drivers/usb/host/xhci.h | 2 ++ - 3 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index e20520f..464049f 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -143,6 +143,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - pdev->device == PCI_DEVICE_ID_ASROCK_P67) { - xhci->quirks |= XHCI_RESET_ON_RESUME; - xhci->quirks |= XHCI_TRUST_TX_LENGTH; -+ xhci->quirks |= XHCI_BROKEN_STREAMS; - } - if (pdev->vendor == PCI_VENDOR_ID_RENESAS && - pdev->device == 0x0015) -@@ -230,7 +231,8 @@ static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) - goto put_usb3_hcd; - /* Roothub already marked as USB 3.0 speed */ - -- if (HCC_MAX_PSA(xhci->hcc_params) >= 4) -+ if (!(xhci->quirks & XHCI_BROKEN_STREAMS) && -+ HCC_MAX_PSA(xhci->hcc_params) >= 4) - xhci->shared_hcd->can_do_streams = 1; - - /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */ -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 7d02e1b..758bc31 100644 ---- a/drivers/usb/host/xhci.c -+++ b/drivers/usb/host/xhci.c -@@ -3163,7 +3163,8 @@ int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, - num_streams); - - /* MaxPSASize value 0 (2 streams) means streams are not supported */ -- if (HCC_MAX_PSA(xhci->hcc_params) < 4) { -+ if ((xhci->quirks & XHCI_BROKEN_STREAMS) || -+ HCC_MAX_PSA(xhci->hcc_params) < 4) { - xhci_dbg(xhci, "xHCI controller does not support streams.\n"); - return -ENOSYS; - } -diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h -index 1411069..88b2958 100644 ---- a/drivers/usb/host/xhci.h -+++ b/drivers/usb/host/xhci.h -@@ -1558,6 +1558,8 @@ struct xhci_hcd { - #define XHCI_PLAT (1 << 16) - #define XHCI_SLOW_SUSPEND (1 << 17) - #define XHCI_SPURIOUS_WAKEUP (1 << 18) -+/* For controllers with a broken beyond repair streams implementation */ -+#define XHCI_BROKEN_STREAMS (1 << 19) - unsigned int num_active_eps; - unsigned int limit_active_eps; - /* There are two roothubs to keep track of bus suspend info for */ --- -2.0.4 - diff --git a/NFSv3-Fix-another-acl-regression.patch b/NFSv3-Fix-another-acl-regression.patch deleted file mode 100644 index af3af2a66..000000000 --- a/NFSv3-Fix-another-acl-regression.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 498a0fb58f119bfa222065fc4f2932e81e1510ed Mon Sep 17 00:00:00 2001 -From: Trond Myklebust -Date: Sun, 24 Aug 2014 14:46:48 -0400 -Subject: [PATCH] NFSv3: Fix another acl regression - -When creating a new object on the NFS server, we should not be sending -posix setacl requests unless the preceding posix_acl_create returned a -non-trivial acl. Doing so, causes Solaris servers in particular to -return an EINVAL. - -Fixes: 013cdf1088d72 (nfs: use generic posix ACL infrastructure,,,) -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132786 -Cc: stable@vger.kernel.org # 3.14+ -Signed-off-by: Trond Myklebust ---- - fs/nfs/nfs3acl.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c -index d0fec260132a..24c6898159cc 100644 ---- a/fs/nfs/nfs3acl.c -+++ b/fs/nfs/nfs3acl.c -@@ -129,7 +129,10 @@ static int __nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl, - .rpc_argp = &args, - .rpc_resp = &fattr, - }; -- int status; -+ int status = 0; -+ -+ if (acl == NULL && (!S_ISDIR(inode->i_mode) || dfacl == NULL)) -+ goto out; - - status = -EOPNOTSUPP; - if (!nfs_server_capable(inode, NFS_CAP_ACLS)) --- -1.9.3 - diff --git a/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch b/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch deleted file mode 100644 index e937682f0..000000000 --- a/isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch +++ /dev/null @@ -1,199 +0,0 @@ -commit 410dd3cf4c9b36f27ed4542ee18b1af5e68645a4 -Author: Jan Kara -Date: Sun Aug 17 11:49:57 2014 +0200 - - isofs: Fix unbounded recursion when processing relocated directories - - We did not check relocated directory in any way when processing Rock - Ridge 'CL' tag. Thus a corrupted isofs image can possibly have a CL - entry pointing to another CL entry leading to possibly unbounded - recursion in kernel code and thus stack overflow or deadlocks (if there - is a loop created from CL entries). - - Fix the problem by not allowing CL entry to point to a directory entry - with CL entry (such use makes no good sense anyway) and by checking - whether CL entry doesn't point to itself. - - CC: stable@vger.kernel.org - Reported-by: Chris Evans - Signed-off-by: Jan Kara - -diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c -index 4556ce1..5ddaf86 100644 ---- a/fs/isofs/inode.c -+++ b/fs/isofs/inode.c -@@ -61,7 +61,7 @@ static void isofs_put_super(struct super_block *sb) - return; - } - --static int isofs_read_inode(struct inode *); -+static int isofs_read_inode(struct inode *, int relocated); - static int isofs_statfs (struct dentry *, struct kstatfs *); - - static struct kmem_cache *isofs_inode_cachep; -@@ -1259,7 +1259,7 @@ out_toomany: - goto out; - } - --static int isofs_read_inode(struct inode *inode) -+static int isofs_read_inode(struct inode *inode, int relocated) - { - struct super_block *sb = inode->i_sb; - struct isofs_sb_info *sbi = ISOFS_SB(sb); -@@ -1404,7 +1404,7 @@ static int isofs_read_inode(struct inode *inode) - */ - - if (!high_sierra) { -- parse_rock_ridge_inode(de, inode); -+ parse_rock_ridge_inode(de, inode, relocated); - /* if we want uid/gid set, override the rock ridge setting */ - if (sbi->s_uid_set) - inode->i_uid = sbi->s_uid; -@@ -1483,9 +1483,10 @@ static int isofs_iget5_set(struct inode *ino, void *data) - * offset that point to the underlying meta-data for the inode. The - * code below is otherwise similar to the iget() code in - * include/linux/fs.h */ --struct inode *isofs_iget(struct super_block *sb, -- unsigned long block, -- unsigned long offset) -+struct inode *__isofs_iget(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset, -+ int relocated) - { - unsigned long hashval; - struct inode *inode; -@@ -1507,7 +1508,7 @@ struct inode *isofs_iget(struct super_block *sb, - return ERR_PTR(-ENOMEM); - - if (inode->i_state & I_NEW) { -- ret = isofs_read_inode(inode); -+ ret = isofs_read_inode(inode, relocated); - if (ret < 0) { - iget_failed(inode); - inode = ERR_PTR(ret); -diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h -index 9916723..0ac4c1f 100644 ---- a/fs/isofs/isofs.h -+++ b/fs/isofs/isofs.h -@@ -107,7 +107,7 @@ extern int iso_date(char *, int); - - struct inode; /* To make gcc happy */ - --extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *); -+extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *, int relocated); - extern int get_rock_ridge_filename(struct iso_directory_record *, char *, struct inode *); - extern int isofs_name_translate(struct iso_directory_record *, char *, struct inode *); - -@@ -118,9 +118,24 @@ extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int - extern struct buffer_head *isofs_bread(struct inode *, sector_t); - extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long); - --extern struct inode *isofs_iget(struct super_block *sb, -- unsigned long block, -- unsigned long offset); -+struct inode *__isofs_iget(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset, -+ int relocated); -+ -+static inline struct inode *isofs_iget(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset) -+{ -+ return __isofs_iget(sb, block, offset, 0); -+} -+ -+static inline struct inode *isofs_iget_reloc(struct super_block *sb, -+ unsigned long block, -+ unsigned long offset) -+{ -+ return __isofs_iget(sb, block, offset, 1); -+} - - /* Because the inode number is no longer relevant to finding the - * underlying meta-data for an inode, we are free to choose a more -diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c -index c0bf424..f488bba 100644 ---- a/fs/isofs/rock.c -+++ b/fs/isofs/rock.c -@@ -288,12 +288,16 @@ eio: - goto out; - } - -+#define RR_REGARD_XA 1 -+#define RR_RELOC_DE 2 -+ - static int - parse_rock_ridge_inode_internal(struct iso_directory_record *de, -- struct inode *inode, int regard_xa) -+ struct inode *inode, int flags) - { - int symlink_len = 0; - int cnt, sig; -+ unsigned int reloc_block; - struct inode *reloc; - struct rock_ridge *rr; - int rootflag; -@@ -305,7 +309,7 @@ parse_rock_ridge_inode_internal(struct iso_directory_record *de, - - init_rock_state(&rs, inode); - setup_rock_ridge(de, inode, &rs); -- if (regard_xa) { -+ if (flags & RR_REGARD_XA) { - rs.chr += 14; - rs.len -= 14; - if (rs.len < 0) -@@ -485,12 +489,22 @@ repeat: - "relocated directory\n"); - goto out; - case SIG('C', 'L'): -- ISOFS_I(inode)->i_first_extent = -- isonum_733(rr->u.CL.location); -- reloc = -- isofs_iget(inode->i_sb, -- ISOFS_I(inode)->i_first_extent, -- 0); -+ if (flags & RR_RELOC_DE) { -+ printk(KERN_ERR -+ "ISOFS: Recursive directory relocation " -+ "is not supported\n"); -+ goto eio; -+ } -+ reloc_block = isonum_733(rr->u.CL.location); -+ if (reloc_block == ISOFS_I(inode)->i_iget5_block && -+ ISOFS_I(inode)->i_iget5_offset == 0) { -+ printk(KERN_ERR -+ "ISOFS: Directory relocation points to " -+ "itself\n"); -+ goto eio; -+ } -+ ISOFS_I(inode)->i_first_extent = reloc_block; -+ reloc = isofs_iget_reloc(inode->i_sb, reloc_block, 0); - if (IS_ERR(reloc)) { - ret = PTR_ERR(reloc); - goto out; -@@ -637,9 +651,11 @@ static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit) - return rpnt; - } - --int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode) -+int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode, -+ int relocated) - { -- int result = parse_rock_ridge_inode_internal(de, inode, 0); -+ int flags = relocated ? RR_RELOC_DE : 0; -+ int result = parse_rock_ridge_inode_internal(de, inode, flags); - - /* - * if rockridge flag was reset and we didn't look for attributes -@@ -647,7 +663,8 @@ int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode) - */ - if ((ISOFS_SB(inode->i_sb)->s_rock_offset == -1) - && (ISOFS_SB(inode->i_sb)->s_rock == 2)) { -- result = parse_rock_ridge_inode_internal(de, inode, 14); -+ result = parse_rock_ridge_inode_internal(de, inode, -+ flags | RR_REGARD_XA); - } - return result; - } diff --git a/kernel.spec b/kernel.spec index 677bad1bb..02f960536 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,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 301 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 1 +%define stable_update 2 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -632,30 +632,9 @@ Patch25109: revert-input-wacom-testing-result-shows-get_report-is-unnecessary.pa #rhbz 1021036, submitted upstream Patch25110: 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch -#rhbz 1117942 -Patch25118: sched-fix-sched_setparam-policy-1-logic.patch - #CVE-2014-{5206,5207} rhbz 1129662 1129669 Patch25119: namespaces-remount-fixes.patch -#rhbz 1121288 -Patch25120: 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch - -#rhbz 1128472 -Patch25121: 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch - -#rhbz 1131551 -Patch25122: nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch - -#rhbz 1132666 -Patch26016: xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch - -#CVE-2014-{5471,5472} rhbz 1134099 1134101 -Patch26017: isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch - -#rhbz 1132786 -Patch26018: NFSv3-Fix-another-acl-regression.patch - #rhbz 1134969 Patch26019: Input-wacom-Add-support-for-the-Cintiq-Companion.patch @@ -1375,30 +1354,9 @@ ApplyPatch revert-input-wacom-testing-result-shows-get_report-is-unnecessary.pat #rhbz 1021036, submitted upstream ApplyPatch 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch -#rhbz 1117942 -ApplyPatch sched-fix-sched_setparam-policy-1-logic.patch - #CVE-2014-{5206,5207} rhbz 1129662 1129669 ApplyPatch namespaces-remount-fixes.patch -#rhbz 1121288 -ApplyPatch 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch - -#rhbz 1128472 -ApplyPatch 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch - -#rhbz 1131551 -ApplyPatch nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch - -#rhbz 1132666 -ApplyPatch xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch - -#CVE-2014-{5471,5472} rhbz 1134099 1134101 -ApplyPatch isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch - -#rhbz 1132786 -ApplyPatch NFSv3-Fix-another-acl-regression.patch - #rhbz 1134969 ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch @@ -2278,6 +2236,9 @@ fi # ||----w | # || || %changelog +* Fri Sep 05 2014 Josh Boyer - 3.16.2-300 +- Linux v3.16.2 + * Thu Sep 04 2014 Josh Boyer - Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969) diff --git a/nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch b/nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch deleted file mode 100644 index 5f48a1262..000000000 --- a/nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch +++ /dev/null @@ -1,41 +0,0 @@ -Bugzilla: 1131551 -Upstream-status: 3.17-rc1 and Cc'd to stable - -From 7a9e75a185e6b3a3860e6a26fb6e88691fc2c9d9 Mon Sep 17 00:00:00 2001 -From: Andrey Utkin -Date: Sat, 26 Jul 2014 14:58:01 +0300 -Subject: [PATCH] nfs3_list_one_acl(): check get_acl() result with - IS_ERR_OR_NULL - -There was a check for result being not NULL. But get_acl() may return -NULL, or ERR_PTR, or actual pointer. -The purpose of the function where current change is done is to "list -ACLs only when they are available", so any error condition of get_acl() -mustn't be elevated, and returning 0 there is still valid. - -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81111 -Signed-off-by: Andrey Utkin -Reviewed-by: Christoph Hellwig -Fixes: 74adf83f5d77 (nfs: only show Posix ACLs in listxattr if actually...) -Cc: stable@vger.kernel.org # 3.14+ -Signed-off-by: Trond Myklebust ---- - fs/nfs/nfs3acl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c -index 8f854dde4150..d0fec260132a 100644 ---- a/fs/nfs/nfs3acl.c -+++ b/fs/nfs/nfs3acl.c -@@ -256,7 +256,7 @@ nfs3_list_one_acl(struct inode *inode, int type, const char *name, void *data, - char *p = data + *result; - - acl = get_acl(inode, type); -- if (!acl) -+ if (IS_ERR_OR_NULL(acl)) - return 0; - - posix_acl_release(acl); --- -1.9.3 - diff --git a/sched-fix-sched_setparam-policy-1-logic.patch b/sched-fix-sched_setparam-policy-1-logic.patch deleted file mode 100644 index 060e0dcef..000000000 --- a/sched-fix-sched_setparam-policy-1-logic.patch +++ /dev/null @@ -1,68 +0,0 @@ -Bugzilla: 1117942 -Upstream-status: Sent for 3.16 and seen by peterz - -The scheduler uses policy=-1 to preserve the current policy state to -implement sched_setparam(). But, as (int) -1 is equals to 0xffffffff, -it's matching the if (policy & SCHED_RESET_ON_FORK) on -_sched_setscheduler(). This match changes the policy value to an -invalid value, breaking the sched_setparam() syscall. - -This patch checks policy=-1 before check the SCHED_RESET_ON_FORK flag. - -The following program shows the bug: - -int main(void) -{ - struct sched_param param = { - .sched_priority = 5, - }; - - sched_setscheduler(0, SCHED_FIFO, ¶m); - param.sched_priority = 1; - sched_setparam(0, ¶m); - param.sched_priority = 0; - sched_getparam(0, ¶m); - if (param.sched_priority != 1) - printf("failed priority setting (found %d instead of 1)\n", - param.sched_priority); - else - printf("priority setting fine\n"); -} - -Cc: Peter Zijlstra -Cc: Ingo Molnar -Cc: Thomas Gleixner -Cc: stable@vger.kernel.org # 3.14+ -Fixes: 7479f3c9cf67 "sched: Move SCHED_RESET_ON_FORK into attr::sched_flags" -Reviewed-by: Steven Rostedt -Signed-off-by: Daniel Bristot de Oliveira - ---- - kernel/sched/core.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index bc1638b..0acf96b 100644 ---- a/kernel/sched/core.c -+++ b/kernel/sched/core.c -@@ -3558,9 +3558,10 @@ static int _sched_setscheduler(struct task_struct *p, int policy, - }; - - /* -- * Fixup the legacy SCHED_RESET_ON_FORK hack -+ * Fixup the legacy SCHED_RESET_ON_FORK hack, except if -+ * the policy=-1 was passed by sched_setparam(). - */ -- if (policy & SCHED_RESET_ON_FORK) { -+ if ((policy != -1) && (policy & SCHED_RESET_ON_FORK)) { - attr.sched_flags |= SCHED_FLAG_RESET_ON_FORK; - policy &= ~SCHED_RESET_ON_FORK; - attr.sched_policy = policy; --- -1.9.3 - --- -To unsubscribe from this list: send the line "unsubscribe linux-kernel" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html -Please read the FAQ at http://www.tux.org/lkml/ diff --git a/sources b/sources index 0dc4b028c..a9e9cd325 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 5c569ed649a0c9711879f333e90c5386 linux-3.16.tar.xz 49868ce6467b35cd9ffea1120d129462 perf-man-3.16.tar.gz -9da4b0f5e343455b8141bcfa47e88cf5 patch-3.16.1.xz +926e6e2ee0634ce53730701da749b040 patch-3.16.2.xz diff --git a/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch b/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch deleted file mode 100644 index 37543b923..000000000 --- a/xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 160cf46209944d2fd7e20e39cf3fa77b961b5b20 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Mon, 25 Aug 2014 12:21:56 +0200 -Subject: [PATCH] xhci: Disable streams on Via XHCI with device-id 0x3432 - -This is a bit bigger hammer then I would like to use for this, but for now -it will have to make do. I'm working on getting my hands on one of these so -that I can try to get streams to work (with a quirk flag if necessary) and -then we can re-enable them. - -For now this at least makes uas capable disk enclosures work again by forcing -fallback to the usb-storage driver. - -https://bugzilla.kernel.org/show_bug.cgi?id=79511 -Bugzilla: 1132666 -Upstream-status: Sent for 3.17 and Cc'd stable - -Cc: stable@vger.kernel.org # 3.15 -Signed-off-by: Hans de Goede ---- - drivers/usb/host/xhci-pci.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 687d36608155..d973682f72ce 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -151,6 +151,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) - if (pdev->vendor == PCI_VENDOR_ID_VIA) - xhci->quirks |= XHCI_RESET_ON_RESUME; - -+ /* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */ -+ if (pdev->vendor == PCI_VENDOR_ID_VIA && -+ pdev->device == 0x3432) -+ xhci->quirks |= XHCI_BROKEN_STREAMS; -+ - if (xhci->quirks & XHCI_RESET_ON_RESUME) - xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, - "QUIRK: Resetting on resume"); --- -1.9.3 - From a3f68e4d7bff4af2d08196a37b1864de07993621 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 8 Sep 2014 19:31:10 +0100 Subject: [PATCH 9/9] Build tools on ppc64le (rhbz 1138884), Some minor ppc64 cleanups --- kernel.spec | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/kernel.spec b/kernel.spec index 02f960536..e892c3fb8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -228,7 +228,7 @@ Summary: The Linux kernel %if %{with_vdso_install} # These arches install vdso/ directories. -%define vdso_arches %{all_x86} x86_64 ppc ppc64 ppc64p7 s390 s390x aarch64 ppc64le +%define vdso_arches %{all_x86} x86_64 ppc %{power64} s390 s390x aarch64 %endif # Overrides for generic default options @@ -253,12 +253,9 @@ Summary: The Linux kernel %endif # bootwrapper is only on ppc -%ifnarch ppc ppc64 ppc64p7 ppc64le +# sparse blows up on ppc +%ifnarch ppc %{power64} %define with_bootwrapper 0 -%endif - -# sparse blows up on ppc64 and sparc64 -%ifarch ppc64 ppc ppc64p7 ppc64le %define with_sparse 0 %endif @@ -280,25 +277,19 @@ Summary: The Linux kernel %define kernel_image arch/x86/boot/bzImage %endif +%ifarch %{power64} +%define asmarch powerpc +%define hdrarch powerpc +%define image_install_path boot +%define make_target vmlinux +%define kernel_image vmlinux +%define kernel_image_elf 1 %ifarch ppc64 ppc64p7 -%define asmarch powerpc -%define hdrarch powerpc %define all_arch_configs kernel-%{version}-ppc64*.config -%define image_install_path boot -%define make_target vmlinux -%define kernel_image vmlinux -%define kernel_image_elf 1 %endif - %ifarch ppc64le -%define asmarch powerpc -%define hdrarch powerpc %define all_arch_configs kernel-%{version}-ppc64le.config -%define image_install_path boot -%define make_target vmlinux -%define kernel_image vmlinux -%define kernel_image_elf 1 -%define with_tools 0 +%endif %endif %ifarch s390x @@ -386,7 +377,7 @@ Summary: The Linux kernel %endif # Architectures we build tools/cpupower on -%define cpupowerarchs %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} aarch64 ppc64le +%define cpupowerarchs %{ix86} x86_64 ppc %{power64} %{arm} aarch64 # # Packages that need to be installed before the kernel is, because the %%post @@ -1590,7 +1581,7 @@ BuildKernel() { fi rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o -%ifarch ppc ppc64 ppc64p7 +%ifarch ppc %{power64} cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/ %endif if [ -d arch/%{asmarch}/include ]; then @@ -2236,6 +2227,10 @@ fi # ||----w | # || || %changelog +* Mon Sep 8 2014 Peter Robinson +- Build tools on ppc64le (rhbz 1138884) +- Some minor ppc64 cleanups + * Fri Sep 05 2014 Josh Boyer - 3.16.2-300 - Linux v3.16.2