Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Oct 2009 09:16:54 -0500
From:      Robert Noland <rnoland@FreeBSD.org>
To:        Andriy Gapon <avg@icyb.net.ua>
Cc:        freebsd-hackers@FreeBSD.org, freebsd-acpi@FreeBSD.org
Subject:   Re: heci: a new driver for review and testing
Message-ID:  <1255616214.2356.872.camel@balrog.2hip.net>
In-Reply-To: <4AD6B1D5.3010003@icyb.net.ua>
References:  <4AD6067E.2010503@icyb.net.ua> <1255555532.95374.147.camel@balrog.2hip.net> <4AD6B1D5.3010003@icyb.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2009-10-15 at 08:23 +0300, Andriy Gapon wrote:
> on 15/10/2009 00:25 Robert Noland said the following:
> > On Wed, 2009-10-14 at 20:12 +0300, Andriy Gapon wrote:
> >> Some time ago I posted some ideas about HECI/MEI driver for FreeBSD:
> >> http://docs.freebsd.org/cgi/mid.cgi?4968E9A1.3080006
> >>
> >> I actually got around to implementing it (in initial/basic form):
> >> http://people.freebsd.org/~avg/heci.tgz
> > 
> > Your getting a WITNESS warning from malloc() while holding a lock at
> > like 941 of heci.c
> > 
> >                 mec = (struct me_client *)malloc(sizeof(*mec), M_HECI,
> >                     M_NOWAIT | M_ZERO);
> > 
> > fixes it.
> 
> Shame on me!
> I have to admit that tested/used this module only on stable/7 (amd64) and
> without WITNESS/INVARIANTS.
> Thank you for catching this.
> I guess I should also add a check for malloc returning NULL.

Yes, with M_NOWAIT you should.

Here is the dmesg output.

heci0: <Intel 82G33/G31/P35/P31 Express HECI/MEI Controller> mem
0xd0526100-0xd052610f irq 16 at device 3.0 on pci0
heci0: using MSI
heci0: [ITHREAD]
heci0: found ME client at address 0x02:
heci0:  status = 0x00
heci0:  protocol_name(guid) = BB875E12-CB58-4D14-AE93-8566183C66C7
heci0: found ME client at address 0x03:
heci0:  status = 0x00
heci0:  protocol_name(guid) = A12FF5CA-FACB-4CB4-A958-19A23B2E6881
heci0: found ME client at address 0x06:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 9B27FD6D-EF72-4967-BCC2-471A32679620
heci0: found ME client at address 0x07:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 55213584-9A29-4916-BADF-0FB7ED682AEB
heci0: found ME client at address 0x20:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 23F27E9B-9D26-4FCE-9227-DE06446E5B06
heci0: found ME client at address 0x21:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 309DCDE8-CCB1-4062-8F78-600115A34327
heci0: found ME client at address 0x22:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 6B5205B9-8185-4519-B889-D98724B58607
heci0: found ME client at address 0x23:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 9D9105BD-C8C6-41CA-AC28-84738E2CE9FD
heci0: found ME client at address 0x24:
heci0:  status = 0x00
heci0:  protocol_name(guid) = DC506909-7ADB-4A0D-B109-4E25E38C382C
heci0: found ME client at address 0x25:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 6733A4DB-0476-4E7B-B3AF-BCFC29BEE7A7
heci0: found ME client at address 0x26:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 12F80028-B4B7-4B2D-ACA8-46E0FF65814C
heci0: found ME client at address 0x27:
heci0:  status = 0x00
heci0:  protocol_name(guid) = 05B79A6F-4628-4D7F-899D-A91514CB32AB

robert.

> > It also locked up the machine when I tried to kldunload, but
> > haven't identified a root cause of that.
> 
> Haven't seen it here.
> I will try to investigate.
> 
-- 
Robert Noland <rnoland@FreeBSD.org>
FreeBSD




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