All of lore.kernel.org
 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 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.