Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at Mon Nov 22 09:52:09 CET 2010. -------- --- kernel-source/kernel-debug.changes 2010-11-18 07:00:22.000000000 +0100 +++ /mounts/work_src_done/STABLE/kernel-source/kernel-debug.changes 2010-11-22 07:00:23.000000000 +0100 @@ -1,0 +2,6 @@ +Sun Nov 21 16:35:45 CET 2010 - jslaby@suse.cz + +- PCI: fix offset check for sysfs mmapped files (bnc#655157). +- commit 2938f56 + +------------------------------------------------------------------- kernel-default.changes: same change kernel-desktop.changes: same change kernel-docs.changes: same change kernel-net.changes: same change kernel-pae.changes: same change kernel-ppc64.changes: same change kernel-ps3.changes: same change kernel-s390.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-trace.changes: same change kernel-vanilla.changes: same change kernel-vmi.changes: same change calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:44.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:44.000000000 +0100 @@ -56,7 +56,7 @@ Name: kernel-debug Summary: A Debug Version of the Kernel Version: 2.6.37 -Release: 1 +Release: 2 %if %using_buildservice %else %endif kernel-default.spec: same change kernel-desktop.spec: same change kernel-docs.spec: same change kernel-net.spec: same change kernel-pae.spec: same change kernel-ppc64.spec: same change kernel-ps3.spec: same change kernel-s390.spec: same change kernel-source.spec: same change ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:45.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:45.000000000 +0100 @@ -24,7 +24,7 @@ Name: kernel-syms Summary: Kernel Symbol Versions (modversions) Version: 2.6.37 -Release: 1 +Release: 2 %if %using_buildservice %else %define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0) ++++++ kernel-trace.spec ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:45.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:45.000000000 +0100 @@ -56,7 +56,7 @@ Name: kernel-trace Summary: The Standard Kernel with Tracing Features Version: 2.6.37 -Release: 1 +Release: 2 %if %using_buildservice %else %endif kernel-vanilla.spec: same change kernel-vmi.spec: same change ++++++ minmem ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:47.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:47.000000000 +0100 @@ -1 +1 @@ -2096000 +1048576 ++++++ needed_space_in_mb ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:47.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:47.000000000 +0100 @@ -1 +1 @@ -6000 +6144 ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/PCI-fix-offset-check-for-sysfs-mmapped-files.patch new/patches.fixes/PCI-fix-offset-check-for-sysfs-mmapped-files.patch --- old/patches.fixes/PCI-fix-offset-check-for-sysfs-mmapped-files.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/PCI-fix-offset-check-for-sysfs-mmapped-files.patch 2010-11-21 16:35:45.000000000 +0100 @@ -0,0 +1,66 @@ +From 8c05cd08a7504b855c265263e84af61aabafa329 Mon Sep 17 00:00:00 2001 +From: Darrick J. Wong <djwong@us.ibm.com> +Date: Tue, 16 Nov 2010 09:13:41 -0800 +Subject: PCI: fix offset check for sysfs mmapped files +Git-commit: 8c05cd08a7504b855c265263e84af61aabafa329 +Patch-mainline: yes +References: bnc#655157 + +I just loaded 2.6.37-rc2 on my machines, and I noticed that X no longer starts. +Running an strace of the X server shows that it's doing this: + +open("/sys/bus/pci/devices/0000:07:00.0/resource0", O_RDWR) = 10 +mmap(NULL, 16777216, PROT_READ|PROT_WRITE, MAP_SHARED, 10, 0) = -1 EINVAL (Invalid argument) + +This code seems to be asking for a shared read/write mapping of 16MB worth of +BAR0 starting at file offset 0, and letting the kernel assign a starting +address. Unfortunately, this -EINVAL causes X not to start. Looking into +dmesg, there's a complaint like so: + +process "Xorg" tried to map 0x01000000 bytes at page 0x00000000 on 0000:07:00.0 BAR 0 (start 0x 96000000, size 0x 1000000) + +...with the following code in pci_mmap_fits: + + pci_start = (mmap_api == PCI_MMAP_SYSFS) ? + pci_resource_start(pdev, resno) >> PAGE_SHIFT : 0; + if (start >= pci_start && start < pci_start + size && + start + nr <= pci_start + size) + +It looks like the logic here is set up such that when the mmap call comes via +sysfs, the check in pci_mmap_fits wants vma->vm_pgoff to be between the +resource's start and end address, and the end of the vma to be no farther than +the end. However, the sysfs PCI resource files always start at offset zero, +which means that this test always fails for programs that mmap the sysfs files. +Given the comment in the original commit +3b519e4ea618b6943a82931630872907f9ac2c2b, I _think_ the old procfs files +require that the file offset be equal to the resource's base address when +mmapping. + +I think what we want here is for pci_start to be 0 when mmap_api == +PCI_MMAP_PROCFS. The following patch makes that change, after which the Matrox +and Mach64 X drivers work again. + +Acked-by: Martin Wilck <martin.wilck@ts.fujitsu.com> +Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> +Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> +Signed-off-by: Jiri Slaby <jslaby@suse.cz> +--- + drivers/pci/pci-sysfs.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c +index 95712a3..63d5042 100644 +--- a/drivers/pci/pci-sysfs.c ++++ b/drivers/pci/pci-sysfs.c +@@ -715,7 +715,7 @@ int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vma, + nr = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; + start = vma->vm_pgoff; + size = ((pci_resource_len(pdev, resno) - 1) >> PAGE_SHIFT) + 1; +- pci_start = (mmap_api == PCI_MMAP_SYSFS) ? ++ pci_start = (mmap_api == PCI_MMAP_PROCFS) ? + pci_resource_start(pdev, resno) >> PAGE_SHIFT : 0; + if (start >= pci_start && start < pci_start + size && + start + nr <= pci_start + size) +-- +1.7.3.1 + ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:47.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:47.000000000 +0100 @@ -523,6 +523,7 @@ ######################################################## # PCI and PCI hotplug ######################################################## + patches.fixes/PCI-fix-offset-check-for-sysfs-mmapped-files.patch ######################################################## # sysfs / driver core ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.ZOgfk8/_old 2010-11-22 09:47:47.000000000 +0100 +++ /var/tmp/diff_new_pack.ZOgfk8/_new 2010-11-22 09:47:47.000000000 +0100 @@ -1,3 +1,3 @@ -2010-11-17 19:05:40 +0100 -GIT Revision: 4ae942ebe8ddf283eb508544a2454d29da63996c +2010-11-21 16:35:45 +0100 +GIT Revision: 2938f568e86f78ebe4ede547405f44599cea768c GIT Branch: master ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org