linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

      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).