From: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
To: Michael Frank <mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
Cc: acpi-devel-pyega4qmqnRoyOMFzWx49A@public.gmane.org
Subject: Re: 2.5.69 - S3
Date: Mon, 19 May 2003 10:53:24 +0200 [thread overview]
Message-ID: <20030519085323.GC130@elf.ucw.cz> (raw)
In-Reply-To: <200305191153.51196.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
Hi!
> > > and mode 6)
> > >
> > > System hangs after all tasks left fridge with disk led on.
> > >
> > > I suppose IDE gets false interupt upon resume.
> >
> > Spurious interrupts should be handled gracefully by IDE. On velo I
> > ran my machine with IDE interrupt connected to 1kHz timer, and it
> > more or less worked ("IDE0: spurious interrupt", "Last message
> > repeated 1539 times").
>
> Cute, Your velo S3 OK (before it died) ? - Do you know of any machines that really work with S3?
I just fixed mtrrs and suspended/resumed that desktop ~10 times... It
seems okay. [Not yet applicable to mainline, I guess, as mtrr is not
in].
Pavel
--- /usr/src/tmp/linux/arch/i386/kernel/cpu/mtrr/main.c 2003-05-19 10:44:09.000000000 +0200
+++ /usr/src/linux/arch/i386/kernel/cpu/mtrr/main.c 2003-05-19 10:43:10.000000000 +0200
@@ -648,33 +648,33 @@
};
#ifdef CONFIG_PM
-struct mtrr_suspend_state
-{
+struct mtrr_suspend_one {
mtrr_type ltype;
unsigned long lbase;
unsigned int lsize;
};
-/* We return a pointer ptr on an area of *ptr bytes
- beginning at ptr+sizeof(int)
- This buffer has to be saved in some way during suspension */
-static int *mtrr_save_state(void)
+struct mtrr_suspend_state {
+ int len;
+ struct mtrr_suspend_one mtrr[0];
+};
+
+/* This buffer has to be saved in some way during suspension */
+struct mtrr_suspend_state *mtrr_save_state(void)
{
int i, len;
- int *ptr = NULL;
- static struct mtrr_suspend_state *mtrr_suspend_buffer=NULL;
+ static struct mtrr_suspend_state *ptr = NULL;
+ static struct mtrr_suspend_one *mtrr_suspend_buffer=NULL;
if(!mtrr_suspend_buffer)
{
- len = num_var_ranges * sizeof (struct mtrr_suspend_state) + sizeof(int);
+ len = num_var_ranges * sizeof (struct mtrr_suspend_one) + sizeof(int);
ptr = kmalloc (len, GFP_KERNEL);
if (ptr == NULL)
return(NULL);
- *ptr = len;
- ptr++;
- mtrr_suspend_buffer = (struct mtrr_suspend_state *)ptr;
- ptr--;
+ ptr->len = len;
}
+ mtrr_suspend_buffer = &ptr->mtrr;
for (i = 0; i < num_var_ranges; ++i,mtrr_suspend_buffer++)
mtrr_if->get (i,
&(mtrr_suspend_buffer->lbase),
@@ -684,19 +684,17 @@
}
/* We restore mtrrs from buffer ptr */
-static void mtrr_restore_state(int *ptr)
+static void mtrr_restore_state(struct mtrr_suspend_state *ptr)
{
int i, len;
- struct mtrr_suspend_state *mtrr_suspend_buffer;
+ struct mtrr_suspend_one *mtrr_suspend_buffer;
- len = num_var_ranges * sizeof (struct mtrr_suspend_state) + sizeof(int);
- if(*ptr != len)
- {
- printk ("mtrr: Resuming failed due to different number of MTRRs\n");
+ len = num_var_ranges * sizeof (struct mtrr_suspend_one) + sizeof(int);
+ if(ptr->len != len) {
+ printk (KERN_CRIT "mtrr: Resuming failed due to different number of MTRRs\n");
return;
}
- ptr++;
- mtrr_suspend_buffer=(struct mtrr_suspend_state *)ptr;
+ mtrr_suspend_buffer = &ptr->mtrr;
for (i = 0; i < num_var_ranges; ++i,mtrr_suspend_buffer++)
if (mtrr_suspend_buffer->lsize)
set_mtrr(i,
@@ -705,7 +703,7 @@
mtrr_suspend_buffer->ltype);
}
-static void *mtrr_state;
+static struct mtrr_suspend_state *mtrr_state;
static int mtrr_suspend(struct device *dev, u32 state, u32 level)
{
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful,
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge
next prev parent reply other threads:[~2003-05-19 8:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-13 17:40 2.5.69 - S3 Michael Frank
[not found] ` <20030516111120.GA686@zaurus.ucw.cz>
[not found] ` <20030516111120.GA686-VNkyu7EogrqGmfs5Z0+9fw@public.gmane.org>
2003-05-17 21:23 ` Michael Frank
[not found] ` <200305180523.25157.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
2003-05-18 10:48 ` Pavel Machek
[not found] ` <20030518104852.GA324-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2003-05-18 12:05 ` Michael Frank
[not found] ` <200305182005.30192.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
2003-05-18 21:12 ` Pavel Machek
[not found] ` <20030518211245.GA452-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2003-05-19 3:53 ` Michael Frank
[not found] ` <200305191153.51196.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
2003-05-19 8:07 ` Karol Kozimor
2003-05-19 8:31 ` Pavel Machek
2003-05-19 8:53 ` Pavel Machek [this message]
[not found] ` <200305191731.34692.mflt1@micrologica.com.hk>
[not found] ` <20030519100135.GA18034@atrey.karlin.mff.cuni.cz>
[not found] ` <20030519100135.GA18034-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2003-05-19 10:22 ` Michael Frank
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=20030519085323.GC130@elf.ucw.cz \
--to=pavel-+zi9xunit7i@public.gmane.org \
--cc=acpi-devel-pyega4qmqnRoyOMFzWx49A@public.gmane.org \
--cc=mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.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