Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
net: gmii2rgmii: Add check before calling phy read status
Phy read status hook will not be assigned if generic phy is attached. Add a check for the hook and then call genphy's implementation in case hook isn't present. This is a fix for the following kernel oops: [ 6.806251] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [ 6.815033] Mem abort info: [ 6.817809] ESR = 0x86000005 [ 6.820854] Exception class = IABT (current EL), IL = 32 bits [ 6.826766] SET = 0, FnV = 0 [ 6.829805] EA = 0, S1PTW = 0 [ 6.832938] user pgtable: 4k pages, 39-bit VAs, pgdp = (____ptrval____) [ 6.839540] [0000000000000000] pgd=0000000000000000, pud=0000000000000000 [ 6.846322] Internal error: Oops: 86000005 [#1] SMP [ 6.851184] Modules linked in: uio_pdrv_genirq [ 6.855623] CPU: 2 PID: 42 Comm: kworker/2:1 Not tainted 4.19.0-xilinx-v2018.3 #1 [ 6.863093] Hardware name: ZynqMP ZC1275 RevB (DT) [ 6.867876] Workqueue: events_power_efficient phy_state_machine [ 6.873780] pstate: 60000005 (nZCv daif -PAN -UAO) [ 6.878552] pc : (null) [ 6.881853] lr : xgmiitorgmii_read_status+0x30/0x98 [ 6.886720] sp : ffffff800a79bd40 [ 6.890018] x29: ffffff800a79bd40 x28: 0000000000000000 [ 6.895321] x27: ffffffc06da5fb38 x26: ffffff8008d088a0 [ 6.900616] x25: 0000000000000000 x24: ffffffc06bed6be8 [ 6.905911] x23: ffffffc06bed6800 x22: ffffffc06bed6c38 [ 6.911206] x21: 0000000000000008 x20: ffffffc06bed5000 [ 6.916501] x19: ffffffc06bed6800 x18: 0000000000000400 [ 6.921795] x17: 0000000000000000 x16: 0000000000000000 [ 6.927090] x15: 0000000000000400 x14: 00000000000003b8 [ 6.932385] x13: 0000000000000000 x12: 0000000000000001 [ 6.937680] x11: 0000000000000000 x10: 00000000000007f0 [ 6.942975] x9 : ffffffc06d9f5d60 x8 : fefefefefefefeff [ 6.948269] x7 : 0000000000000018 x6 : 0000000000000018 [ 6.953564] x5 : 0000746e65696369 x4 : 000000000000002f [ 6.958859] x3 : ffffffc06bed6c38 x2 : 0000000000000000 [ 6.964154] x1 : ffffffc06bc1b000 x0 : ffffffc06bed6800 [ 6.969450] Process kworker/2:1 (pid: 42, stack limit = 0x(____ptrval____)) [ 6.976392] Call trace: [ 6.978823] (null) [ 6.981777] phy_state_machine+0x244/0x528 [ 6.985857] process_one_work+0x1e4/0x340 [ 6.989857] worker_thread+0x3c/0x488 [ 6.993504] kthread+0x124/0x128 [ 6.996715] ret_from_fork+0x10/0x18 [ 7.000274] Code: bad PC value [ 7.003312] ---[ end trace 058be319ffdbcfb0 ]--- Signed-off-by: Harini Katakam <harini.katakam@xilinx.com> Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
- Loading branch information