Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Apr 2010 17:41:08 +0200
From:      Giovanni Trematerra <giovanni.trematerra@gmail.com>
To:        kama <kama@pvp.se>
Cc:        freebsd-stable@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   Re: HP 380 G4 - ciss kernel page fault.
Message-ID:  <q2n4e6cba831004280841ufbc12e91tdd9f1de0b7a527a8@mail.gmail.com>
In-Reply-To: <20100428160428.R4522@ns1.as.pvp.se>
References:  <20100427150736.A4522@ns1.as.pvp.se> <201004271721.34248.jhb@freebsd.org> <20100428091758.F4522@ns1.as.pvp.se> <201004280802.26267.jhb@freebsd.org> <20100428160428.R4522@ns1.as.pvp.se>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 28, 2010 at 4:07 PM, kama <kama@pvp.se> wrote:
>
>
> On Wed, 28 Apr 2010, John Baldwin wrote:
>
>> On Wednesday 28 April 2010 3:22:44 am kama wrote:
>> >
>> > On Tue, 27 Apr 2010, John Baldwin wrote:
>> >
>> > > On Tuesday 27 April 2010 9:30:12 am kama wrote:
>> > > >
>> > > > Hi.
>> > > >
>> > > > I have problem when probing the ciss device. Causing a kernel pani=
c.
>> This
>> > > > happened when I upgraded from 6.3 to 7.3-stable. Booting the old k=
ernel
>> > > > works. So something has changed. I am also getting the error on bo=
th the
>> > > > 7.3 and the 8.0 install cd's.
>> > > >
>> > > > The ciss that causing the problem is a Smart Array 6404 and its th=
e
>> addon
>> > > > card that it faults at. The server disconnect it due to an error. =
But
>> > > > since it works on 6.3 it is something that have changed. FreeBSD s=
hould
>> > > > not panic, it should just disable it.
>> > > >
>> > > > Also I tried to disable the card in the BIOS, but FreeBSD try to p=
robe
>> it
>> > > > anyway and panic.
>> > > >
>> > > > This whats comes up on a verbose boot through the ILO remote conso=
le.
>> > > > (typed in manually from a screenshot)
>> > > >
>> > > > ciss2: <HP Smart Array 6400 EM> port 0x6400-0x64ff mem
>> > > > 0xfdf70000-0xfdf71fff irq 98 at device 5.0 on pcill
>> > > > ciss2: Reserved 0x2000 bytes for rid 0x10 type 3 at 0xfdf70000
>> > > > pci11: child ciss2 requested type 3 for rid 0, but the BAR says it=
 is an
>> > > > ioport
>> > > > ciss2: can't allocate config window
>> > > > kernel trap 12 with interupts disabled
>> > >
>> > > Can you get the ciss2 boot messages from a working 6.x kernel?
>> >
>> > This is the verbose boot on 6.3.
>> >
>> > FreeBSD 6.3-STABLE #3: Thu Mar =A06 14:29:33 CET 2008
>> >
>> > ciss1: 10 physical devices
>> > ciss1: 4 logical drives
>> > ciss1: logical drive (b0t0): RAID 1, 69120MB online
>> > ciss1: logical drive (b0t1): RAID 1, 69120MB online
>> > ciss1: logical drive (b0t2): RAID 1, 139776MB online
>> > ciss1: logical drive (b0t3): RAID 1, 139776MB online
>> >
>> > ciss2: <HP Smart Array 6400 EM> port 0x6400-0x64ff mem
>> > 0xfdf70000-0xfdf71fff,0xfdf00000-0xfdf3ffff irq 98 at device 5.0 on pc=
i11
>> > ciss2: Reserved 0x2000 bytes for rid 0x10 type 3 at 0xfdf70000
>> > pci11: child ciss2 requested type 3 for rid 0, but the BAR says it is =
an
>> > ioport
>> > ciss2: can't allocate config window
>> > device_attach: ciss2 attach returned 6
>>
>> Oh, so it didn't work in 6.x either, it just handles failure less gracef=
ully
>> in 7.0+?
>
> No, ciss2 is disabled. The difference is that 6.x continue to boot instea=
d
> of a kernel panic as in 7.x and 8.x.
>
> I dont have any disks attached to ciss2, so I dont really need it. But
> ciss1 and ciss2 is on the same physical card, so I cant just remove it.
>

Could you try this one if you are looking for a patch to 7-STABLE.

Thank you

diff -r ffd3e5d37758 sys/dev/ciss/ciss.c
--- a/sys/dev/ciss/ciss.c       Wed Apr 28 10:20:41 2010 -0400
+++ b/sys/dev/ciss/ciss.c       Wed Apr 28 11:39:05 2010 -0400
@@ -394,6 +394,8 @@ ciss_attach(device_t dev)

     sc =3D device_get_softc(dev);
     sc->ciss_dev =3D dev;
+    mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF);
+    callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0);

     /*
      * Work out adapter type.
@@ -428,8 +430,6 @@ ciss_attach(device_t dev)
     ciss_initq_busy(sc);
     ciss_initq_complete(sc);
     ciss_initq_notify(sc);
-    mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF);
-    callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0);

     /*
      * Initalize device sysctls.
@@ -494,8 +494,11 @@ ciss_attach(device_t dev)

     error =3D 0;
  out:
-    if (error !=3D 0)
-       ciss_free(sc);
+    if (error !=3D 0) {
+               /* ciss_free() expects the mutex to be held */
+               mtx_lock(&sc->ciss_mtx);
+               ciss_free(sc);
+       }
     return(error);
 }


--
Gianni



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?q2n4e6cba831004280841ufbc12e91tdd9f1de0b7a527a8>