From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v15 11/12] OMAP: dmtimer: extend spinlock to exported APIs
Date: Tue, 13 Sep 2011 16:15:40 -0700 [thread overview]
Message-ID: <20110913231540.GI24252@atomide.com> (raw)
In-Reply-To: <1315516098-29761-12-git-send-email-tarun.kanti@ti.com>
* Tarun Kanti DebBarma <tarun.kanti@ti.com> [110908 13:36]:
> Since the exported APIs can be called from interrupt context
> extend spinlock protection to some more relevant APIs to avoid
> race condition.
We should have locking for requesting and releasing a timer etc,
but I don't see need for that for the timer specific functions.
> @@ -317,9 +317,11 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_trigger);
> void omap_dm_timer_start(struct omap_dm_timer *timer)
> {
> u32 l;
> + unsigned long flags;
>
> omap_dm_timer_enable(timer);
>
> + spin_lock_irqsave(&dm_timer_lock, flags);
> if (timer->loses_context) {
> u32 ctx_loss_cnt_after =
> timer->get_context_loss_count(&timer->pdev->dev);
Here the caller already owns the timer being started. So there
should never be multiple users for a single timer. If there are,
then the caller should take care of locking.
> void omap_dm_timer_stop(struct omap_dm_timer *timer)
> {
> - unsigned long rate = 0;
> + unsigned long rate = 0, flags;
> struct dmtimer_platform_data *pdata = timer->pdev->dev.platform_data;
> bool is_omap2 = true;
>
> + spin_lock_irqsave(&dm_timer_lock, flags);
> if (pdata->needs_manual_reset)
> is_omap2 = false;
> else
Here too.
> @@ -389,8 +394,10 @@ void omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload,
> unsigned int load)
> {
> u32 l;
> + unsigned long flags;
>
> omap_dm_timer_enable(timer);
> + spin_lock_irqsave(&dm_timer_lock, flags);
> l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG);
> if (autoreload)
> l |= OMAP_TIMER_CTRL_AR;
And here.
> @@ -412,9 +420,11 @@ void omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload,
> unsigned int load)
> {
> u32 l;
> + unsigned long flags;
>
> omap_dm_timer_enable(timer);
>
> + spin_lock_irqsave(&dm_timer_lock, flags);
> if (timer->loses_context) {
> u32 ctx_loss_cnt_after =
> timer->get_context_loss_count(&timer->pdev->dev);
Not needed here either. And that's the case for all the other functions
too.
Regards,
Tony
next prev parent reply other threads:[~2011-09-13 23:15 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-08 21:08 [PATCH v15 00/12] OMAP: dmtimer: adaptation to platform_driver Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 01/12] OMAP2+: dmtimer: add device names to flck nodes Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 02/12] OMAP4: hwmod data: add dmtimer version information Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 03/12] OMAP1: dmtimer: conversion to platform devices Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 04/12] OMAP2+: dmtimer: convert " Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 05/12] OMAP: dmtimer: platform driver Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 06/12] OMAP: dmtimer: switch-over to platform device driver Tarun Kanti DebBarma
2011-09-14 21:45 ` Tony Lindgren
2011-09-14 22:24 ` Tony Lindgren
2011-09-15 5:42 ` DebBarma, Tarun Kanti
2011-09-15 8:46 ` Mohammed, Afzal
2011-09-15 16:58 ` Tony Lindgren
2011-09-15 17:05 ` Tony Lindgren
2011-09-16 3:54 ` DebBarma, Tarun Kanti
2011-09-16 9:30 ` DebBarma, Tarun Kanti
2011-09-17 1:35 ` [PATCH] ARM: OMAP: Add support for dmtimer v2 ip (Re: [PATCH v15 06/12] OMAP: dmtimer: switch-over to platform device driver) Tony Lindgren
2011-09-18 12:27 ` DebBarma, Tarun Kanti
2011-09-19 17:43 ` Tony Lindgren
2011-09-19 4:06 ` Pedanekar, Hemant
2011-09-19 17:40 ` Tony Lindgren
2011-09-19 23:41 ` Pedanekar, Hemant
2011-09-19 5:22 ` Mohammed, Afzal
2011-09-19 17:43 ` Tony Lindgren
2011-09-08 21:08 ` [PATCH v15 07/12] OMAP: dmtimer: pm_runtime support Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 08/12] OMAP: dmtimer: add timeout to low-level routines Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 09/12] OMAP: dmtimer: mark clocksource and clockevent timers reserved Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 10/12] OMAP: dmtimer: low-power mode support Tarun Kanti DebBarma
2011-09-08 21:08 ` [PATCH v15 11/12] OMAP: dmtimer: extend spinlock to exported APIs Tarun Kanti DebBarma
2011-09-13 23:15 ` Tony Lindgren [this message]
2011-09-14 4:58 ` DebBarma, Tarun Kanti
2011-09-08 21:08 ` [PATCH v15 12/12] OMAP: dmtimer: add error handling to export APIs Tarun Kanti DebBarma
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=20110913231540.GI24252@atomide.com \
--to=tony@atomide.com \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).