From: Dan Carpenter <dan.carpenter@oracle.com>
To: Kalle Valo <kvalo@qca.qualcomm.com>
Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
Subject: Re: [PATCH v2] ath10k: add soft/hard firmware crash option to simulate_fw_crash
Date: Fri, 21 Mar 2014 17:37:38 +0300 [thread overview]
Message-ID: <20140321143737.GA5140@mwanda> (raw)
In-Reply-To: <87pplih81g.fsf@kamboji.qca.qualcomm.com>
On Wed, Mar 19, 2014 at 11:06:19AM +0200, Kalle Valo wrote:
> Hi Dan,
>
> Kalle Valo <kvalo@qca.qualcomm.com> writes:
>
> > From: Marek Puzyniak <marek.puzyniak@tieto.com>
> >
> > Command WMI_FORCE_FW_HANG_CMDID is not supported in firmware 10.1.
> > In order to have firmware crash simulation functionality also
> > in firmware 10.1 driver can force firmware crash by performing not allowed
> > operation. Driver can deliberately crash firmware when setting vdev param for
> > vdev id out of range. This patch introduces two keywords to simulate_fw_crash:
> >
> > 'soft' which will cause firmware crash that is recoverable
> > by warm firmware reset but supported only in main firmware.
> > 'hard' which will cause firmware crash recoverable by cold
> > firmware reset, this option works for both firmwares.
> >
> > Commands to trigger firmware soft/hard crash:
> >
> > echo 'soft' > /sys/kernel/debug/ieee80211/phyX/ath10k/simulate_fw_crash
> > echo 'hard' > /sys/kernel/debug/ieee80211/phyX/ath10k/simulate_fw_crash
> >
> > kvalo: use strncmp(), remove '\n' before checking the command and
> > document how buf is null terminated
> >
> > Signed-off-by: Marek Puzyniak <marek.puzyniak@tieto.com>
> > Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
>
> [...]
>
> > @@ -479,14 +488,30 @@ static ssize_t ath10k_write_simulate_fw_crash(struct file *file,
> > goto exit;
> > }
> >
> > - ath10k_info("simulating firmware crash\n");
> > + /* drop the possible '\n' from the end */
> > + if (buf[count - 1] == '\n') {
> > + buf[count - 1] = 0;
> > + count--;
> > + }
> >
> > - ret = ath10k_wmi_force_fw_hang(ar, WMI_FORCE_FW_HANG_ASSERT, 0);
> > - if (ret)
> > - ath10k_warn("failed to force fw hang (%d)\n", ret);
> > + if (!strncmp(buf, "soft", sizeof(buf))) {
> > + ath10k_info("simulating soft firmware crash\n");
> > + ret = ath10k_wmi_force_fw_hang(ar, WMI_FORCE_FW_HANG_ASSERT, 0);
> > + } else if (!strncmp(buf, "hard", sizeof(buf))) {
> > + ath10k_info("simulating hard firmware crash\n");
> > + ret = ath10k_wmi_vdev_set_param(ar, TARGET_NUM_VDEVS + 1,
> > + ar->wmi.vdev_param->rts_threshold, 0);
> > + } else {
> > + ret = -EINVAL;
> > + goto exit;
> > + }
>
> Fengguan's buildbot got warnings here and I assume they are coming from
> smatch:
>
> drivers/net/wireless/ath/ath10k/debug.c:500 ath10k_write_simulate_fw_crash() error: strncmp() '"hard"' too small (5 vs 32)
> drivers/net/wireless/ath/ath10k/debug.c:497 ath10k_write_simulate_fw_crash() error: strncmp() '"soft"' too small (5 vs 32)
>
> I wanted to use strncmp() instead of strcmp(), but I'm not sure what to
> do here. In my opinion it's guaranteed that the string "hard" is null
> terminated, so it shouldn't matter even if strlen("soft") (5) is less
> than sizeof(buf) (32), right? Or am I missing something here?
>
I am on vacation until next week. I didn't think these particular
emails went out automatically. Anyway, I have changed this in the
latest smatch but it will take some months for the kbuild bot to update.
http://repo.or.cz/w/smatch.git/commitdiff/f10f27a7612c5b1e69b5d9080a0194d012beb6aa
I'll take a closer look next week.
regards,
dan carpenter
next prev parent reply other threads:[~2014-03-21 14:38 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-13 8:24 [PATCH v2] ath10k: add soft/hard firmware crash option to simulate_fw_crash Kalle Valo
2014-03-14 10:39 ` Kalle Valo
2014-03-14 11:38 ` Marek Puzyniak
2014-03-19 9:06 ` Kalle Valo
2014-03-19 9:16 ` Michal Kazior
2014-03-19 12:41 ` Jouni Malinen
2014-03-20 7:51 ` Kalle Valo
2014-03-21 14:37 ` Dan Carpenter [this message]
2014-03-25 6:52 ` Kalle Valo
2014-03-26 11:40 ` Dan Carpenter
2014-03-24 8:25 ` Kalle Valo
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=20140321143737.GA5140@mwanda \
--to=dan.carpenter@oracle.com \
--cc=ath10k@lists.infradead.org \
--cc=kvalo@qca.qualcomm.com \
--cc=linux-wireless@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).