Oops. There was a mutex handling bug in the code I submitted. I tested all
kinds of things, but forgot to enable VLAN, disable it again and /enable it/
/again/. The final step, that I forgot, was of course where it went wrong.
Disabling the VLAN never released the mutex.

Attached patch should fix that.

Signed-Off by: Peter Lebbing <pe...@digitalbrains.com>

---

--- backfire/target/linux/generic-2.6/files/drivers/net/phy/adm6996.c.old       
2011-01-09 11:18:18.631976648 +0100
+++ backfire/target/linux/generic-2.6/files/drivers/net/phy/adm6996.c   
2011-01-09 11:18:51.035975864 +0100
@@ -431,7 +431,7 @@
        if (!priv->enable_vlan && priv->vlan_enabled) {
                adm6996_disable_vlan(priv);
                priv->vlan_enabled = 0;
-               return 0;
+               goto out;
        } else if (priv->enable_vlan && !priv->vlan_enabled) {
                adm6996_enable_vlan(priv);
                priv->vlan_enabled = 1;
@@ -440,6 +440,7 @@
        adm6996_apply_port_pvids (priv);
        adm6996_apply_vlan_filters (priv);
 
+out:
        mutex_unlock(&priv->reg_mutex);
 
        return 0;
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to