heci: a new driver for review and testing
Robert Noland
rnoland at FreeBSD.org
Thu Oct 15 14:17:04 UTC 2009
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 at FreeBSD.org>
FreeBSD
More information about the freebsd-acpi
mailing list