Am 18.04.2014 22:38, schrieb Tejun Heo:
Hello,
Sorry about the long delay.
On Thu, Apr 03, 2014 at 08:37:49AM +0200, Tobias Powalowski wrote:
Hi,
I bisected a X startup crash due to new 3.14 kernel:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/fs/kernfs/file.c?id=9b2db6e1894577d48f4e290381bac6e573593838
It's an old intel 810 graphics card which got broken.
dmesg and xorg.log attached.
Hmm... I'm stumped. The patch shouldn't cause any visible difference
to the userland. I went over it a couple more times and still can't
see how this would make any difference. Can you please do the
followings?
* Repeat the test on v3.14 with only the patch reverted. If it makes
the problem go away reliably,
* strace X startup on v3.14 and v3.14 sans the offending patch.
Thanks!
Hi,
attached patch which solves my issue with 3.14.1
interesting part are those4 lines:
-if (ops-mmap)
-rc = ops-mmap(of, vma);
-if (rc)
-goto out_put;
I built kernel with different parts of the bisection patch reverted.
Last I added those reverts and it started working again.
Hope this helps.
greetings
tpowa
--
Tobias Powalowski
Archlinux Developer Package Maintainer (tpowa)
http://www.archlinux.org
tp...@archlinux.org
--- linux-3.14/fs/kernfs/file.c.orig 2014-03-31 05:40:15.0 +0200
+++ linux-3.14/fs/kernfs/file.c 2014-04-19 08:22:11.754042780 +0200
@@ -458,16 +458,6 @@
const struct kernfs_ops *ops;
int rc;
- /*
- * mmap path and of-mutex are prone to triggering spurious lockdep
- * warnings and we don't want to add spurious locking dependency
- * between the two. Check whether mmap is actually implemented
- * without grabbing @of-mutex by testing HAS_MMAP flag. See the
- * comment in kernfs_file_open() for more details.
- */
- if (!(of-kn-flags KERNFS_HAS_MMAP))
- return -ENODEV;
-
mutex_lock(of-mutex);
rc = -ENODEV;
@@ -475,7 +468,10 @@
goto out_unlock;
ops = kernfs_ops(of-kn);
+ if (ops-mmap)
+ rc = ops-mmap(of, vma);
+ if (rc)
+ goto out_put;
- rc = ops-mmap(of, vma);
/*
* PowerPC's pci_mmap of legacy_mem uses shmem_zero_setup()
--- linux-3.14/fs/sysfs/file.c.old 2014-03-31 05:40:15.0 +0200
+++ linux-3.14/fs/sysfs/file.c 2014-04-19 11:18:53.296366182 +0200
@@ -141,7 +141,10 @@
{
struct bin_attribute *battr = of-kn-priv;
struct kobject *kobj = of-kn-parent-priv;
-
+
+ if (!battr-mmap)
+ return -ENODEV;
+
return battr-mmap(of-file, kobj, battr, vma);
}
@@ -194,11 +197,6 @@
static const struct kernfs_ops sysfs_bin_kfops_rw = {
.read = sysfs_kf_bin_read,
.write = sysfs_kf_bin_write,
-};
-
-static const struct kernfs_ops sysfs_bin_kfops_mmap = {
- .read = sysfs_kf_bin_read,
- .write = sysfs_kf_bin_write,
.mmap = sysfs_kf_bin_mmap,
};
@@ -234,9 +232,7 @@
} else {
struct bin_attribute *battr = (void *)attr;
- if (battr-mmap)
- ops = sysfs_bin_kfops_mmap;
- else if (battr-read battr-write)
+ if ((battr-read battr-write) || battr-mmap)
ops = sysfs_bin_kfops_rw;
else if (battr-read)
ops = sysfs_bin_kfops_ro;
signature.asc
Description: OpenPGP digital signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx