From: Keith Owens <kaos@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: Rework arch/ia64/kernel/salinfo.c for 2.4
Date: Tue, 21 Oct 2003 12:31:54 +0000 [thread overview]
Message-ID: <marc-linux-ia64-106673954414474@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-106664704821234@msgid-missing>
On Tue, 21 Oct 2003 13:55:07 +0200,
Zoltan Menyhart <Zoltan.Menyhart_AT_bull.net@nospam.org> wrote:
>(SOORRY, THE TAIL OF MY MAIL GOT LOST, HERE IT IS:)
>
>> >- do not "clear" nor "shift" MCA logs
>> >- the MCA handler can overwrite the buffer of the CPU on which
>> > it executes
>> >- for the "read <n>" command, you may:
>> > + calculate a CRC32 of the buffer[n]
>> > + copy_to_user(buffer[n],...)
>> > + calculate again the CRC32 of the buffer[n] and restart
>> > if it is not the same as before
>>
>> Doing a CRC at "read <n>" time is too late, the CRC would have to be
>> taken in the interrupt handler. In any case, the record ID is supposed
>> to be unique and is the first field in the record. Checking that the
>> ID is unchanged after taking a copy is sufficient and is much cheaper
>> than a CRC check.
>
>If you start copy_to_user(buffer...) and in the mean time there is a
>new MCA (recovered successfully), the the buffer gets overwritten.
>We cannot lock out the MCA handler. We need to make sure that the copy
>does not include e.g. the beginning of a previous MCA and the end of
>the current one.
Check the code, I cater for that. The MCA record is copied from
storage owned by mca.c to a vmalloc() buffer owned by salinfo.c. Then
salinfo checks that the record ID has not changed. If it has changed,
the record is discarded. This happens before the record is copied to
user space.
prev parent reply other threads:[~2003-10-21 12:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-20 10:47 Rework arch/ia64/kernel/salinfo.c for 2.4 Keith Owens
2003-10-20 14:38 ` Zoltan Menyhart
2003-10-20 14:53 ` Keith Owens
2003-10-20 23:38 ` Bjorn Helgaas
2003-10-21 0:12 ` Keith Owens
2003-10-21 11:49 ` Zoltan Menyhart
2003-10-21 11:55 ` Zoltan Menyhart
2003-10-21 12:31 ` Keith Owens [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=marc-linux-ia64-106673954414474@msgid-missing \
--to=kaos@sgi.com \
--cc=linux-ia64@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