Hello All, I am facing a problem in running a kernel modules on Solaris 10, which were working on Solaris 9. Following are my observations.
A module calls 'ndi_devi_offline' to keep the device offline but does not remove it. The call is - 'ndi_devi_offline(dNode, 0);'. After this call another module tries to read the properties of this node, using 'ddi_prop_lookup_int_array' which is failing. This call is to to find the 'dev_info_t' of the node. This module, then removes the node by calling 'ndi_devi_offline( tmpDI, NDI_DEVI_REMOVE );'. As the property read call fails, the module can not get the 'dev_info_t' value hence can not remove the node. Is the 'ndi_devi_offline' is supposed to differ like this between 'Solaris 10' and 'Solaris 9'? Is there any work around to my probelm? Currently, the second module reads a particular property (by 'ddi_prop_lookup_int_array') of all the node starting from the root. If the property value matches with the property values the module is looking for, then this is the required 'dev_info_t'. The value of 'dev_info_t' found in this way is used to NDI_DEVI_REMOVE the node. On Solaris 10, the 'ddi_prop_lookup_int_array' call is failing for the node for which 'ndi_devi_offline(dNode, 0);' was called but the node is still exists (after this call) in the tree (not removed). Thanks and regards, chandra _______________________________________________ driver-discuss mailing list driver-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/driver-discuss