From: Dan Carpenter <dan.carpenter@linaro.org>
To: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Cc: "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>
Subject: Re: [bug report] Drivers: hv: vmbus: Track decrypted status in vmbus_gpadl
Date: Mon, 29 Jul 2024 13:31:38 -0500 [thread overview]
Message-ID: <97d5c217-a946-4b05-b4fe-1ce954ff238a@suswa.mountain> (raw)
In-Reply-To: <28faaca970473bd942d820debcdc6d330b2d5da9.camel@intel.com>
On Mon, Jul 29, 2024 at 05:13:56PM +0000, Edgecombe, Rick P wrote:
> On Sat, 2024-07-27 at 00:33 -0500, Dan Carpenter wrote:
> > Commit 211f514ebf1e ("Drivers: hv: vmbus: Track decrypted status in
> > vmbus_gpadl") from Mar 11, 2024 (linux-next), leads to the following
> > Smatch static checker warning:
> >
> > drivers/hv/channel.c:870 vmbus_teardown_gpadl()
> > warn: assigning signed to unsigned: 'gpadl->decrypted = ret' 's32min-
> > s32max'
> >
> > drivers/hv/channel.c
> > 860 list_del(&info->msglistentry);
> > 861 spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock,
> > flags);
> > 862
> > 863 kfree(info);
> > 864
> > 865 ret = set_memory_encrypted((unsigned long)gpadl->buffer,
> > 866 PFN_UP(gpadl->size));
> > 867 if (ret)
> > 868 pr_warn("Fail to set mem host visibility in GPADL
> > teardown %d.\n", ret);
> > 869
> > --> 870 gpadl->decrypted = ret;
> >
> > ret is error codes but ->decrypted is bool. So error codes mean decrypted is
> > true.
>
> If it fails, we need to assume that some of the buffer could still be decrypted,
> so should have decrypted = true. Only if it is successful (ret == 0) should we
> have decrypted = false.
>
> So I think it is functionally correct. Should we have a cast for smatch's sake?
Thanks for looking at this.
Generally the rule is to not do anything just make the checker happy.
These are one time warnings. Kernel devs are really good at fixing
bugs so old warnings are all false positives. Plus this thread is there
on lore if people have questions about it.
This isn't a published check yet, but I think I'm going to publish
something else which prints a warning here. This check warns if there
is a known negative value assigned to an unsigned, but I'm going to
write a check which complains about negative error codes assigned to
unsigned types smaller than int.
> I would have thought there would be a lot of these patterns in the kernel.
>
It's not super common. The most common place to see this is when
functions return false on success and true on failure. I don't know
why people do that... :/
regards,
dan carpenter
prev parent reply other threads:[~2024-07-29 18:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-27 5:33 [bug report] Drivers: hv: vmbus: Track decrypted status in vmbus_gpadl Dan Carpenter
2024-07-29 17:13 ` Edgecombe, Rick P
2024-07-29 18:31 ` Dan Carpenter [this message]
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=97d5c217-a946-4b05-b4fe-1ce954ff238a@suswa.mountain \
--to=dan.carpenter@linaro.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=rick.p.edgecombe@intel.com \
/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