Re: ACPI 'driver bug: Unable to set devclass'

2012-05-24 Thread John Baldwin
On Thursday, May 24, 2012 2:15:26 am Andriy Gapon wrote:
 
 Now that you committed the acpi_cpu fix I'd like to do the easy part -
 protection from the problem in the future.
 Does the following look OK?
 
 Index: sys/kern/subr_bus.c
 ===
 --- sys/kern/subr_bus.c   (revision 235884)
 +++ sys/kern/subr_bus.c   (working copy)
 @@ -1810,6 +1810,8 @@
 
   PDEBUG((%s at %s with order %u as unit %d,
   name, DEVICENAME(dev), order, unit));
 + KASSERT(name != NULL || unit == -1,
 + (child device with wildcard name and specific unit number));
 
   child = make_device(dev, name, unit);
   if (child == NULL)

Yes, please do!

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-18 Thread John Baldwin
On Thursday, May 17, 2012 11:33:56 am Andriy Gapon wrote:
 on 17/05/2012 17:05 John Baldwin said the following:
  On Wednesday, May 16, 2012 4:07:43 pm John Baldwin wrote:
  Oh, whoops.  Actually, the right way to do this I think is 
  bus_hint_device_unit()
  (and/or, not make the unit number in cpuX mean anything at all, but use a 
  separate
  ivar to track what PCPU_GET(cpuid) a given cpuX device corresponds to).  I 
  think
  the last approach is really the right way to fix this.
  
  I haven't been able to try this yet, but I have a first cut at
  www.freebsd.org/~jhb/patches/acpi_cpu.patch
  
 
 The patch has not been compile-tested? :)

I've updated it with a run-tested version.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-17 Thread John Baldwin
On Wednesday, May 16, 2012 4:07:43 pm John Baldwin wrote:
 On Wednesday, May 16, 2012 12:18:25 pm Andriy Gapon wrote:
  on 16/05/2012 17:50 John Baldwin said the following:
   On Tuesday, May 15, 2012 12:35:12 pm Andriy Gapon wrote:
   Not sure what you disagree with...
   First, the wildcard device is added to the child list during the walk.
   Then, the unit 0 device is added to the list when acpi_timer identify is 
   executed.
   Then, the wildcard device is probed and gets unit number of zero.
   Then, the fixed device is being probed and the unit number conflict 
   arises.
  
   Am I misunderstanding something?
   
   Yes.  The third step will see that unit 0 is already in use and shouldn't
   reuse unit 0.
   
  
  Looks like I missed the call to devclass_add_device() in make_device().
  
  Your guess:
   I wonder if this is related to the recent changes to set the unit number 
   for CPUs?
  
  seems to be true.
  
  The device_t-s created for CPUs have NULL driver name / devclass, but a
  non-wildcard unit number.  So when such a device with unit number 0 is 
  probed by
  acpi_timer we get a unit number conflict with acpi_timer0 pre-created via 
  the
  identify.
  Similarly we get conflicts for acpi_sysresource driver, because we do an 
  early
  probe-and-attach for this driver and the attached devices get some unit 
  numbers
  (0, 1, etc).  So when during the normal probe pass the CPU devices with 
  matching
  unit numbers are passed to the driver the conflict results.
  
  I guess that it is an unorthodox use of newbus to specify a unit number 
  without
  specifying a driver name...  It's like saying this device must be unit N 
  whatever
  driver claims it (be it kbdN or diskN) just because I say so.  Not sure if 
  this
  ever makes sense and maybe we should prohibit such a combination (reject it 
  earlier).
  I guess that in this particular case we already know that the devices are 
  really
  CPU devices and are going to be claimed by acpi cpu driver.  So we should 
  pass
  cpu as the name.
 
 Oh, whoops.  Actually, the right way to do this I think is 
 bus_hint_device_unit()
 (and/or, not make the unit number in cpuX mean anything at all, but use a 
 separate
 ivar to track what PCPU_GET(cpuid) a given cpuX device corresponds to).  I 
 think
 the last approach is really the right way to fix this.

I haven't been able to try this yet, but I have a first cut at
www.freebsd.org/~jhb/patches/acpi_cpu.patch

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-17 Thread Andriy Gapon
on 17/05/2012 17:05 John Baldwin said the following:
 On Wednesday, May 16, 2012 4:07:43 pm John Baldwin wrote:
 Oh, whoops.  Actually, the right way to do this I think is 
 bus_hint_device_unit()
 (and/or, not make the unit number in cpuX mean anything at all, but use a 
 separate
 ivar to track what PCPU_GET(cpuid) a given cpuX device corresponds to).  I 
 think
 the last approach is really the right way to fix this.
 
 I haven't been able to try this yet, but I have a first cut at
 www.freebsd.org/~jhb/patches/acpi_cpu.patch
 

The patch has not been compile-tested? :)

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-17 Thread John Baldwin
On Thursday, May 17, 2012 11:33:56 am Andriy Gapon wrote:
 on 17/05/2012 17:05 John Baldwin said the following:
  On Wednesday, May 16, 2012 4:07:43 pm John Baldwin wrote:
  Oh, whoops.  Actually, the right way to do this I think is 
  bus_hint_device_unit()
  (and/or, not make the unit number in cpuX mean anything at all, but use a 
  separate
  ivar to track what PCPU_GET(cpuid) a given cpuX device corresponds to).  I 
  think
  the last approach is really the right way to fix this.
  
  I haven't been able to try this yet, but I have a first cut at
  www.freebsd.org/~jhb/patches/acpi_cpu.patch
  
 
 The patch has not been compile-tested? :)

Not yet.  I'll try to test it later today unless someone beats me to it. :-P

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-16 Thread John Baldwin
On Tuesday, May 15, 2012 12:35:12 pm Andriy Gapon wrote:
 on 15/05/2012 17:34 John Baldwin said the following:
  On Monday, May 14, 2012 12:41:37 pm Andriy Gapon wrote:
  on 14/05/2012 01:43 Bruce Cran said the following:
  On 13/05/2012 21:06, Andriy Gapon wrote:
  Can you produce an equivalent snippet with verbose logging enabled? I 
  have a
  suspicion that these messages are a byproduct from r231161. 
 
  acpi0: reservation of fee0, 1000 (3) failed
  acpi0: reservation of 0, a (3) failed
  acpi0: reservation of 10, bbf0 (3) failed
  acpi_sysresource: acpi_sysresource0 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  acpi_timer: acpi_timer0 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_timer devname: (unknown))
  cpu0: ACPI CPU on acpi0
  ACPI Warning: Incorrect checksum in table [OEMB] - 0x45, should be 0x44
  (20120420/tbutils-293)
  ACPI: SSDT 0xbb7900f0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
  ACPI: Dynamic OEM Table Load:
  ACPI: SSDT 0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
  ACPI: SSDT 0xbb791430 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
  ACPI: Dynamic OEM Table Load:
  ACPI: SSDT 0 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
  acpi_sysresource: acpi_sysresource2 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  cpu2: ACPI CPU on acpi0
  acpi_sysresource: acpi_sysresource1 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  cpu1: ACPI CPU on acpi0
  acpi_sysresource: acpi_sysresource3 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
 
 
  I think that the following is what happens here in the acpi_timer case.
  Previously one acpi_timer device_t was added with an order of zero and a 
  fixed
  unit number of zero in acpi_timer_identify().  Then, another acpi_timer 
  device_t
  could be added when walking the ACPI device tree, that device would always 
  have a
  later order and a wildcard unit number (-1).
  Now both the hardwired device and auto-probed device are added with 
  the same
  order of 2 and it also so happens that the hardwired device is after the
  auto-probed in the device list.  So first the auto-probed device just 
  takes the
  unit number of zero because it is free and then the hardwired device fails 
  to
  claim the same unit number.
  
  Eh.  This should not be true.  The unit 0 is reserved when 
  device_add_child()
  is called in the acpi_timer identify routine.  The wildcard device will not 
  be
  assigned a unit number until device_probe_child time.
 
 Not sure what you disagree with...
 First, the wildcard device is added to the child list during the walk.
 Then, the unit 0 device is added to the list when acpi_timer identify is 
 executed.
 Then, the wildcard device is probed and gets unit number of zero.
 Then, the fixed device is being probed and the unit number conflict arises.
 
 Am I misunderstanding something?

Yes.  The third step will see that unit 0 is already in use and shouldn't
reuse unit 0.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-16 Thread Andriy Gapon
on 16/05/2012 17:50 John Baldwin said the following:
 On Tuesday, May 15, 2012 12:35:12 pm Andriy Gapon wrote:
 Not sure what you disagree with...
 First, the wildcard device is added to the child list during the walk.
 Then, the unit 0 device is added to the list when acpi_timer identify is 
 executed.
 Then, the wildcard device is probed and gets unit number of zero.
 Then, the fixed device is being probed and the unit number conflict arises.

 Am I misunderstanding something?
 
 Yes.  The third step will see that unit 0 is already in use and shouldn't
 reuse unit 0.
 

Looks like I missed the call to devclass_add_device() in make_device().

Your guess:
 I wonder if this is related to the recent changes to set the unit number for 
 CPUs?

seems to be true.

The device_t-s created for CPUs have NULL driver name / devclass, but a
non-wildcard unit number.  So when such a device with unit number 0 is probed by
acpi_timer we get a unit number conflict with acpi_timer0 pre-created via the
identify.
Similarly we get conflicts for acpi_sysresource driver, because we do an early
probe-and-attach for this driver and the attached devices get some unit numbers
(0, 1, etc).  So when during the normal probe pass the CPU devices with 
matching
unit numbers are passed to the driver the conflict results.

I guess that it is an unorthodox use of newbus to specify a unit number without
specifying a driver name...  It's like saying this device must be unit N 
whatever
driver claims it (be it kbdN or diskN) just because I say so.  Not sure if this
ever makes sense and maybe we should prohibit such a combination (reject it 
earlier).
I guess that in this particular case we already know that the devices are really
CPU devices and are going to be claimed by acpi cpu driver.  So we should pass
cpu as the name.

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-16 Thread John Baldwin
On Wednesday, May 16, 2012 12:18:25 pm Andriy Gapon wrote:
 on 16/05/2012 17:50 John Baldwin said the following:
  On Tuesday, May 15, 2012 12:35:12 pm Andriy Gapon wrote:
  Not sure what you disagree with...
  First, the wildcard device is added to the child list during the walk.
  Then, the unit 0 device is added to the list when acpi_timer identify is 
  executed.
  Then, the wildcard device is probed and gets unit number of zero.
  Then, the fixed device is being probed and the unit number conflict arises.
 
  Am I misunderstanding something?
  
  Yes.  The third step will see that unit 0 is already in use and shouldn't
  reuse unit 0.
  
 
 Looks like I missed the call to devclass_add_device() in make_device().
 
 Your guess:
  I wonder if this is related to the recent changes to set the unit number 
  for CPUs?
 
 seems to be true.
 
 The device_t-s created for CPUs have NULL driver name / devclass, but a
 non-wildcard unit number.  So when such a device with unit number 0 is probed 
 by
 acpi_timer we get a unit number conflict with acpi_timer0 pre-created via the
 identify.
 Similarly we get conflicts for acpi_sysresource driver, because we do an early
 probe-and-attach for this driver and the attached devices get some unit 
 numbers
 (0, 1, etc).  So when during the normal probe pass the CPU devices with 
 matching
 unit numbers are passed to the driver the conflict results.
 
 I guess that it is an unorthodox use of newbus to specify a unit number 
 without
 specifying a driver name...  It's like saying this device must be unit N 
 whatever
 driver claims it (be it kbdN or diskN) just because I say so.  Not sure if 
 this
 ever makes sense and maybe we should prohibit such a combination (reject it 
 earlier).
 I guess that in this particular case we already know that the devices are 
 really
 CPU devices and are going to be claimed by acpi cpu driver.  So we should pass
 cpu as the name.

Oh, whoops.  Actually, the right way to do this I think is 
bus_hint_device_unit()
(and/or, not make the unit number in cpuX mean anything at all, but use a 
separate
ivar to track what PCPU_GET(cpuid) a given cpuX device corresponds to).  I think
the last approach is really the right way to fix this.

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-15 Thread John Baldwin
On Monday, May 14, 2012 12:41:37 pm Andriy Gapon wrote:
 on 14/05/2012 01:43 Bruce Cran said the following:
  On 13/05/2012 21:06, Andriy Gapon wrote:
  Can you produce an equivalent snippet with verbose logging enabled? I have 
  a
  suspicion that these messages are a byproduct from r231161. 
  
  acpi0: reservation of fee0, 1000 (3) failed
  acpi0: reservation of 0, a (3) failed
  acpi0: reservation of 10, bbf0 (3) failed
  acpi_sysresource: acpi_sysresource0 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  acpi_timer: acpi_timer0 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_timer devname: (unknown))
  cpu0: ACPI CPU on acpi0
  ACPI Warning: Incorrect checksum in table [OEMB] - 0x45, should be 0x44
  (20120420/tbutils-293)
  ACPI: SSDT 0xbb7900f0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
  ACPI: Dynamic OEM Table Load:
  ACPI: SSDT 0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
  ACPI: SSDT 0xbb791430 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
  ACPI: Dynamic OEM Table Load:
  ACPI: SSDT 0 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
  acpi_sysresource: acpi_sysresource2 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  cpu2: ACPI CPU on acpi0
  acpi_sysresource: acpi_sysresource1 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  cpu1: ACPI CPU on acpi0
  acpi_sysresource: acpi_sysresource3 already exists; skipping it
  driver bug: Unable to set devclass (class: acpi_sysresource devname: 
  (unknown))
  
 
 I think that the following is what happens here in the acpi_timer case.
 Previously one acpi_timer device_t was added with an order of zero and a fixed
 unit number of zero in acpi_timer_identify().  Then, another acpi_timer 
 device_t
 could be added when walking the ACPI device tree, that device would always 
 have a
 later order and a wildcard unit number (-1).
 Now both the hardwired device and auto-probed device are added with the 
 same
 order of 2 and it also so happens that the hardwired device is after the
 auto-probed in the device list.  So first the auto-probed device just takes 
 the
 unit number of zero because it is free and then the hardwired device fails to
 claim the same unit number.

Eh.  This should not be true.  The unit 0 is reserved when device_add_child()
is called in the acpi_timer identify routine.  The wildcard device will not be
assigned a unit number until device_probe_child time.

 The call chain is:
 device_probe_child - device_set_devclass - devclass_add_device -
 devclass_alloc_unit.

That is, the unit for the wildcard devices should still be -1 here and should 
not
even get to this message.

I wonder if this is related to the recent changes to set the unit number for 
CPUs?

-- 
John Baldwin
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-15 Thread Andriy Gapon
on 15/05/2012 17:34 John Baldwin said the following:
 On Monday, May 14, 2012 12:41:37 pm Andriy Gapon wrote:
 on 14/05/2012 01:43 Bruce Cran said the following:
 On 13/05/2012 21:06, Andriy Gapon wrote:
 Can you produce an equivalent snippet with verbose logging enabled? I have 
 a
 suspicion that these messages are a byproduct from r231161. 

 acpi0: reservation of fee0, 1000 (3) failed
 acpi0: reservation of 0, a (3) failed
 acpi0: reservation of 10, bbf0 (3) failed
 acpi_sysresource: acpi_sysresource0 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 acpi_timer: acpi_timer0 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_timer devname: (unknown))
 cpu0: ACPI CPU on acpi0
 ACPI Warning: Incorrect checksum in table [OEMB] - 0x45, should be 0x44
 (20120420/tbutils-293)
 ACPI: SSDT 0xbb7900f0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
 ACPI: Dynamic OEM Table Load:
 ACPI: SSDT 0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
 ACPI: SSDT 0xbb791430 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
 ACPI: Dynamic OEM Table Load:
 ACPI: SSDT 0 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
 acpi_sysresource: acpi_sysresource2 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 cpu2: ACPI CPU on acpi0
 acpi_sysresource: acpi_sysresource1 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 cpu1: ACPI CPU on acpi0
 acpi_sysresource: acpi_sysresource3 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))


 I think that the following is what happens here in the acpi_timer case.
 Previously one acpi_timer device_t was added with an order of zero and a 
 fixed
 unit number of zero in acpi_timer_identify().  Then, another acpi_timer 
 device_t
 could be added when walking the ACPI device tree, that device would always 
 have a
 later order and a wildcard unit number (-1).
 Now both the hardwired device and auto-probed device are added with the 
 same
 order of 2 and it also so happens that the hardwired device is after the
 auto-probed in the device list.  So first the auto-probed device just takes 
 the
 unit number of zero because it is free and then the hardwired device fails to
 claim the same unit number.
 
 Eh.  This should not be true.  The unit 0 is reserved when device_add_child()
 is called in the acpi_timer identify routine.  The wildcard device will not be
 assigned a unit number until device_probe_child time.

Not sure what you disagree with...
First, the wildcard device is added to the child list during the walk.
Then, the unit 0 device is added to the list when acpi_timer identify is 
executed.
Then, the wildcard device is probed and gets unit number of zero.
Then, the fixed device is being probed and the unit number conflict arises.

Am I misunderstanding something?

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-14 Thread Andriy Gapon
on 14/05/2012 01:43 Bruce Cran said the following:
 On 13/05/2012 21:06, Andriy Gapon wrote:
 Can you produce an equivalent snippet with verbose logging enabled? I have a
 suspicion that these messages are a byproduct from r231161. 
 
 acpi0: reservation of fee0, 1000 (3) failed
 acpi0: reservation of 0, a (3) failed
 acpi0: reservation of 10, bbf0 (3) failed
 acpi_sysresource: acpi_sysresource0 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 acpi_timer: acpi_timer0 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_timer devname: (unknown))
 cpu0: ACPI CPU on acpi0
 ACPI Warning: Incorrect checksum in table [OEMB] - 0x45, should be 0x44
 (20120420/tbutils-293)
 ACPI: SSDT 0xbb7900f0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
 ACPI: Dynamic OEM Table Load:
 ACPI: SSDT 0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
 ACPI: SSDT 0xbb791430 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
 ACPI: Dynamic OEM Table Load:
 ACPI: SSDT 0 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
 acpi_sysresource: acpi_sysresource2 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 cpu2: ACPI CPU on acpi0
 acpi_sysresource: acpi_sysresource1 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 cpu1: ACPI CPU on acpi0
 acpi_sysresource: acpi_sysresource3 already exists; skipping it
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 

I think that the following is what happens here in the acpi_timer case.
Previously one acpi_timer device_t was added with an order of zero and a fixed
unit number of zero in acpi_timer_identify().  Then, another acpi_timer device_t
could be added when walking the ACPI device tree, that device would always have 
a
later order and a wildcard unit number (-1).
Now both the hardwired device and auto-probed device are added with the same
order of 2 and it also so happens that the hardwired device is after the
auto-probed in the device list.  So first the auto-probed device just takes the
unit number of zero because it is free and then the hardwired device fails to
claim the same unit number.

The call chain is:
device_probe_child - device_set_devclass - devclass_add_device -
devclass_alloc_unit.

BTW, it seems that acpi_timer_probe is hardcoded to succeed only for the 
hardwired
device, so I am not if we should just skip creating an auto-probed device.  In 
any
case, setting any special properties for the auto-probed device (like the order)
seems to be completely pointless.

I am not really sure what happens for the acpi_sysresource devices.

-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-13 Thread Andriy Gapon
on 13/05/2012 11:39 Bruce Cran said the following:
 I've just updated to -current and noticed the following errors in dmesg:
 
 acpi0: NEC  on motherboard
 acpi0: Power Button (fixed)
 acpi0: reservation of fee0, 1000 (3) failed
 acpi0: reservation of 0, a (3) failed
 acpi0: reservation of 10, bbf0 (3) failed
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 driver bug: Unable to set devclass (class: acpi_timer devname: (unknown))
 cpu0: ACPI CPU on acpi0
 ACPI Warning: Incorrect checksum in table [OEMB] - 0x45, should be 0x44
 (20120420/tbutils-293)
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 cpu2: ACPI CPU on acpi0
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 cpu1: ACPI CPU on acpi0
 driver bug: Unable to set devclass (class: acpi_sysresource devname: 
 (unknown))
 

Can you produce an equivalent snippet with verbose logging enabled?
I have a suspicion that these messages are a byproduct from r231161.
-- 
Andriy Gapon
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: ACPI 'driver bug: Unable to set devclass'

2012-05-13 Thread Bruce Cran

On 13/05/2012 21:06, Andriy Gapon wrote:
Can you produce an equivalent snippet with verbose logging enabled? I 
have a suspicion that these messages are a byproduct from r231161. 


acpi0: reservation of fee0, 1000 (3) failed
acpi0: reservation of 0, a (3) failed
acpi0: reservation of 10, bbf0 (3) failed
acpi_sysresource: acpi_sysresource0 already exists; skipping it
driver bug: Unable to set devclass (class: acpi_sysresource devname: 
(unknown))

acpi_timer: acpi_timer0 already exists; skipping it
driver bug: Unable to set devclass (class: acpi_timer devname: (unknown))
cpu0: ACPI CPU on acpi0
ACPI Warning: Incorrect checksum in table [OEMB] - 0x45, should be 0x44 
(20120420/tbutils-293)

ACPI: SSDT 0xbb7900f0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
ACPI: Dynamic OEM Table Load:
ACPI: SSDT 0 01340 (v01 DpgPmm  P001Ist 0011 INTL 20051117)
ACPI: SSDT 0xbb791430 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
ACPI: Dynamic OEM Table Load:
ACPI: SSDT 0 004F4 (v01  PmRef  P001Cst 3001 INTL 20051117)
acpi_sysresource: acpi_sysresource2 already exists; skipping it
driver bug: Unable to set devclass (class: acpi_sysresource devname: 
(unknown))

cpu2: ACPI CPU on acpi0
acpi_sysresource: acpi_sysresource1 already exists; skipping it
driver bug: Unable to set devclass (class: acpi_sysresource devname: 
(unknown))

cpu1: ACPI CPU on acpi0
acpi_sysresource: acpi_sysresource3 already exists; skipping it
driver bug: Unable to set devclass (class: acpi_sysresource devname: 
(unknown))


--
Bruce Cran
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org