mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
drivers: net: cpsw: fix buggy loop condition
Commit 0cd8f9cc06 ("drivers: net: cpsw:
enable promiscuous mode support")
Enable promiscuous mode support for CPSW.
Introduced a crash on an am335x based board (similiar to am335x-evm).
Reason is buggy end condition in for loop in cpsw_set_promiscious()
for (i = 0; i <= priv->data.slaves; i++)
should be
for (i = 0; i < priv->data.slaves; i++)
Fix this ...
Signed-off-by: Heiko Schocher <[email protected]>
Cc: Mugunthan V N <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Sebastian Siewior <[email protected]>
Cc: Daniel Mack <[email protected]>
Cc: Felipe Balbi <[email protected]>
Cc: Markus Pargmann <[email protected]>
Cc: [email protected]
Cc: [email protected]
Acked-by: Mugunthan V N <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
b0c057ca7e
commit
0d961b3b52
1 changed files with 3 additions and 3 deletions
|
|
@ -554,7 +554,7 @@ static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
|
|||
* common for both the interface as the interface shares
|
||||
* the same hardware resource.
|
||||
*/
|
||||
for (i = 0; i <= priv->data.slaves; i++)
|
||||
for (i = 0; i < priv->data.slaves; i++)
|
||||
if (priv->slaves[i].ndev->flags & IFF_PROMISC)
|
||||
flag = true;
|
||||
|
||||
|
|
@ -578,7 +578,7 @@ static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
|
|||
unsigned long timeout = jiffies + HZ;
|
||||
|
||||
/* Disable Learn for all ports */
|
||||
for (i = 0; i <= priv->data.slaves; i++) {
|
||||
for (i = 0; i < priv->data.slaves; i++) {
|
||||
cpsw_ale_control_set(ale, i,
|
||||
ALE_PORT_NOLEARN, 1);
|
||||
cpsw_ale_control_set(ale, i,
|
||||
|
|
@ -606,7 +606,7 @@ static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
|
|||
cpsw_ale_control_set(ale, 0, ALE_P0_UNI_FLOOD, 0);
|
||||
|
||||
/* Enable Learn for all ports */
|
||||
for (i = 0; i <= priv->data.slaves; i++) {
|
||||
for (i = 0; i < priv->data.slaves; i++) {
|
||||
cpsw_ale_control_set(ale, i,
|
||||
ALE_PORT_NOLEARN, 0);
|
||||
cpsw_ale_control_set(ale, i,
|
||||
|
|
|
|||
Loading…
Reference in a new issue