Sachin Sant wrote:
> With today's next eHEA drivers fails to initialize.
If i revert the following patch eHEA network interface is initialized
properly.
commit cebfe0b6709abdab997c1a00499d67efa32ee1f0
drivercore: Add of_match_table to the common device drivers
Thanks
-Sachin
>
> IBM eHEA ethernet device driver (Release EHEA_0103)
> Unable to handle kernel paging request for data at address 0x00000000
> Faulting instruction address: 0xc0000000004e8d7c
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=1024 NUMA pSeries
> last sysfs file: /sys/devices/vio/30000007/host0/target0:0:2/0:0:2:0/type
> Modules linked in: ehea(+) sr_mod cdrom sg sd_mod crc_t10dif ibmvscsic
> scsi_transport_srp scsi_tgt scsi_mod
> NIP: c0000000004e8d7c LR: c00000000002614c CTR: c000000000026314
> REGS: c00000000c517810 TRAP: 0300 Not tainted
> (2.6.34-rc5-autotest-next-20100430)
> MSR: 8000000000009032 <EE,ME,IR,DR> CR: 24222228 XER: 20000005
> DAR: 0000000000000000, DSISR: 0000000040000000
> TASK = c00000000cf3ced0[730] 'modprobe' THREAD: c00000000c514000 CPU: 0
> GPR00: c00000000002614c c00000000c517a90 c000000000c96358
> 0000000000000000
> GPR04: c0000000ffff7858 c0000000004e973c c00000000cf3d9c8
> 0000000000000000
> GPR08: c000000000e4f8a0 0000000000001eed 0000000000000000
> 00000000000002e7
> GPR12: d000000001bfb0d0 c000000007440000 0000000000000000
> 0000000000000000
> GPR16: 0000000000000000 0000000000000000 000000001002c598
> 0000000000000000
> GPR20: 0000000000000000 0000000000000004 0000000000000000
> 0000000010030218
> GPR24: 0000000010030160 00000fffb7b00000 0000000010030200
> 0000000000000000
> GPR28: c0000000ffff7858 0000000000000000 c000000000bfd528
> 0000000000000000
> NIP [c0000000004e8d7c] .of_match_node+0xc0/0x10c
> LR [c00000000002614c] .ibmebus_create_devices+0x48/0x104
> Call Trace:
> [c00000000c517a90] [c0000000004e973c] .of_get_next_child+0x74/0x98
> (unreliable)
> [c00000000c517b20] [c00000000002614c] .ibmebus_create_devices+0x48/0x104
> [c00000000c517bc0] [c000000000026338] .ibmebus_register_driver+0x24/0x4c
> [c00000000c517c50] [d000000001bfa1bc] .ehea_module_init+0x1d4/0x22b8
> [ehea]
> [c00000000c517ce0] [c0000000000097a4] .do_one_initcall+0x88/0x1bc
> [c00000000c517d90] [c0000000000cbdf4] .SyS_init_module+0x11c/0x2b0
> [c00000000c517e30] [c0000000000085b4] syscall_exit+0x0/0x40
> Instruction dump:
> 7c7de838 881f0040 2f800000 419e0018 7f83e378 389f0040 4bfffdbd 7c63e838
> 7c7d07b4 2fbd0000 409e0030 3bff00c8 <881f0000> 2f800000 409eff60 881f0020
> ---[ end trace cb522a034d760fb8 ]---
>
> next-20100428 was OK. Will try to bisect.
>
> Thanks
> -Sachin
>
>
--
---------------------------------
Sachin Sant
IBM Linux Technology Center
India Systems and Technology Labs
Bangalore, India
---------------------------------
On Fri, Apr 30, 2010 at 11:27 AM, Sachin Sant <[email protected]> wrote:
> Sachin Sant wrote:
>>
>> With today's next eHEA drivers fails to initialize.
>
> If i revert the following patch eHEA network interface is initialized
> properly.
>
> commit cebfe0b6709abdab997c1a00499d67efa32ee1f0
> drivercore: Add of_match_table to the common device drivers
That is an easy one to fix. I'll get it updated today and send you the result.
g.
On Fri, Apr 30, 2010 at 11:35 AM, Grant Likely
<[email protected]> wrote:
> On Fri, Apr 30, 2010 at 11:27 AM, Sachin Sant <[email protected]> wrote:
>> Sachin Sant wrote:
>>>
>>> With today's next eHEA drivers fails to initialize.
>>
>> If i revert the following patch eHEA network interface is initialized
>> properly.
>>
>> commit cebfe0b6709abdab997c1a00499d67efa32ee1f0
>> drivercore: Add of_match_table to the common device drivers
>
> That is an easy one to fix. ?I'll get it updated today and send you the result.
Let me know if this patch fixes it:
Cheers,
g.
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index ce957a4..693b0e6 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -201,6 +201,9 @@ static int ibmebus_create_devices(const struct
of_device_id *matches)
int ibmebus_register_driver(struct of_platform_driver *drv)
{
+ if (!drv->driver.of_match_table)
+ drv->driver.of_match_table = drv->match_table;
+
/* If the driver uses devices that ibmebus doesn't know, add them */
ibmebus_create_devices(drv->driver.of_match_table);
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.