From: Ohad Ben-Cohen <ohad@wizery.com>
To: "Kanigeri, Hari" <h-kanigeri2@ti.com>
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
Hiroshi Doyu <Hiroshi.DOYU@nokia.com>
Subject: Re: [PATCH 1/4] omap: mailbox cleanup: convert rwlocks to spinlock
Date: Thu, 29 Apr 2010 16:14:05 +0300 [thread overview]
Message-ID: <t2tda15981b1004290614z9cd3cacma0a18c584dbae643@mail.gmail.com> (raw)
In-Reply-To: <8F7AF80515AF0D4D93307E594F3CB40E4B661D06@dlee03.ent.ti.com>
Hi Hari,
On Thu, Apr 29, 2010 at 3:44 PM, Kanigeri, Hari <h-kanigeri2@ti.com> wrote:
> Ohad,
>
> Looks like the conversion was missed in few places resulting in compile warnings.
Thanks for pointing that out - that's really strange, it somehow
slipped in the rebase.
The interesting part is that because you compile for OMAP4 (SMP),
you got to see the warnings, while I didn't because I compiled for OMAP3
(in the UP case there's no real locking and both types of locks are
actually the same).
>
> Please see the below fix. Let me know if you agree with the change.
Sure. I'll add that missing part back together with the review comments,
and submit a v2 patchset.
Thanks again,
Ohad.
>
> #########
> [PATCH] omap: mailbox: rwlocks to spinlock: compilation fix
>
> fixed the missed rwlocks in few places resultion in following
> compiler warning.
>
> arch/arm/plat-omap/mailbox.c: In function 'omap_mbox_startup':
> arch/arm/plat-omap/mailbox.c:246: warning: passing argument 1 of '_raw_write_lock' from incompatible pointer type
> arch/arm/plat-omap/mailbox.c:251: warning: passing argument 1 of '_raw_write_unlock' from incompatible pointer type
> arch/arm/plat-omap/mailbox.c:255: warning: passing argument 1 of '_raw_write_unlock' from incompatible pointer type
> arch/arm/plat-omap/mailbox.c: In function 'omap_mbox_fini':
> arch/arm/plat-omap/mailbox.c:301: warning: passing argument 1 of '_raw_write_lock' from incompatible pointer type
> arch/arm/plat-omap/mailbox.c:306: warning: passing argument 1 of '_raw_write_unlock' from incompatible pointer type
>
> Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
> ---
> arch/arm/plat-omap/mailbox.c | 10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
> index 27a8d98..d6a700d 100644
> --- a/arch/arm/plat-omap/mailbox.c
> +++ b/arch/arm/plat-omap/mailbox.c
> @@ -243,16 +243,16 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
> struct omap_mbox_queue *mq;
>
> if (likely(mbox->ops->startup)) {
> - write_lock(&mboxes_lock);
> + spin_lock(&mboxes_lock);
> if (!mbox_configured)
> ret = mbox->ops->startup(mbox);
>
> if (unlikely(ret)) {
> - write_unlock(&mboxes_lock);
> + spin_unlock(&mboxes_lock);
> return ret;
> }
> mbox_configured++;
> - write_unlock(&mboxes_lock);
> + spin_unlock(&mboxes_lock);
> }
>
> ret = request_irq(mbox->irq, mbox_interrupt, IRQF_SHARED,
> @@ -298,12 +298,12 @@ static void omap_mbox_fini(struct omap_mbox *mbox)
> free_irq(mbox->irq, mbox);
>
> if (likely(mbox->ops->shutdown)) {
> - write_lock(&mboxes_lock);
> + spin_lock(&mboxes_lock);
> if (mbox_configured > 0)
> mbox_configured--;
> if (!mbox_configured)
> mbox->ops->shutdown(mbox);
> - write_unlock(&mboxes_lock);
> + spin_unlock(&mboxes_lock);
> }
> }
>
> --
>
> ################
>
>> -----Original Message-----
>> From: Ohad Ben-Cohen [mailto:ohad@wizery.com]
>> Sent: Tuesday, April 27, 2010 12:56 PM
>> To: linux-omap@vger.kernel.org
>> Cc: Kanigeri, Hari; Hiroshi Doyu; Ohad Ben-Cohen
>> Subject: [PATCH 1/4] omap: mailbox cleanup: convert rwlocks
>> to spinlock
>>
>> rwlocks are slower and have potential starvation issues so
>> spinlocks are generally preferred
>>
>> Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
>> ---
>> arch/arm/plat-omap/mailbox.c | 20 ++++++++++----------
>> 1 files changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/arm/plat-omap/mailbox.c
>> b/arch/arm/plat-omap/mailbox.c index 08a2df7..d73d51a 100644
>> --- a/arch/arm/plat-omap/mailbox.c
>> +++ b/arch/arm/plat-omap/mailbox.c
>> @@ -31,7 +31,7 @@
>>
>> static struct workqueue_struct *mboxd;
>> static struct omap_mbox *mboxes;
>> -static DEFINE_RWLOCK(mboxes_lock);
>> +static DEFINE_SPINLOCK(mboxes_lock);
>>
>> static int mbox_configured;
>>
>> @@ -330,14 +330,14 @@ struct omap_mbox *omap_mbox_get(const
>> char *name)
>> struct omap_mbox *mbox;
>> int ret;
>>
>> - read_lock(&mboxes_lock);
>> + spin_lock(&mboxes_lock);
>> mbox = *(find_mboxes(name));
>> if (mbox == NULL) {
>> - read_unlock(&mboxes_lock);
>> + spin_unlock(&mboxes_lock);
>> return ERR_PTR(-ENOENT);
>> }
>>
>> - read_unlock(&mboxes_lock);
>> + spin_unlock(&mboxes_lock);
>>
>> ret = omap_mbox_startup(mbox);
>> if (ret)
>> @@ -363,15 +363,15 @@ int omap_mbox_register(struct device
>> *parent, struct omap_mbox *mbox)
>> if (mbox->next)
>> return -EBUSY;
>>
>> - write_lock(&mboxes_lock);
>> + spin_lock(&mboxes_lock);
>> tmp = find_mboxes(mbox->name);
>> if (*tmp) {
>> ret = -EBUSY;
>> - write_unlock(&mboxes_lock);
>> + spin_unlock(&mboxes_lock);
>> goto err_find;
>> }
>> *tmp = mbox;
>> - write_unlock(&mboxes_lock);
>> + spin_unlock(&mboxes_lock);
>>
>> return 0;
>>
>> @@ -384,18 +384,18 @@ int omap_mbox_unregister(struct
>> omap_mbox *mbox) {
>> struct omap_mbox **tmp;
>>
>> - write_lock(&mboxes_lock);
>> + spin_lock(&mboxes_lock);
>> tmp = &mboxes;
>> while (*tmp) {
>> if (mbox == *tmp) {
>> *tmp = mbox->next;
>> mbox->next = NULL;
>> - write_unlock(&mboxes_lock);
>> + spin_unlock(&mboxes_lock);
>> return 0;
>> }
>> tmp = &(*tmp)->next;
>> }
>> - write_unlock(&mboxes_lock);
>> + spin_unlock(&mboxes_lock);
>>
>> return -EINVAL;
>> }
>> --
>> 1.6.3.3
>>
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-04-30 17:33 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-27 17:56 [PATCH 0/4] omap: mailbox: cleanup & simplify Ohad Ben-Cohen
2010-04-27 17:56 ` [PATCH 1/4] omap: mailbox cleanup: convert rwlocks to spinlock Ohad Ben-Cohen
2010-04-28 7:50 ` Hiroshi DOYU
2010-04-28 10:41 ` Ohad Ben-Cohen
2010-04-29 12:44 ` Kanigeri, Hari
2010-04-29 13:14 ` Ohad Ben-Cohen [this message]
2010-04-29 13:35 ` Ohad Ben-Cohen
2010-04-27 17:56 ` [PATCH 2/4] omap: mailbox cleanup: split MODULE_AUTHOR line Ohad Ben-Cohen
2010-04-27 17:56 ` [PATCH 3/4] omap: mailbox: fix reverse likeliness Ohad Ben-Cohen
2010-04-27 17:56 ` [PATCH 4/4] omap: mailbox: convert block api to kfifo Ohad Ben-Cohen
2010-04-28 5:52 ` Hiroshi DOYU
2010-04-28 11:02 ` Ohad Ben-Cohen
2010-04-28 11:16 ` Hiroshi DOYU
2010-04-28 11:25 ` Ohad Ben-Cohen
2010-04-28 11:52 ` Hiroshi DOYU
2010-04-28 12:03 ` Ohad Ben-Cohen
2010-04-28 5:56 ` Hiroshi DOYU
2010-04-28 11:02 ` Ohad Ben-Cohen
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=t2tda15981b1004290614z9cd3cacma0a18c584dbae643@mail.gmail.com \
--to=ohad@wizery.com \
--cc=Hiroshi.DOYU@nokia.com \
--cc=h-kanigeri2@ti.com \
--cc=linux-omap@vger.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 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).