All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tobias Powalowski <tobias.powalowski@googlemail.com>
To: Tejun Heo <tj@kernel.org>
Cc: davej@redhat.com, "Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Thomas Bächler" <thomas@archlinux.org>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	gregkh@linuxfoundation.org
Subject: Re: 3.14 issue with i810 graphic card bisected
Date: Sat, 19 Apr 2014 20:00:50 +0200	[thread overview]
Message-ID: <5352B9D2.1020408@googlemail.com> (raw)
In-Reply-To: <20140418203825.GK23576@htj.dyndns.org>


[-- Attachment #1.1.1: Type: text/plain, Size: 1352 bytes --]

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
tpowa@archlinux.org


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.1.2: fix-i810.patch --]
[-- Type: text/x-patch; name="fix-i810.patch", Size: 1925 bytes --]

--- linux-3.14/fs/kernfs/file.c.orig	2014-03-31 05:40:15.000000000 +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.000000000 +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;

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 555 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2014-04-19 18:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-03  6:37 3.14 issue with i810 graphic card bisected Tobias Powalowski
2014-04-18 20:38 ` Tejun Heo
2014-04-19  5:36   ` Tobias Powalowski
2014-04-19 18:00   ` Tobias Powalowski [this message]
2014-04-19 19:00   ` Tobias Powalowski
2014-04-20  2:19     ` Felix Miata
2014-05-15  0:56       ` Felix Miata
2014-05-15  7:08         ` Daniel Vetter
2014-04-20 12:29     ` [PATCH driver-core-linus] kernfs: add back missing error check in kernfs_fop_mmap() Tejun Heo
2014-04-20 12:29       ` Tejun Heo
2014-04-20 16:55       ` Tobias Powalowski
2014-04-20 16:55         ` Tobias Powalowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5352B9D2.1020408@googlemail.com \
    --to=tobias.powalowski@googlemail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=davej@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=thomas@archlinux.org \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.