From: Ben Widawsky <ben@bwidawsk.net>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915/overlay: Fix unpinning along init error paths
Date: Tue, 28 Jun 2011 08:57:14 -0700 [thread overview]
Message-ID: <20110628155714.GA2961@snipes.kumite> (raw)
In-Reply-To: <1309256867-26210-1-git-send-email-chris@chris-wilson.co.uk>
On Tue, Jun 28, 2011 at 11:27:47AM +0100, Chris Wilson wrote:
> As pointed out by Dan Carpenter, it was seemingly possible to hit an error
> whilst mapping the buffer for the regs (except the only likely error
> returns should not happen during init) and so leak a pin count on the
> bo. To handle this we would need to reacquire the struct mutex, so for
> simplicity rearrange for the lock to be held for the entire function.
> For extra pedagogy, test that we only call init once.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
> diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
> index cffd3ed..d360380 100644
> --- a/drivers/gpu/drm/i915/intel_overlay.c
> +++ b/drivers/gpu/drm/i915/intel_overlay.c
> @@ -1405,6 +1405,11 @@ void intel_setup_overlay(struct drm_device *dev)
> overlay = kzalloc(sizeof(struct intel_overlay), GFP_KERNEL);
> if (!overlay)
> return;
> +
> + mutex_lock(&dev->struct_mutex);
> + if (WARN_ON(dev_priv->overlay))
> + goto out_free;
> +
> overlay->dev = dev;
>
> reg_bo = i915_gem_alloc_object(dev, PAGE_SIZE);
For my curiosity, was there a reason you chose to acquire the lock after
the kzalloc?
next prev parent reply other threads:[~2011-06-28 15:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-28 10:27 [PATCH] drm/i915/overlay: Fix unpinning along init error paths Chris Wilson
2011-06-28 15:57 ` Ben Widawsky [this message]
2011-06-28 16:32 ` Chris Wilson
2011-06-28 16:08 ` Keith Packard
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=20110628155714.GA2961@snipes.kumite \
--to=ben@bwidawsk.net \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.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.