firewire: fw-ohci: check for misconfigured bus (phyID == 63)
[deliverable/linux.git] / drivers / firewire / fw-ohci.c
index ec70c9f911712b956426acd92a1148cea9653491..2f307c4df33563217ae7acbb85ae4c89224b866c 100644 (file)
@@ -917,10 +917,15 @@ static void bus_reset_tasklet(unsigned long data)
 
        reg = reg_read(ohci, OHCI1394_NodeID);
        if (!(reg & OHCI1394_NodeID_idValid)) {
-               fw_error("node ID not valid, new bus reset in progress\n");
+               fw_notify("node ID not valid, new bus reset in progress\n");
                return;
        }
-       ohci->node_id = reg & 0xffff;
+       if ((reg & OHCI1394_NodeID_nodeNumber) == 63) {
+               fw_notify("malconfigured bus\n");
+               return;
+       }
+       ohci->node_id = reg & (OHCI1394_NodeID_busNumber |
+                              OHCI1394_NodeID_nodeNumber);
 
        /*
         * The count in the SelfIDCount register is the number of
This page took 0.024894 seconds and 5 git commands to generate.