On Mon, 2011-12-12 at 20:10 -0600, Anthony Liguori wrote:
On 12/12/2011 08:04 PM, Michael Ellerman wrote:
On Mon, 2011-12-12 at 14:19 -0600, Anthony Liguori wrote:
This was doing something evil building a dt tree so we broke the device.
@@ -711,8 +711,12 @@ VIOsPAPRBus *spapr_vio_bus_init(void)
spapr_rtas_register("ibm,set-tce-bypass", rtas_set_tce_bypass);
spapr_rtas_register("quiesce", rtas_quiesce);
+#if 0
+ /* Evil and broken */
By which you mean: works fine, broken by your patch?
These patches were never supposed to go out. Ignore this series entirely.
But I just read all 197 of them ! ;)
for (qinfo = device_info_list; qinfo; qinfo = qinfo->next) {
VIOsPAPRDeviceInfo *info = (VIOsPAPRDeviceInfo *)qinfo;
+ VIOsPAPRDeviceClass *pc = VIO_SPAPR_DEVICE_GET_CLASS(dev);
if (qinfo->bus_info !=&spapr_vio_bus_info) {
continue;
@@ -722,6 +726,7 @@ VIOsPAPRBus *spapr_vio_bus_init(void)
info->hcalls(bus);
}
}
+#endif
It's registering hcalls for each class of device we find on the spapr
vio bus. I don't understand why that is evil, but what do you suggest we
do instead?
I talked to David about this, the hcalls can just be registered as part the
device_init entry points.
OK I'll talk to him about it. I don't think device_init() works, because
we only want to register the hcalls if an instance of the device is
instantiated. But I guess we'll come up with something.