lkml.org 
[lkml]   [2015]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH v12 00/21] Re-introduce h8300 architecture
Date
On Monday 11 May 2015 10:50:27 Guenter Roeck wrote:
> On Mon, May 11, 2015 at 03:26:19PM +0900, Yoshinori Sato wrote:
> > Changes for v12
> > - IRQ chip convert to OF
> > - dts cleanup
> > - some headers use generic
> > - rebase to v4.1-rc3
> >
> Configurations in arch/h8300/configs shtill build ok.
>
> make allmodoconfig, after fixing the spi build error, results in
>
> ERROR: "csum_partial_copy_nocheck" [net/ipv6/ipv6.ko] undefined!
> ERROR: "ip_compute_csum" [net/ipv6/ip6_gre.ko] undefined!
> ERROR: "ip_fast_csum" [net/ipv4/xfrm4_mode_beet.ko] undefined!
> ERROR: "ip_compute_csum" [net/bridge/bridge.ko] undefined!
> ERROR: "ip_fast_csum" [net/bridge/bridge.ko] undefined!
> ERROR: "ip_fast_csum" [net/bridge/br_netfilter.ko] undefined!
> ERROR: "ip_fast_csum" [net/atm/mpoa.ko] undefined!
> ERROR: "__ucmpdi2" [fs/btrfs/btrfs.ko] undefined!
> ERROR: "ip_compute_csum" [drivers/scsi/scsi_debug.ko] undefined!
> ERROR: "ip_fast_csum" [drivers/net/slip/slhc.ko] undefined!
> ERROR: "__ucmpdi2" [drivers/md/bcache/bcache.ko] undefined!
> ERROR: "__ucmpdi2" [drivers/iio/imu/inv_mpu6050/inv-mpu6050.ko] undefined!
>
> csum_partial_copy_nocheck, ip_compute_csum, and ip_fast_csum need to be exported
> from arch/h8300/lib/checksum.c.

Interesting. From what I can see, the arch/h8300/lib/checksum.c file
contains a completely generic implementation of the IP checksum code.
That should not be necessary at all, and is more likely to lead to
subtle errors like the one you see here.

It would be better to do one of two things:

a) use the code from lib/checksum.c that is known to work well, and that
contains all the necessary exports. It seems that the h8300 is
almost an except copy of the generic code, it just misses a few
improvements that were done already in the kernel.

b) provide an optimized implementation written in assembly where necessary.
This can provide a significant performance improvement for TCP/IP
networking.

> No idea what to do about the missing __ucmpdi2
> symbol, or what causes it.

This is a libgcc symbol provided by arch/h8300/lib/ucmpdi2.c in patch
15. The other similar functions are written in assembly and exported
from arch/h8300/kernel/h8300_ksyms.c, while this one is written in C
and missing the export. It should be added in the file that defines
the function.

Arnd


\
 
 \ /
  Last update: 2015-05-11 21:41    [W:1.223 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site