lkml.org 
[lkml]   [2007]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] make csum_partial obj-y
On Tue, Apr 03, 2007 at 12:09:33PM -0700, Randy Dunlap wrote:
> Andi Kleen wrote:
> >Randy Dunlap <randy.dunlap@oracle.com> writes:
> >
> >>From: Randy Dunlap <randy.dunlap@oracle.com>
> >>
> >>Fixes kernel bugzilla #8242:
> >>
> >>Move csum_partial() from lib-y to obj-$(CONFIG_CSUM_PARTIAL)
> >>so that modules can use it.
> >>
> >>CONFIG_BLK_DEV_MD (md/raid driver) needs csum_partial(),
> >>even when CONFIG_NET=n and BLK_DEV_MD=m, so build it as an
> >>object to force it being built and available.
> >>
> >>REISERFS with XATTR=y also needs csum_partial(), so that
> >>is enforced here.
> >
> >They are all broken because csum_partial gives different values
> >on different architectures. You're just extending that to
> >possibly more subsystems.
>
> So the ones that can be localized (BLK_DEV_MD and REISERFS)
> should have their own versions?

They would need some compat code to still be able to read
old versions and a new format that is portable.

Currently it means you likely have architecture specific MD
and reiserfs data structures on disk which is broken.

BTW It might be better to just switch to a stronger checksum.
The TCP checksum is quite weak and we already have CRC functions.

> How does the networking code work across multiple architectures?

It folds the csum_partial output together with a pseudo header
into the final checksum. Just skipping the folding step is broken
because the presentation before that is architecture specific.
e.g. some hold it in 32bit and others in 64bit.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-04-03 21:27    [W:0.099 / U:0.636 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site