[kernel] Linux v3.19-8975-g3d883483dc0a

Josh Boyer jwboyer at fedoraproject.org
Fri Feb 20 14:34:20 UTC 2015


commit 2296e4a64733ab0d972c51b26cbaec734b11a5dd
Author: Josh Boyer <jwboyer at fedoraproject.org>
Date:   Fri Feb 20 09:32:10 2015 -0500

    Linux v3.19-8975-g3d883483dc0a
    
    - Add patch to fix intermittent hangs in nouveau driver
    - Move mtpspi and related mods to kernel-core for VMWare guests (rhbz 1194612)

 KEYS-Add-a-system-blacklist-keyring.patch          |   2 +-
 Kbuild-Add-an-option-to-enable-GCC-VTA.patch       |   2 +-
 ...Import-certificates-from-UEFI-Secure-Boot.patch |   2 +-
 config-armv7-generic                               |   1 +
 criu-no-expert.patch                               |   2 +-
 ...emove-the-loop-from-the-interrupt-handler.patch | 135 +++++++++++++++++++++
 filter-i686.sh                                     |   2 +-
 filter-modules.sh                                  |   2 +-
 kernel.spec                                        |  15 ++-
 ...-Make-CPUMASK_OFFSTACK-usable-without-deb.patch |   2 +-
 ...top-Add-use_native_backlight-quirk-and-en.patch | 107 ----------------
 sources                                            |   2 +-
 12 files changed, 154 insertions(+), 120 deletions(-)
---
diff --git a/KEYS-Add-a-system-blacklist-keyring.patch b/KEYS-Add-a-system-blacklist-keyring.patch
index e4de4be..9feb8e9 100644
--- a/KEYS-Add-a-system-blacklist-keyring.patch
+++ b/KEYS-Add-a-system-blacklist-keyring.patch
@@ -29,7 +29,7 @@ index 72665eb80692..2c7b80d31366 100644
 +
  #endif /* _KEYS_SYSTEM_KEYRING_H */
 diff --git a/init/Kconfig b/init/Kconfig
-index 058e3671fa11..ee83b7c6856c 100644
+index f5dbc6d4261b..eca8ab59ae7f 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
 @@ -1734,6 +1734,15 @@ config SYSTEM_TRUSTED_KEYRING
diff --git a/Kbuild-Add-an-option-to-enable-GCC-VTA.patch b/Kbuild-Add-an-option-to-enable-GCC-VTA.patch
index d03ace3..c3f957b 100644
--- a/Kbuild-Add-an-option-to-enable-GCC-VTA.patch
+++ b/Kbuild-Add-an-option-to-enable-GCC-VTA.patch
@@ -43,7 +43,7 @@ Signed-off-by: Josh Stone <jistone at redhat.com>
  2 files changed, 21 insertions(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index dd8796caa239..edbbaccff485 100644
+index 19e256ae2679..376e8a456f72 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -706,7 +706,11 @@ KBUILD_CFLAGS	+= -fomit-frame-pointer
diff --git a/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch b/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
index 05a3cd8..e5bc470 100644
--- a/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
+++ b/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
@@ -42,7 +42,7 @@ index 706b16fa6de8..470e8dfcb517 100644
  	efi_guid_t guid;
  	u64 table;
 diff --git a/init/Kconfig b/init/Kconfig
-index ee83b7c6856c..3b9ecb2d12af 100644
+index eca8ab59ae7f..9a782b02e4d5 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
 @@ -1888,6 +1888,15 @@ config MODULE_SIG_ALL
diff --git a/config-armv7-generic b/config-armv7-generic
index a8a6dcd..761fd02 100644
--- a/config-armv7-generic
+++ b/config-armv7-generic
@@ -232,6 +232,7 @@ CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y
 CONFIG_ARM_EXYNOS_CPUIDLE=y
 CONFIG_ARM_EXYNOS5_BUS_DEVFREQ=m
 # CONFIG_EXYNOS5420_MCPM not set
+CONFIG_ARM_EXYNOS_CPUFREQ=m
 
 CONFIG_I2C_EXYNOS5=m
 CONFIG_I2C_S3C2410=m
diff --git a/criu-no-expert.patch b/criu-no-expert.patch
index 800b2e1..6c48857 100644
--- a/criu-no-expert.patch
+++ b/criu-no-expert.patch
@@ -9,7 +9,7 @@ Upstream-status: Fedora mustard
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/init/Kconfig b/init/Kconfig
-index 3b9ecb2d12af..e2e09df716d1 100644
+index 9a782b02e4d5..d97b5032d4b0 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
 @@ -1135,7 +1135,7 @@ config DEBUG_BLK_CGROUP
diff --git a/fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch b/fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
new file mode 100644
index 0000000..480ff93
--- /dev/null
+++ b/fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
@@ -0,0 +1,135 @@
+From: Ben Skeggs <bskeggs at redhat.com>
+Date: Tue, 27 Jan 2015 15:09:39 +1000
+Subject: [PATCH] fifo/nv04: remove the loop from the interrupt handler
+
+Complete bong hit (and not the last...), the hardware will reassert the
+interrupt to PMC if it's necessary.
+
+Also potentially harmful in the face of interrupts such as the non-stall
+interrupt, which remain active in NV_PFIFO_INTR even when we don't care
+about servicing it.
+
+It appears (hopefully, fdo#87244), that under certain loads, the methods
+may pass quickly enough to hit the "100 spins and kill PFIFO" thing that
+we had going on.  Not ideal ;)
+
+Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
+---
+ drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 85 ++++++++++---------------
+ 1 file changed, 35 insertions(+), 50 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
+index b038b6eb51db..043e4296084c 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
++++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
+@@ -502,72 +502,57 @@ nv04_fifo_intr(struct nvkm_subdev *subdev)
+ {
+ 	struct nvkm_device *device = nv_device(subdev);
+ 	struct nv04_fifo_priv *priv = (void *)subdev;
+-	uint32_t status, reassign;
+-	int cnt = 0;
++	u32 mask = nv_rd32(priv, NV03_PFIFO_INTR_EN_0);
++	u32 stat = nv_rd32(priv, NV03_PFIFO_INTR_0) & mask;
++	u32 reassign, chid, get, sem;
+ 
+ 	reassign = nv_rd32(priv, NV03_PFIFO_CACHES) & 1;
+-	while ((status = nv_rd32(priv, NV03_PFIFO_INTR_0)) && (cnt++ < 100)) {
+-		uint32_t chid, get;
+-
+-		nv_wr32(priv, NV03_PFIFO_CACHES, 0);
+-
+-		chid = nv_rd32(priv, NV03_PFIFO_CACHE1_PUSH1) & priv->base.max;
+-		get  = nv_rd32(priv, NV03_PFIFO_CACHE1_GET);
++	nv_wr32(priv, NV03_PFIFO_CACHES, 0);
+ 
+-		if (status & NV_PFIFO_INTR_CACHE_ERROR) {
+-			nv04_fifo_cache_error(device, priv, chid, get);
+-			status &= ~NV_PFIFO_INTR_CACHE_ERROR;
+-		}
++	chid = nv_rd32(priv, NV03_PFIFO_CACHE1_PUSH1) & priv->base.max;
++	get  = nv_rd32(priv, NV03_PFIFO_CACHE1_GET);
+ 
+-		if (status & NV_PFIFO_INTR_DMA_PUSHER) {
+-			nv04_fifo_dma_pusher(device, priv, chid);
+-			status &= ~NV_PFIFO_INTR_DMA_PUSHER;
+-		}
++	if (stat & NV_PFIFO_INTR_CACHE_ERROR) {
++		nv04_fifo_cache_error(device, priv, chid, get);
++		stat &= ~NV_PFIFO_INTR_CACHE_ERROR;
++	}
+ 
+-		if (status & NV_PFIFO_INTR_SEMAPHORE) {
+-			uint32_t sem;
++	if (stat & NV_PFIFO_INTR_DMA_PUSHER) {
++		nv04_fifo_dma_pusher(device, priv, chid);
++		stat &= ~NV_PFIFO_INTR_DMA_PUSHER;
++	}
+ 
+-			status &= ~NV_PFIFO_INTR_SEMAPHORE;
+-			nv_wr32(priv, NV03_PFIFO_INTR_0,
+-				NV_PFIFO_INTR_SEMAPHORE);
++	if (stat & NV_PFIFO_INTR_SEMAPHORE) {
++		stat &= ~NV_PFIFO_INTR_SEMAPHORE;
++		nv_wr32(priv, NV03_PFIFO_INTR_0, NV_PFIFO_INTR_SEMAPHORE);
+ 
+-			sem = nv_rd32(priv, NV10_PFIFO_CACHE1_SEMAPHORE);
+-			nv_wr32(priv, NV10_PFIFO_CACHE1_SEMAPHORE, sem | 0x1);
++		sem = nv_rd32(priv, NV10_PFIFO_CACHE1_SEMAPHORE);
++		nv_wr32(priv, NV10_PFIFO_CACHE1_SEMAPHORE, sem | 0x1);
+ 
+-			nv_wr32(priv, NV03_PFIFO_CACHE1_GET, get + 4);
+-			nv_wr32(priv, NV04_PFIFO_CACHE1_PULL0, 1);
+-		}
++		nv_wr32(priv, NV03_PFIFO_CACHE1_GET, get + 4);
++		nv_wr32(priv, NV04_PFIFO_CACHE1_PULL0, 1);
++	}
+ 
+-		if (device->card_type == NV_50) {
+-			if (status & 0x00000010) {
+-				status &= ~0x00000010;
+-				nv_wr32(priv, 0x002100, 0x00000010);
+-			}
+-
+-			if (status & 0x40000000) {
+-				nv_wr32(priv, 0x002100, 0x40000000);
+-				nvkm_fifo_uevent(&priv->base);
+-				status &= ~0x40000000;
+-			}
++	if (device->card_type == NV_50) {
++		if (stat & 0x00000010) {
++			stat &= ~0x00000010;
++			nv_wr32(priv, 0x002100, 0x00000010);
+ 		}
+ 
+-		if (status) {
+-			nv_warn(priv, "unknown intr 0x%08x, ch %d\n",
+-				status, chid);
+-			nv_wr32(priv, NV03_PFIFO_INTR_0, status);
+-			status = 0;
++		if (stat & 0x40000000) {
++			nv_wr32(priv, 0x002100, 0x40000000);
++			nvkm_fifo_uevent(&priv->base);
++			stat &= ~0x40000000;
+ 		}
+-
+-		nv_wr32(priv, NV03_PFIFO_CACHES, reassign);
+ 	}
+ 
+-	if (status) {
+-		nv_error(priv, "still angry after %d spins, halt\n", cnt);
+-		nv_wr32(priv, 0x002140, 0);
+-		nv_wr32(priv, 0x000140, 0);
++	if (stat) {
++		nv_warn(priv, "unknown intr 0x%08x\n", stat);
++		nv_mask(priv, NV03_PFIFO_INTR_EN_0, stat, 0x00000000);
++		nv_wr32(priv, NV03_PFIFO_INTR_0, stat);
+ 	}
+ 
+-	nv_wr32(priv, 0x000100, 0x00000100);
++	nv_wr32(priv, NV03_PFIFO_CACHES, reassign);
+ }
+ 
+ static int
+-- 
+2.1.0
+
diff --git a/filter-i686.sh b/filter-i686.sh
index 430ccf7..1f3f972 100644
--- a/filter-i686.sh
+++ b/filter-i686.sh
@@ -9,6 +9,6 @@
 # modifications to the overrides below.  If something should be removed across
 # all arches, remove it in the default instead of per-arch.
 
-driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
+driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
 
 singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation target_core_user"
diff --git a/filter-modules.sh b/filter-modules.sh
index d5f56e5..f02ec47 100755
--- a/filter-modules.sh
+++ b/filter-modules.sh
@@ -14,7 +14,7 @@
 # listed here.
 
 # Set the default dirs/modules to filter out
-driverdirs="atm auxdisplay bcma bluetooth fmc iio infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
+driverdirs="atm auxdisplay bcma bluetooth fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
 
 netdrvs="appletalk dsa hamradio ieee802154 irda ppp slip usb wireless"
 
diff --git a/kernel.spec b/kernel.spec
index fb56e10..5380644 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -69,7 +69,7 @@ Summary: The Linux kernel
 # The rc snapshot level
 %define rcrev 0
 # The git snapshot level
-%define gitrev 9
+%define gitrev 10
 # Set rpm version accordingly
 %define rpmversion 3.%{upstream_sublevel}.0
 %endif
@@ -606,8 +606,6 @@ Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
 #rhbz 1111138
 Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
 
-#rhbz 1115713
-Patch26129: samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
 #rhbz 1094948
 Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
 
@@ -622,6 +620,8 @@ Patch26135: ASLR-fix-stack-randomization-on-64-bit-systems.patch
 #CVE-XXXX-XXXX rhbz 1189864 1192079
 Patch26136: vhost-scsi-potential-memory-corruption.patch
 
+Patch26137: fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
+
 # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
 Patch30000: kernel-arm64.patch
 Patch30001: kernel-arm64-fix-psci-when-pg.patch
@@ -1338,8 +1338,6 @@ ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
 #rhbz 1111138
 ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
 
-#rhbz 1115713
-ApplyPatch samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
 #rhbz 1094948
 ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
 
@@ -1354,6 +1352,8 @@ ApplyPatch ASLR-fix-stack-randomization-on-64-bit-systems.patch
 #CVE-XXXX-XXXX rhbz 1189864 1192079
 ApplyPatch vhost-scsi-potential-memory-corruption.patch
 
+ApplyPatch fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
+
 %if 0%{?aarch64patches}
 ApplyPatch kernel-arm64.patch
 %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
@@ -2212,6 +2212,11 @@ fi
 #
 # 
 %changelog
+* Fri Feb 20 2015 Josh Boyer <jwboyer at fedoraproject.org> - 3.20.0-0.rc0.git10.1
+- Linux v3.19-8975-g3d883483dc0a
+- Add patch to fix intermittent hangs in nouveau driver
+- Move mtpspi and related mods to kernel-core for VMWare guests (rhbz 1194612)
+
 * Wed Feb 18 2015 Josh Boyer <jwboyer at fedoraproject.org> - 3.20.0-0.rc0.git9.1
 - Linux v3.19-8784-gb2b89ebfc0f0
 
diff --git a/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch b/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
index ee8482b..b5b95c0 100644
--- a/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
+++ b/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
@@ -19,7 +19,7 @@ Signed-off-by: Josh Boyer <jwboyer at fedoraproject.org>
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/lib/Kconfig b/lib/Kconfig
-index cb9758e0ba0c..8687e26fd8c8 100644
+index 87da53bb1fef..c767ba0cbab7 100644
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
 @@ -391,7 +391,8 @@ config CHECK_SIGNATURE
diff --git a/sources b/sources
index 016f873..f8e7faf 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
 d3fc8316d4d4d04b65cbc2d70799e763  linux-3.19.tar.xz
 15d8d2f97ce056488451a5bfb2944603  perf-man-3.19.tar.gz
-af577efdd72c39570ba52854e2276d78  patch-3.19-git9.xz
+d7783c6837600b2db12ff9bc603de6c0  patch-3.19-git10.xz


More information about the scm-commits mailing list