[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121127110259.GE10090@sivaramn-lnx>
Date: Tue, 27 Nov 2012 13:02:59 +0200
From: Sivaram Nair <sivaramn@...dia.com>
To: Terje Bergstrom <tbergstrom@...dia.com>
CC: "thierry.reding@...onic-design.de" <thierry.reding@...onic-design.de>,
"linux-tegra@...r.kernel.org" <linux-tegra@...r.kernel.org>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [RFC v2 2/8] video: tegra: Add syncpoint wait and interrupts
On Mon, Nov 26, 2012 at 02:19:08PM +0100, Terje Bergstrom wrote:
> +void nvhost_intr_stop(struct nvhost_intr *intr)
> +{
> + unsigned int id;
> + struct nvhost_intr_syncpt *syncpt;
> + u32 nb_pts = nvhost_syncpt_nb_pts(&intr_to_dev(intr)->syncpt);
> +
> + mutex_lock(&intr->mutex);
> +
> + intr_op().disable_all_syncpt_intrs(intr);
> +
> + for (id = 0, syncpt = intr->syncpt;
> + id < nb_pts;
> + ++id, ++syncpt) {
> + struct nvhost_waitlist *waiter, *next;
> + list_for_each_entry_safe(waiter, next,
> + &syncpt->wait_head, list) {
> + if (atomic_cmpxchg(&waiter->state,
> + WLS_CANCELLED, WLS_HANDLED)
> + == WLS_CANCELLED) {
> + list_del(&waiter->list);
> + kref_put(&waiter->refcount, waiter_release);
> + }
> + }
> +
> + if (!list_empty(&syncpt->wait_head)) { /* output diagnostics */
> + pr_warn("%s cannot stop syncpt intr id=%d\n",
> + __func__, id);
> + return;
mutex_unlock() missing before return.
-Sivaram
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists