Thinkpad panic woes (was Re: CDRW causes Thinkpad T41 to panic)
Alexander Marx
mad-ml at madness.at
Thu Jun 10 18:41:05 GMT 2004
Daniel Eischen wrote:
> My drive is on ata1-master, not the slave. From what I can see,
> the failure for ata1-slave at boot up isn't a problem because
> there is no device present on that channel. Once booted, I was
> able to use xmcd and play an audio CD on it, so it is at least
> working well enough for that. 5.2.1-RELEASE doesn't show the
> "ata1-slave FAILURE - ATAPI_IDENTIFY" message and booted just
> fine -- there were no "Memory modified after free" messages
> (and panic). I did have to disable ACPI in order to get
> 5.2.1-RELEASE to work, though.
>
well, i've the very same problem here with a my thinkpad t40.
5.2.1 works only w/o acpi, 5.2 and -CURRENT (as of yesterday)
do not work at all with the cd/dvd present.
the panic w/ trace and a dmesg (boot -v but w/o cd/dvd)
is available here:
[0] http://www.madness.at/~mad/tp40panic/
> The "memory modified after free" bothers me. It indicates
> that either something is running amok with pointers, or that
> references are still being made after memory is free()'d.
> I've been trying to track it down, but I haven't had any
> luck so far. Anyone have any ideas on how to debug this?
>
i tried to track the alloc/free's with some printf's
and discovered, that setting the retries=1 in ata-all.c
fixed it the panic in -current; my -current then boots with
acpi enabled and the cd/dvd present, without problem.
the patch:
--- ata-all.c.orig Thu Jun 10 20:17:18 2004
+++ ata-all.c Thu Jun 10 20:16:35 2004
@@ -560,7 +560,7 @@
if (atadev->param) {
request = ata_alloc_request();
if (request) {
- int retries = 2;
+ int retries = 1;
while (retries-- > 0) {
request->device = atadev;
request->timeout = 5;
a dmesg w/ boot -v is available[0].
ofcourse this probably does not fix the real problem.
but it works-for-me(tm).
regards,
alex.
ps: btw, my hang on shutdown w/ seems to have disappeard
with this too ...
More information about the freebsd-current
mailing list