All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: KCHSU0@nuvoton.com
Cc: alsa-devel@alsa-project.org
Subject: Re: ASoC: nau8825: cross talk suppression measurement function
Date: Wed, 15 Jun 2016 15:33:52 +0300	[thread overview]
Message-ID: <20160615123352.GA7136@mwanda> (raw)

Hello John Hsu,

The patch b50455fab459: "ASoC: nau8825: cross talk suppression
measurement function" from Jun 7, 2016, leads to the following static
checker warning:

	sound/soc/codecs/nau8825.c:265 nau8825_sema_acquire()
	warn: 'sem:&nau8825->xtalk_sem' is sometimes locked here and sometimes unlocked.


sound/soc/codecs/nau8825.c
   240  /**
   241   * nau8825_sema_acquire - acquire the semaphore of nau88l25
   242   * @nau8825:  component to register the codec private data with
   243   * @timeout: how long in jiffies to wait before failure or zero to wait
   244   * until release
   245   *
   246   * Attempts to acquire the semaphore with number of jiffies. If no more
   247   * tasks are allowed to acquire the semaphore, calling this function will
   248   * put the task to sleep. If the semaphore is not released within the
   249   * specified number of jiffies, this function returns.
   250   * Acquires the semaphore without jiffies. If no more tasks are allowed
   251   * to acquire the semaphore, calling this function will put the task to
   252   * sleep until the semaphore is released.
   253   * It returns if the semaphore was acquired.

Sometimes it returns without the lock held.

   254   */
   255  static void nau8825_sema_acquire(struct nau8825 *nau8825, long timeout)
   256  {
   257          int ret;
   258  
   259          if (timeout)
   260                  ret = down_timeout(&nau8825->xtalk_sem, timeout);
   261          else
   262                  ret = down_interruptible(&nau8825->xtalk_sem);
   263  
   264          if (ret < 0)
   265                  dev_warn(nau8825->dev, "Acquire semaphone fail\n");

This function makes me sad.  Warn and corrupt is my least favourite
anti-pattern.

   266  }

regards,
dan carpenter

             reply	other threads:[~2016-06-15 12:34 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-15 12:33 Dan Carpenter [this message]
2016-06-20  1:51 ` ASoC: nau8825: cross talk suppression measurement function John Hsu
2016-06-20 10:00   ` Dan Carpenter
2016-06-22  3:09     ` John Hsu

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=20160615123352.GA7136@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=KCHSU0@nuvoton.com \
    --cc=alsa-devel@alsa-project.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.