Merge branch 'f21' into baytrail
This commit is contained in:
commit
8a5770dc47
@ -1,36 +0,0 @@
|
||||
From 86da2d12cf6f76b1fa487f7acf3995f058a2e516 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
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. <tlacix@gmail.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
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
|
||||
|
@ -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 <hdegoede@redhat.com>
|
||||
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 <hdegoede@redhat.com>
|
||||
---
|
||||
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
|
||||
|
46
Input-wacom-Add-support-for-the-Cintiq-Companion.patch
Normal file
46
Input-wacom-Add-support-for-the-Cintiq-Companion.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From bdfffc320102278edac2db5a397ffbfd89faeab3 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
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 <benjamin.tissoires@redhat.com>
|
||||
---
|
||||
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
|
||||
|
1
Makefile
1
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
59
config-armv7
59
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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -4354,6 +4354,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
|
||||
|
||||
|
@ -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
|
||||
|
104
kernel.spec
104
kernel.spec
@ -43,7 +43,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
|
||||
@ -55,7 +55,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}
|
||||
@ -95,8 +95,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
|
||||
@ -231,7 +229,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
|
||||
@ -256,12 +254,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
|
||||
|
||||
@ -283,25 +278,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
|
||||
@ -389,7 +378,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
|
||||
@ -635,20 +624,11 @@ 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 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
|
||||
@ -948,9 +928,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}
|
||||
|
||||
@ -1392,20 +1370,11 @@ 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 1134969
|
||||
ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
%if 0%{?aarch64patches}
|
||||
ApplyPatch kernel-arm64.patch
|
||||
@ -1652,7 +1621,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
|
||||
@ -1729,10 +1698,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
|
||||
@ -2102,9 +2069,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:\
|
||||
@ -2265,9 +2230,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}\
|
||||
@ -2304,6 +2267,35 @@ fi
|
||||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Sep 8 2014 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- Build tools on ppc64le (rhbz 1138884)
|
||||
- Some minor ppc64 cleanups
|
||||
|
||||
* Fri Sep 05 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.16.2-300
|
||||
- Linux v3.16.2
|
||||
|
||||
* Thu Sep 04 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969)
|
||||
|
||||
* Tue Sep 02 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Remove with_extra switch
|
||||
|
||||
* Thu Aug 28 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Fix NFSv3 ACL regression (rhbz 1132786)
|
||||
- Don't enable CONFIG_DEBUG_WW_MUTEX_SLOWPATH (rhbz 1114160)
|
||||
|
||||
* Wed Aug 27 2014 Justin M. Forbes <jforbes@fedoraproject.org>
|
||||
- CVE-2014-{5471,5472} isofs: Fix unbounded recursion when processing relocated
|
||||
directories (rhbz 1134099 1134101)
|
||||
|
||||
* Wed Aug 27 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Disable streams on via XHCI (rhbz 1132666)
|
||||
|
||||
* Tue Aug 26 2014 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- 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 <jwboyer@fedoraproject.org> - 3.16.1-301
|
||||
- Drop userns revert patch (rhbz 917708)
|
||||
|
||||
|
@ -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 <andrey.krieger.utkin@gmail.com>
|
||||
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 <andrey.krieger.utkin@gmail.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
Fixes: 74adf83f5d77 (nfs: only show Posix ACLs in listxattr if actually...)
|
||||
Cc: stable@vger.kernel.org # 3.14+
|
||||
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
|
||||
---
|
||||
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
|
||||
|
@ -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 <peterz@infradead.org>
|
||||
Cc: Ingo Molnar <mingo@kernel.org>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: stable@vger.kernel.org # 3.14+
|
||||
Fixes: 7479f3c9cf67 "sched: Move SCHED_RESET_ON_FORK into attr::sched_flags"
|
||||
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
|
||||
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
|
||||
|
||||
---
|
||||
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/
|
Loading…
Reference in New Issue
Block a user