Bug 26231 - hald aborts device enumeration on non-x86 NetBSD
Summary: hald aborts device enumeration on non-x86 NetBSD
Status: NEW
Alias: None
Product: hal
Classification: Unclassified
Component: hald (show other bugs)
Version: unspecified
Hardware: All NetBSD
: medium blocker
Assignee: David Zeuthen (not reading bugmail)
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-25 17:03 UTC by Michael Lorenz
Modified: 2011-08-10 02:15 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Michael Lorenz 2010-01-25 17:03:01 UTC
When a device node has no siblings hald aborts - this happens on many non-x86 architectures under NetBSD, namely macppc, sparc64 and sgimips ( x86 doesn't trigger it for some reason )

It's trivial to fix:
--- hald/device_info.c.orig     2010-01-24 19:45:40.000000000 -0500
+++ hald/device_info.c
@@ -1083,8 +1083,15 @@ rules_match_and_merge_device (void *fdi_
                                /*HAL_INFO(("no match, skip to rule (%llx)", rul
e->jump_position));*/
                                rule = di_jump(rule);
 
+#if 0
+                               /*
+                                * XXX
+                                * this fires when a node has a single child
+                                * which happens on some non-x86 machines
+                                */
                                if(rule == NULL)
                                        DIE(("Rule is NULL on jump"));
+#endif
 
                                continue;
                        }
With this hald Just Works(tm) on NetBSD/macppc:
/usr/pkgsrc/sysutils/hal# lshal

Dumping 71 device(s) from the Global Device List:
-------------------------------------------------
udi = '/org/freedesktop/Hal/devices/computer'
  info.product = 'Computer'  (string)
  info.subsystem = 'unknown'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer'  (string)
  netbsd.device = 'mainbus0'  (string)
  power_management.can_hibernate = false  (bool)
  power_management.can_suspend = true  (bool)
  power_management.type = 'apm'  (string)
  system.formfactor = 'desktop'  (string)
  system.kernel.machine = 'macppc'  (string)
  system.kernel.name = 'NetBSD'  (string)
  system.kernel.version = '5.99.24'  (string)

udi = '/org/freedesktop/Hal/devices/uninorth2'
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = 'uninorth2'  (string)
  info.udi = '/org/freedesktop/Hal/devices/uninorth2'  (string)
  netbsd.device = 'uninorth2'  (string)

udi = '/org/freedesktop/Hal/devices/pci3'
  info.parent = '/org/freedesktop/Hal/devices/uninorth2'  (string)
  info.product = 'pci3'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci3'  (string)
  netbsd.device = 'pci3'  (string)

udi = '/org/freedesktop/Hal/devices/gem0'
  info.parent = '/org/freedesktop/Hal/devices/pci3'  (string)
  info.product = 'gem0'  (string)
  info.udi = '/org/freedesktop/Hal/devices/gem0'  (string)
  netbsd.device = 'gem0'  (string)

udi = '/org/freedesktop/Hal/devices/brgphy1'
  info.parent = '/org/freedesktop/Hal/devices/gem0'  (string)
  info.product = 'brgphy1'  (string)
  info.udi = '/org/freedesktop/Hal/devices/brgphy1'  (string)
  netbsd.device = 'brgphy1'  (string)
...
etc.
Comment 1 Danny Kukawka 2011-08-10 02:15:57 UTC
Is the fix still needed (HAL is in maintenance mode)?


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.