Message ID | 4D8690B4.7030900@redfish-solutions.com |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
--- a/drivers/atm/solos-pci.c 2011-03-20 15:27:40.000000000 -0600 +++ b/drivers/atm/solos-pci.c 2011-03-20 16:32:11.000000000 -0600 @@ -382,8 +382,11 @@ static int process_status(struct solos_c /* Anything but 'Showtime' is down */ if (strcmp(state_str, "Showtime")) { + char old_signal = card->atmdev[port]->signal; + atm_dev_signal_change(card->atmdev[port], ATM_PHY_SIG_LOST); - atm_dev_release_vccs(card->atmdev[port]); + if (old_signal == ATM_PHY_SIG_FOUND) + atm_dev_release_vccs(card->atmdev[port]); dev_info(&card->dev->dev, "Port %d: %s\n", port, state_str); return 0; }
The newest FPGA firmware on the Solos processors correctly signals carrier transitions, bitrate, etc. The driver previously ignored these messages, and the physical state was always ATM_PHY_SIG_UNKNOWN. Now that the board reports its state, we expose a bug whereby the transition from UNKNOWN to LOST causes us to release all VC's. It should not: only transitions from FOUND to LOST or UNKNOWN should do this (actually, it's bears examining if the VC's should be released at all). So we add a check to the previous state on transitions for leaving FOUND state. Signed-off-by: Philip A Prindeville <philipp@redfish-solutions.com> --- -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html