From: Aaron Lu <aaron.lu@intel.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: lv.zheng@intel.com, linux-acpi@vger.kernel.org,
Robert Moore <robert.moore@intel.com>
Subject: Re: ACPICA: Tables: Cleanup RSDP signature codes.
Date: Fri, 25 Oct 2013 13:49:14 +0800 [thread overview]
Message-ID: <20131025054913.GA20961@aaronlu.linux.com> (raw)
In-Reply-To: <20131017123942.GG5550@mwanda>
On Thu, Oct 17, 2013 at 03:39:42PM +0300, Dan Carpenter wrote:
> Does anyone have an idea about this? The code is obviously wrong but
> the fix is unclear. Perhaps we should just note the bug in a comment?
The code is confusing but did things right.
The RSDP table header is different with other tables, its signature is
actually 8 bytes. We passed the table address to this print function
using the common table header pointer that caused the warning.
Perhaps we should change the prototype of acpi_tb_print_table_header to:
void
acpi_tb_print_table_header(acpi_physical_address address, void *header)
and then cast it to appropriate type after we found which type of table
it is really is. I suppose this will eliminate the warning?
Thanks,
Aaron
>
> regards,
> dan carpenter
>
> On Fri, Sep 27, 2013 at 01:35:20AM +0300, Dan Carpenter wrote:
> > Hello Lv Zheng,
> >
> > I'm sorry to bother you about this. This code has been this way for
> > years, but your recent formatting cleanups made it into something Smatch
> > could understand and complain about. Hopefully, you could take a look?
> >
> > The patch cacba8657351: "ACPICA: Tables: Cleanup RSDP signature
> > codes." from Sep 23, 2013, leads to the following
> > static checker warning: "drivers/acpi/acpica/tbprint.c:141
> > acpi_tb_print_table_header()
> > error: strncmp() '((((header->signature))))' too small (4 vs 8)"
> >
> > drivers/acpi/acpica/tbprint.c
> > 138 ACPI_INFO((AE_INFO, "%4.4s %p %05X",
> > 139 header->signature, ACPI_CAST_PTR(void, address),
> > 140 header->length));
> > 141 } else if (ACPI_VALIDATE_RSDP_SIG(header->signature)) {
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > The RSDP_SIG is an 8 character signature but the header->signature
> > buffer only has 4 characters so the signatures never match. What's the
> > deal with that?
> >
> > 142
> > 143 /* RSDP has no common fields */
> > 144
> > 145 ACPI_MEMCPY(local_header.oem_id,
> > 146 ACPI_CAST_PTR(struct acpi_table_rsdp,
> > 147 header)->oem_id, ACPI_OEM_ID_SIZE);
> >
> > regards,
> > dan carpenter
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2013-10-25 5:48 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-26 22:35 ACPICA: Tables: Cleanup RSDP signature codes Dan Carpenter
2013-10-17 12:39 ` Dan Carpenter
2013-10-25 5:49 ` Aaron Lu [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=20131025054913.GA20961@aaronlu.linux.com \
--to=aaron.lu@intel.com \
--cc=dan.carpenter@oracle.com \
--cc=linux-acpi@vger.kernel.org \
--cc=lv.zheng@intel.com \
--cc=robert.moore@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;
as well as URLs for NNTP newsgroup(s).