All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: o-takashi@sakamocchi.jp
Cc: alsa-devel@alsa-project.org
Subject: [bug report] ALSA: oxfw: configure packet format in pcm.hw_params callback
Date: Wed, 19 Jun 2019 13:16:39 +0300	[thread overview]
Message-ID: <20190619101639.GA29913@mwanda> (raw)

Hello Takashi Sakamoto,

The patch 4f380d007052: "ALSA: oxfw: configure packet format in
pcm.hw_params callback" from Jun 12, 2019, leads to the following
static checker warning:

	sound/firewire/oxfw/oxfw-stream.c:357 snd_oxfw_stream_start_duplex()
	warn: 'oxfw->rx_stream.buffer.packets' double freed

sound/firewire/oxfw/oxfw-stream.c
   317  int snd_oxfw_stream_start_duplex(struct snd_oxfw *oxfw)
   318  {
   319          int err;
   320  
   321          if (oxfw->substreams_count == 0)
   322                  return -EIO;
   323  
   324          if (amdtp_streaming_error(&oxfw->rx_stream) ||
   325              amdtp_streaming_error(&oxfw->tx_stream)) {
   326                  amdtp_stream_stop(&oxfw->rx_stream);
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   327                  cmp_connection_break(&oxfw->in_conn);
   328  
   329                  if (oxfw->has_output) {
   330                          amdtp_stream_stop(&oxfw->tx_stream);
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   331                          cmp_connection_break(&oxfw->out_conn);
   332                  }
   333          }
   334  
   335          if (!amdtp_stream_running(&oxfw->rx_stream)) {
   336                  err = start_stream(oxfw, &oxfw->rx_stream);
   337                  if (err < 0) {
   338                          dev_err(&oxfw->unit->device,
   339                                  "fail to start rx stream: %d\n", err);
   340                          goto error;
   341                  }
   342          }
   343  
   344          if (oxfw->has_output) {
   345                  if (!amdtp_stream_running(&oxfw->tx_stream)) {
   346                          err = start_stream(oxfw, &oxfw->tx_stream);
   347                          if (err < 0) {
   348                                  dev_err(&oxfw->unit->device,
   349                                          "fail to start tx stream: %d\n", err);
   350                                  goto error;
   351                          }
   352                  }
   353          }
   354  
   355          return 0;
   356  error:
   357          amdtp_stream_stop(&oxfw->rx_stream);
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Smatch is basically complaining that we call amdtp_stream_stop() and
it's not clear that we necessarily reset things.  I don't know this code
very well so I have maybe missed something.

   358          cmp_connection_break(&oxfw->in_conn);
   359          if (oxfw->has_output) {
   360                  amdtp_stream_stop(&oxfw->tx_stream);
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

   361                  cmp_connection_break(&oxfw->out_conn);
   362          }
   363          return err;
   364  }

regards,
dan carpenter

             reply	other threads:[~2019-06-19 10:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-19 10:16 Dan Carpenter [this message]
2019-06-22  1:35 ` [bug report] ALSA: oxfw: configure packet format in pcm.hw_params callback Takashi Sakamoto
2019-06-23 20:35   ` Dan Carpenter

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=20190619101639.GA29913@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=o-takashi@sakamocchi.jp \
    /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.