[TG3]: Fix 5704 single-port mode
If the dual-port 5704 is configured as a single-port device with only one PCI function, it would trigger a BUG() condition in tg3_find_5704_peer(). This fixes the problem by returning its own pdev if the peer cannot be found. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
6a9eba15f5
Коммит
16fe9d74f1
|
@ -10443,8 +10443,13 @@ static struct pci_dev * __devinit tg3_find_5704_peer(struct tg3 *tp)
|
|||
break;
|
||||
pci_dev_put(peer);
|
||||
}
|
||||
if (!peer || peer == tp->pdev)
|
||||
BUG();
|
||||
/* 5704 can be configured in single-port mode, set peer to
|
||||
* tp->pdev in that case.
|
||||
*/
|
||||
if (!peer) {
|
||||
peer = tp->pdev;
|
||||
return peer;
|
||||
}
|
||||
|
||||
/*
|
||||
* We don't need to keep the refcount elevated; there's no way
|
||||
|
|
Загрузка…
Ссылка в новой задаче