mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 15:37:23 +00:00
net: phy: Reloc next and prev pointers inside phy_drivers
This patch relocates the pointers inside phy_drivers incase of manual reloc. Without this reloc, these points to invalid pre relocation address and hence causes exception or hang. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
89bf9f1162
commit
c689c48672
1 changed files with 12 additions and 0 deletions
|
@ -462,6 +462,18 @@ static LIST_HEAD(phy_drivers);
|
|||
|
||||
int phy_init(void)
|
||||
{
|
||||
#ifdef CONFIG_NEEDS_MANUAL_RELOC
|
||||
/*
|
||||
* The pointers inside phy_drivers also needs to be updated incase of
|
||||
* manual reloc, without which these points to some invalid
|
||||
* pre reloc address and leads to invalid accesses, hangs.
|
||||
*/
|
||||
struct list_head *head = &phy_drivers;
|
||||
|
||||
head->next = (void *)head->next + gd->reloc_off;
|
||||
head->prev = (void *)head->prev + gd->reloc_off;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_B53_SWITCH
|
||||
phy_b53_init();
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue