2012-03-18 18:13:08

by Paul Gortmaker

[permalink] [raw]
Subject: _nfs_display_fhandle_hash: undefined reference to `crc32_le'

This started showing up in linux-next last week:

LD .tmp_vmlinux1
fs/built-in.o: In function `_nfs_display_fhandle_hash':
/scratch/kisskb/src/fs/nfs/inode.c:1063: undefined reference to `crc32_le'
make[1]: *** [.tmp_vmlinux1] Error 1

Target is an mpc8xx board:

http://kisskb.ellerman.id.au/kisskb/target/2679/

I tried to run an automated bisect on it, but there appears to
be build failures in the bisection range, in addition to the
above link error (i.e. points I'd use "skip" on if I wasn't
using "git bisect run ...")

# good: [b030fb0bb113316cc6f56779388b8572ab0699da] SUNRPC: use proper network namespace in rpcbind RPCBPROC_GETADDR procedure
git bisect good b030fb0bb113316cc6f56779388b8572ab0699da
# bad: [5247fab5c82779174d50590e0200bf532248a8a1] SUNRPC: pass network namespace to service registering routines
git bisect bad 5247fab5c82779174d50590e0200bf532248a8a1

Even without the concrete trigger commit, a suggested possible
fix (tested locally) is below.

Paul.
---

From 21b77ae0373725bd2c60eca065e77c4d2f0fdbfa Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <[email protected]>
Date: Sun, 18 Mar 2012 14:07:42 -0400
Subject: [PATCH] nfs: select CRC32 for when NFS is enabled for crc32_le

To avoid the following link errors:

LD .tmp_vmlinux1
fs/built-in.o: In function `_nfs_display_fhandle_hash':
fs/nfs/inode.c:1063: undefined reference to `crc32_le'
make[1]: *** [.tmp_vmlinux1] Error 1

Signed-off-by: Paul Gortmaker <[email protected]>

diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
index 7bce64c..9acdfb0 100644
--- a/fs/nfs/Kconfig
+++ b/fs/nfs/Kconfig
@@ -3,6 +3,7 @@ config NFS_FS
depends on INET && FILE_LOCKING
select LOCKD
select SUNRPC
+ select CRC32
select NFS_ACL_SUPPORT if NFS_V3_ACL
help
Choose Y here if you want to access files residing on other
--
1.7.9.1



2012-03-19 18:48:34

by Adamson, Dros

[permalink] [raw]
Subject: Re: _nfs_display_fhandle_hash: undefined reference to `crc32_le'

I like this solution.

-dros

On Mar 19, 2012, at 2:20 PM, Myklebust, Trond wrote:

> On Mon, 2012-03-19 at 15:35 +0000, Adamson, Dros wrote:
>> Oops! The fix is ok, in that it will work, but I'm not sure we want to pull in that type of dependency for a debug message.
>>
>> Maybe it'd be more appropriate to do something like this:
>>
>> From 371ebd38717cd34a58d167909b56a216db288f83 Mon Sep 17 00:00:00 2001
>> From: Weston Andros Adamson <[email protected]>
>> Date: Mon, 19 Mar 2012 11:31:12 -0400
>> Subject: [PATCH] if CRC32 isn't defined just return 0 for fh hash
>>
>>
>> Signed-off-by: Weston Andros Adamson <[email protected]>
>> ---
>> fs/nfs/inode.c | 4 ++++
>> 1 files changed, 4 insertions(+), 0 deletions(-)
>>
>> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
>> index 1a19f8d..0c1ca6a 100644
>> --- a/fs/nfs/inode.c
>> +++ b/fs/nfs/inode.c
>> @@ -1060,7 +1060,11 @@ u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh)
>> {
>> /* wireshark uses 32-bit AUTODIN crc and does a bitwise
>> * not on the result */
>> +#ifdef CONFIG_CRC32
>> return ~crc32(0xFFFFFFFF, &fh->data[0], fh->size);
>> +#else
>> + return 0;
>> +#endif
>> }
>>
>> /*
>
> That was my first thought, but the problem with the above is that it
> hides the CRC32 dependency deep down in the bowels of the NFS code.
>
> OK. What say we just bite the bullet, and add the dprintk() interface to
> Kbuild. That will allow distros that don't ship the 'rpcdebug' utility
> to turn off dprintk() and will allow us to select CRC32 if and only if
> we really need it.
> IOW: Something like the following:
>
>
> 8<--------------------------------------------------------------------
> From 855fa894a2b24b9872b535b75b04b82121f93b73 Mon Sep 17 00:00:00 2001
> From: Trond Myklebust <[email protected]>
> Date: Sun, 18 Mar 2012 14:07:42 -0400
> Subject: [PATCH] SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG
>
> This allows us to turn on/off the dprintk() debugging interfaces for
> those distributions that don't ship the 'rpcdebug' utility.
> It also allows us to add Kbuild dependencies. Specifically, we already
> know that dprintk() in general relies on CONFIG_SYSCTL. Now it turns out
> that the NFS dprintks depend on CONFIG_CRC32 after we added support
> for the filehandle hash.
>
> Reported-by: Paul Gortmaker <[email protected]>
> Signed-off-by: Trond Myklebust <[email protected]>
> ---
> fs/nfs/Kconfig | 6 ++++++
> fs/nfs/inode.c | 2 +-
> fs/nfs/mount_clnt.c | 2 +-
> fs/nfs/nfsroot.c | 2 +-
> include/linux/nfs_fs.h | 17 ++++++++---------
> include/linux/sunrpc/debug.h | 2 +-
> net/sunrpc/Kconfig | 13 +++++++++++++
> 7 files changed, 31 insertions(+), 13 deletions(-)
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index 7bce64c..2a0e6c5 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -144,3 +144,9 @@ config NFS_USE_KERNEL_DNS
> depends on NFS_V4 && !NFS_USE_LEGACY_DNS
> select DNS_RESOLVER
> default y
> +
> +config NFS_DEBUG
> + bool
> + depends on NFS_FS && SUNRPC_DEBUG
> + select CRC32
> + default y
> diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
> index 1a19f8d..7bb4d13 100644
> --- a/fs/nfs/inode.c
> +++ b/fs/nfs/inode.c
> @@ -1047,7 +1047,7 @@ struct nfs_fh *nfs_alloc_fhandle(void)
> return fh;
> }
>
> -#ifdef RPC_DEBUG
> +#ifdef NFS_DEBUG
> /*
> * _nfs_display_fhandle_hash - calculate the crc32 hash for the filehandle
> * in the same way that wireshark does
> diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c
> index b37ca34..8e65c7f 100644
> --- a/fs/nfs/mount_clnt.c
> +++ b/fs/nfs/mount_clnt.c
> @@ -16,7 +16,7 @@
> #include <linux/nfs_fs.h>
> #include "internal.h"
>
> -#ifdef RPC_DEBUG
> +#ifdef NFS_DEBUG
> # define NFSDBG_FACILITY NFSDBG_MOUNT
> #endif
>
> diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c
> index c4744e1..cd3c910 100644
> --- a/fs/nfs/nfsroot.c
> +++ b/fs/nfs/nfsroot.c
> @@ -104,7 +104,7 @@ static char nfs_export_path[NFS_MAXPATHLEN + 1] __initdata = "";
> /* server:export path string passed to super.c */
> static char nfs_root_device[NFS_MAXPATHLEN + 1] __initdata = "";
>
> -#ifdef RPC_DEBUG
> +#ifdef NFS_DEBUG
> /*
> * When the "nfsrootdebug" kernel command line option is specified,
> * enable debugging messages for NFSROOT.
> diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
> index 0a63ab2..8f27c2e 100644
> --- a/include/linux/nfs_fs.h
> +++ b/include/linux/nfs_fs.h
> @@ -38,6 +38,13 @@
>
> #ifdef __KERNEL__
>
> +/*
> + * Enable dprintk() debugging support for nfs client.
> + */
> +#ifdef CONFIG_NFS_DEBUG
> +# define NFS_DEBUG
> +#endif
> +
> #include <linux/in.h>
> #include <linux/mm.h>
> #include <linux/pagemap.h>
> @@ -391,7 +398,7 @@ static inline void nfs_free_fhandle(const struct nfs_fh *fh)
> kfree(fh);
> }
>
> -#ifdef RPC_DEBUG
> +#ifdef NFS_DEBUG
> extern u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh);
> static inline u32 nfs_display_fhandle_hash(const struct nfs_fh *fh)
> {
> @@ -650,14 +657,6 @@ nfs_fileid_to_ino_t(u64 fileid)
>
> #ifdef __KERNEL__
>
> -/*
> - * Enable debugging support for nfs client.
> - * Requires RPC_DEBUG.
> - */
> -#ifdef RPC_DEBUG
> -# define NFS_DEBUG
> -#endif
> -
> # undef ifdebug
> # ifdef NFS_DEBUG
> # define ifdebug(fac) if (unlikely(nfs_debug & NFSDBG_##fac))
> diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h
> index 6cb2517..9448eb5 100644
> --- a/include/linux/sunrpc/debug.h
> +++ b/include/linux/sunrpc/debug.h
> @@ -31,7 +31,7 @@
> /*
> * Enable RPC debugging/profiling.
> */
> -#ifdef CONFIG_SYSCTL
> +#ifdef CONFIG_SUNRPC_DEBUG
> #define RPC_DEBUG
> #endif
> #ifdef CONFIG_TRACEPOINTS
> diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
> index ffd243d..9fe8857 100644
> --- a/net/sunrpc/Kconfig
> +++ b/net/sunrpc/Kconfig
> @@ -39,3 +39,16 @@ config RPCSEC_GSS_KRB5
> Kerberos support should be installed.
>
> If unsure, say Y.
> +
> +config SUNRPC_DEBUG
> + bool "RPC: Enable dprintk debugging"
> + depends on SUNRPC && SYSCTL
> + help
> + This option enables a sysctl-based debugging interface
> + that is be used by the 'rpcdebug' utility to turn on or off
> + logging of different aspects of the kernel RPC activity.
> +
> + Disabling this option will make your kernel slightly smaller,
> + but makes troubleshooting NFS issues significantly harder.
> +
> + If unsure, say Y.
> --
> 1.7.7.6
>
>
> --
> Trond Myklebust
> Linux NFS client maintainer
>
> NetApp
> [email protected]
> http://www.netapp.com
>


Attachments:
smime.p7s (1.34 kB)

2012-03-19 15:36:03

by Adamson, Dros

[permalink] [raw]
Subject: Re: _nfs_display_fhandle_hash: undefined reference to `crc32_le'

Oops! The fix is ok, in that it will work, but I'm not sure we want to pull in that type of dependency for a debug message.

Maybe it'd be more appropriate to do something like this:

From 371ebd38717cd34a58d167909b56a216db288f83 Mon Sep 17 00:00:00 2001
From: Weston Andros Adamson <[email protected]>
Date: Mon, 19 Mar 2012 11:31:12 -0400
Subject: [PATCH] if CRC32 isn't defined just return 0 for fh hash


Signed-off-by: Weston Andros Adamson <[email protected]>
---
fs/nfs/inode.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 1a19f8d..0c1ca6a 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1060,7 +1060,11 @@ u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh)
{
/* wireshark uses 32-bit AUTODIN crc and does a bitwise
* not on the result */
+#ifdef CONFIG_CRC32
return ~crc32(0xFFFFFFFF, &fh->data[0], fh->size);
+#else
+ return 0;
+#endif
}

/*
--
1.7.4.4

Or (if possible) define the dependency iff NFS_FS and RPC_DEBUG are defined.

I'm sure Trond has an opinion on this.

-dros

On Mar 18, 2012, at 2:13 PM, Paul Gortmaker wrote:

> This started showing up in linux-next last week:
>
> LD .tmp_vmlinux1
> fs/built-in.o: In function `_nfs_display_fhandle_hash':
> /scratch/kisskb/src/fs/nfs/inode.c:1063: undefined reference to `crc32_le'
> make[1]: *** [.tmp_vmlinux1] Error 1
>
> Target is an mpc8xx board:
>
> http://kisskb.ellerman.id.au/kisskb/target/2679/
>
> I tried to run an automated bisect on it, but there appears to
> be build failures in the bisection range, in addition to the
> above link error (i.e. points I'd use "skip" on if I wasn't
> using "git bisect run ...")
>
> # good: [b030fb0bb113316cc6f56779388b8572ab0699da] SUNRPC: use proper network namespace in rpcbind RPCBPROC_GETADDR procedure
> git bisect good b030fb0bb113316cc6f56779388b8572ab0699da
> # bad: [5247fab5c82779174d50590e0200bf532248a8a1] SUNRPC: pass network namespace to service registering routines
> git bisect bad 5247fab5c82779174d50590e0200bf532248a8a1
>
> Even without the concrete trigger commit, a suggested possible
> fix (tested locally) is below.
>
> Paul.
> ---
>
> From 21b77ae0373725bd2c60eca065e77c4d2f0fdbfa Mon Sep 17 00:00:00 2001
> From: Paul Gortmaker <[email protected]>
> Date: Sun, 18 Mar 2012 14:07:42 -0400
> Subject: [PATCH] nfs: select CRC32 for when NFS is enabled for crc32_le
>
> To avoid the following link errors:
>
> LD .tmp_vmlinux1
> fs/built-in.o: In function `_nfs_display_fhandle_hash':
> fs/nfs/inode.c:1063: undefined reference to `crc32_le'
> make[1]: *** [.tmp_vmlinux1] Error 1
>
> Signed-off-by: Paul Gortmaker <[email protected]>
>
> diff --git a/fs/nfs/Kconfig b/fs/nfs/Kconfig
> index 7bce64c..9acdfb0 100644
> --- a/fs/nfs/Kconfig
> +++ b/fs/nfs/Kconfig
> @@ -3,6 +3,7 @@ config NFS_FS
> depends on INET && FILE_LOCKING
> select LOCKD
> select SUNRPC
> + select CRC32
> select NFS_ACL_SUPPORT if NFS_V3_ACL
> help
> Choose Y here if you want to access files residing on other
> --
> 1.7.9.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


Attachments:
smime.p7s (1.34 kB)

2012-03-19 18:20:24

by Myklebust, Trond

[permalink] [raw]
Subject: Re: _nfs_display_fhandle_hash: undefined reference to `crc32_le'

T24gTW9uLCAyMDEyLTAzLTE5IGF0IDE1OjM1ICswMDAwLCBBZGFtc29uLCBEcm9zIHdyb3RlOg0K
PiBPb3BzISAgVGhlIGZpeCBpcyBvaywgaW4gdGhhdCBpdCB3aWxsIHdvcmssIGJ1dCBJJ20gbm90
IHN1cmUgd2Ugd2FudCB0byBwdWxsIGluIHRoYXQgdHlwZSBvZiBkZXBlbmRlbmN5IGZvciBhIGRl
YnVnIG1lc3NhZ2UuDQo+IA0KPiBNYXliZSBpdCdkIGJlIG1vcmUgYXBwcm9wcmlhdGUgdG8gZG8g
c29tZXRoaW5nIGxpa2UgdGhpczoNCj4gDQo+IEZyb20gMzcxZWJkMzg3MTdjZDM0YTU4ZDE2Nzkw
OWI1NmEyMTZkYjI4OGY4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gRnJvbTogV2VzdG9u
IEFuZHJvcyBBZGFtc29uIDxkcm9zQG5ldGFwcC5jb20+DQo+IERhdGU6IE1vbiwgMTkgTWFyIDIw
MTIgMTE6MzE6MTIgLTA0MDANCj4gU3ViamVjdDogW1BBVENIXSBpZiBDUkMzMiBpc24ndCBkZWZp
bmVkIGp1c3QgcmV0dXJuIDAgZm9yIGZoIGhhc2gNCj4gDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBX
ZXN0b24gQW5kcm9zIEFkYW1zb24gPGRyb3NAbmV0YXBwLmNvbT4NCj4gLS0tDQo+ICBmcy9uZnMv
aW5vZGUuYyB8ICAgIDQgKysrKw0KPiAgMSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks
IDAgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2lub2RlLmMgYi9mcy9u
ZnMvaW5vZGUuYw0KPiBpbmRleCAxYTE5ZjhkLi4wYzFjYTZhIDEwMDY0NA0KPiAtLS0gYS9mcy9u
ZnMvaW5vZGUuYw0KPiArKysgYi9mcy9uZnMvaW5vZGUuYw0KPiBAQCAtMTA2MCw3ICsxMDYwLDEx
IEBAIHUzMiBfbmZzX2Rpc3BsYXlfZmhhbmRsZV9oYXNoKGNvbnN0IHN0cnVjdCBuZnNfZmggKmZo
KQ0KPiAgew0KPiAgICAgICAgIC8qIHdpcmVzaGFyayB1c2VzIDMyLWJpdCBBVVRPRElOIGNyYyBh
bmQgZG9lcyBhIGJpdHdpc2UNCj4gICAgICAgICAgKiBub3Qgb24gdGhlIHJlc3VsdCAqLw0KPiAr
I2lmZGVmIENPTkZJR19DUkMzMg0KPiAgICAgICAgIHJldHVybiB+Y3JjMzIoMHhGRkZGRkZGRiwg
JmZoLT5kYXRhWzBdLCBmaC0+c2l6ZSk7DQo+ICsjZWxzZQ0KPiArICAgICAgIHJldHVybiAwOw0K
PiArI2VuZGlmDQo+ICB9DQo+IA0KPiAgLyoNCg0KVGhhdCB3YXMgbXkgZmlyc3QgdGhvdWdodCwg
YnV0IHRoZSBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIGlzIHRoYXQgaXQNCmhpZGVzIHRoZSBDUkMz
MiBkZXBlbmRlbmN5IGRlZXAgZG93biBpbiB0aGUgYm93ZWxzIG9mIHRoZSBORlMgY29kZS4NCg0K
T0suIFdoYXQgc2F5IHdlIGp1c3QgYml0ZSB0aGUgYnVsbGV0LCBhbmQgYWRkIHRoZSBkcHJpbnRr
KCkgaW50ZXJmYWNlIHRvDQpLYnVpbGQuIFRoYXQgd2lsbCBhbGxvdyBkaXN0cm9zIHRoYXQgZG9u
J3Qgc2hpcCB0aGUgJ3JwY2RlYnVnJyB1dGlsaXR5DQp0byB0dXJuIG9mZiBkcHJpbnRrKCkgYW5k
IHdpbGwgYWxsb3cgdXMgdG8gc2VsZWN0IENSQzMyIGlmIGFuZCBvbmx5IGlmDQp3ZSByZWFsbHkg
bmVlZCBpdC4NCklPVzogU29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZzoNCg0KDQo4PC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQpGcm9tIDg1NWZhODk0YTJiMjRiOTg3MmI1MzViNzViMDRiODIxMjFmOTNiNzMgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxDQpGcm9tOiBUcm9uZCBNeWtsZWJ1c3QgPFRyb25kLk15a2xl
YnVzdEBuZXRhcHAuY29tPg0KRGF0ZTogU3VuLCAxOCBNYXIgMjAxMiAxNDowNzo0MiAtMDQwMA0K
U3ViamVjdDogW1BBVENIXSBTVU5SUEMvTkZTOiBBZGQgS2J1aWxkIGRlcGVuZGVuY2llcyBmb3Ig
TkZTX0RFQlVHL1JQQ19ERUJVRw0KDQpUaGlzIGFsbG93cyB1cyB0byB0dXJuIG9uL29mZiB0aGUg
ZHByaW50aygpIGRlYnVnZ2luZyBpbnRlcmZhY2VzIGZvcg0KdGhvc2UgZGlzdHJpYnV0aW9ucyB0
aGF0IGRvbid0IHNoaXAgdGhlICdycGNkZWJ1ZycgdXRpbGl0eS4NCkl0IGFsc28gYWxsb3dzIHVz
IHRvIGFkZCBLYnVpbGQgZGVwZW5kZW5jaWVzLiBTcGVjaWZpY2FsbHksIHdlIGFscmVhZHkNCmtu
b3cgdGhhdCBkcHJpbnRrKCkgaW4gZ2VuZXJhbCByZWxpZXMgb24gQ09ORklHX1NZU0NUTC4gTm93
IGl0IHR1cm5zIG91dA0KdGhhdCB0aGUgTkZTIGRwcmludGtzIGRlcGVuZCBvbiBDT05GSUdfQ1JD
MzIgYWZ0ZXIgd2UgYWRkZWQgc3VwcG9ydA0KZm9yIHRoZSBmaWxlaGFuZGxlIGhhc2guDQoNClJl
cG9ydGVkLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4N
ClNpZ25lZC1vZmYtYnk6IFRyb25kIE15a2xlYnVzdCA8VHJvbmQuTXlrbGVidXN0QG5ldGFwcC5j
b20+DQotLS0NCiBmcy9uZnMvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAgNiArKysrKysNCiBm
cy9uZnMvaW5vZGUuYyAgICAgICAgICAgICAgIHwgICAgMiArLQ0KIGZzL25mcy9tb3VudF9jbG50
LmMgICAgICAgICAgfCAgICAyICstDQogZnMvbmZzL25mc3Jvb3QuYyAgICAgICAgICAgICB8ICAg
IDIgKy0NCiBpbmNsdWRlL2xpbnV4L25mc19mcy5oICAgICAgIHwgICAxNyArKysrKysrKy0tLS0t
LS0tLQ0KIGluY2x1ZGUvbGludXgvc3VucnBjL2RlYnVnLmggfCAgICAyICstDQogbmV0L3N1bnJw
Yy9LY29uZmlnICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKw0KIDcgZmlsZXMgY2hhbmdl
ZCwgMzEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9mcy9u
ZnMvS2NvbmZpZyBiL2ZzL25mcy9LY29uZmlnDQppbmRleCA3YmNlNjRjLi4yYTBlNmM1IDEwMDY0
NA0KLS0tIGEvZnMvbmZzL0tjb25maWcNCisrKyBiL2ZzL25mcy9LY29uZmlnDQpAQCAtMTQ0LDMg
KzE0NCw5IEBAIGNvbmZpZyBORlNfVVNFX0tFUk5FTF9ETlMNCiAJZGVwZW5kcyBvbiBORlNfVjQg
JiYgIU5GU19VU0VfTEVHQUNZX0ROUw0KIAlzZWxlY3QgRE5TX1JFU09MVkVSDQogCWRlZmF1bHQg
eQ0KKw0KK2NvbmZpZyBORlNfREVCVUcNCisJYm9vbA0KKwlkZXBlbmRzIG9uIE5GU19GUyAmJiBT
VU5SUENfREVCVUcNCisJc2VsZWN0IENSQzMyDQorCWRlZmF1bHQgeQ0KZGlmZiAtLWdpdCBhL2Zz
L25mcy9pbm9kZS5jIGIvZnMvbmZzL2lub2RlLmMNCmluZGV4IDFhMTlmOGQuLjdiYjRkMTMgMTAw
NjQ0DQotLS0gYS9mcy9uZnMvaW5vZGUuYw0KKysrIGIvZnMvbmZzL2lub2RlLmMNCkBAIC0xMDQ3
LDcgKzEwNDcsNyBAQCBzdHJ1Y3QgbmZzX2ZoICpuZnNfYWxsb2NfZmhhbmRsZSh2b2lkKQ0KIAly
ZXR1cm4gZmg7DQogfQ0KIA0KLSNpZmRlZiBSUENfREVCVUcNCisjaWZkZWYgTkZTX0RFQlVHDQog
LyoNCiAgKiBfbmZzX2Rpc3BsYXlfZmhhbmRsZV9oYXNoIC0gY2FsY3VsYXRlIHRoZSBjcmMzMiBo
YXNoIGZvciB0aGUgZmlsZWhhbmRsZQ0KICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biB0aGUgc2FtZSB3YXkgdGhhdCB3aXJlc2hhcmsgZG9lcw0KZGlmZiAtLWdpdCBhL2ZzL25mcy9t
b3VudF9jbG50LmMgYi9mcy9uZnMvbW91bnRfY2xudC5jDQppbmRleCBiMzdjYTM0Li44ZTY1Yzdm
IDEwMDY0NA0KLS0tIGEvZnMvbmZzL21vdW50X2NsbnQuYw0KKysrIGIvZnMvbmZzL21vdW50X2Ns
bnQuYw0KQEAgLTE2LDcgKzE2LDcgQEANCiAjaW5jbHVkZSA8bGludXgvbmZzX2ZzLmg+DQogI2lu
Y2x1ZGUgImludGVybmFsLmgiDQogDQotI2lmZGVmIFJQQ19ERUJVRw0KKyNpZmRlZiBORlNfREVC
VUcNCiAjIGRlZmluZSBORlNEQkdfRkFDSUxJVFkJTkZTREJHX01PVU5UDQogI2VuZGlmDQogDQpk
aWZmIC0tZ2l0IGEvZnMvbmZzL25mc3Jvb3QuYyBiL2ZzL25mcy9uZnNyb290LmMNCmluZGV4IGM0
NzQ0ZTEuLmNkM2M5MTAgMTAwNjQ0DQotLS0gYS9mcy9uZnMvbmZzcm9vdC5jDQorKysgYi9mcy9u
ZnMvbmZzcm9vdC5jDQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBjaGFyIG5mc19leHBvcnRf
cGF0aFtORlNfTUFYUEFUSExFTiArIDFdIF9faW5pdGRhdGEgPSAiIjsNCiAvKiBzZXJ2ZXI6ZXhw
b3J0IHBhdGggc3RyaW5nIHBhc3NlZCB0byBzdXBlci5jICovDQogc3RhdGljIGNoYXIgbmZzX3Jv
b3RfZGV2aWNlW05GU19NQVhQQVRITEVOICsgMV0gX19pbml0ZGF0YSA9ICIiOw0KIA0KLSNpZmRl
ZiBSUENfREVCVUcNCisjaWZkZWYgTkZTX0RFQlVHDQogLyoNCiAgKiBXaGVuIHRoZSAibmZzcm9v
dGRlYnVnIiBrZXJuZWwgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBzcGVjaWZpZWQsDQogICogZW5h
YmxlIGRlYnVnZ2luZyBtZXNzYWdlcyBmb3IgTkZTUk9PVC4NCmRpZmYgLS1naXQgYS9pbmNsdWRl
L2xpbnV4L25mc19mcy5oIGIvaW5jbHVkZS9saW51eC9uZnNfZnMuaA0KaW5kZXggMGE2M2FiMi4u
OGYyN2MyZSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbmZzX2ZzLmgNCisrKyBiL2luY2x1
ZGUvbGludXgvbmZzX2ZzLmgNCkBAIC0zOCw2ICszOCwxMyBAQA0KIA0KICNpZmRlZiBfX0tFUk5F
TF9fDQogDQorLyoNCisgKiBFbmFibGUgZHByaW50aygpIGRlYnVnZ2luZyBzdXBwb3J0IGZvciBu
ZnMgY2xpZW50Lg0KKyAqLw0KKyNpZmRlZiBDT05GSUdfTkZTX0RFQlVHDQorIyBkZWZpbmUgTkZT
X0RFQlVHDQorI2VuZGlmDQorDQogI2luY2x1ZGUgPGxpbnV4L2luLmg+DQogI2luY2x1ZGUgPGxp
bnV4L21tLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4NCkBAIC0zOTEsNyArMzk4LDcg
QEAgc3RhdGljIGlubGluZSB2b2lkIG5mc19mcmVlX2ZoYW5kbGUoY29uc3Qgc3RydWN0IG5mc19m
aCAqZmgpDQogCWtmcmVlKGZoKTsNCiB9DQogDQotI2lmZGVmIFJQQ19ERUJVRw0KKyNpZmRlZiBO
RlNfREVCVUcNCiBleHRlcm4gdTMyIF9uZnNfZGlzcGxheV9maGFuZGxlX2hhc2goY29uc3Qgc3Ry
dWN0IG5mc19maCAqZmgpOw0KIHN0YXRpYyBpbmxpbmUgdTMyIG5mc19kaXNwbGF5X2ZoYW5kbGVf
aGFzaChjb25zdCBzdHJ1Y3QgbmZzX2ZoICpmaCkNCiB7DQpAQCAtNjUwLDE0ICs2NTcsNiBAQCBu
ZnNfZmlsZWlkX3RvX2lub190KHU2NCBmaWxlaWQpDQogDQogI2lmZGVmIF9fS0VSTkVMX18NCiAN
Ci0vKg0KLSAqIEVuYWJsZSBkZWJ1Z2dpbmcgc3VwcG9ydCBmb3IgbmZzIGNsaWVudC4NCi0gKiBS
ZXF1aXJlcyBSUENfREVCVUcuDQotICovDQotI2lmZGVmIFJQQ19ERUJVRw0KLSMgZGVmaW5lIE5G
U19ERUJVRw0KLSNlbmRpZg0KLQ0KICMgdW5kZWYgaWZkZWJ1Zw0KICMgaWZkZWYgTkZTX0RFQlVH
DQogIyAgZGVmaW5lIGlmZGVidWcoZmFjKQkJaWYgKHVubGlrZWx5KG5mc19kZWJ1ZyAmIE5GU0RC
R18jI2ZhYykpDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zdW5ycGMvZGVidWcuaCBiL2lu
Y2x1ZGUvbGludXgvc3VucnBjL2RlYnVnLmgNCmluZGV4IDZjYjI1MTcuLjk0NDhlYjUgMTAwNjQ0
DQotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9kZWJ1Zy5oDQorKysgYi9pbmNsdWRlL2xpbnV4
L3N1bnJwYy9kZWJ1Zy5oDQpAQCAtMzEsNyArMzEsNyBAQA0KIC8qDQogICogRW5hYmxlIFJQQyBk
ZWJ1Z2dpbmcvcHJvZmlsaW5nLg0KICAqLw0KLSNpZmRlZiBDT05GSUdfU1lTQ1RMDQorI2lmZGVm
IENPTkZJR19TVU5SUENfREVCVUcNCiAjZGVmaW5lICBSUENfREVCVUcNCiAjZW5kaWYNCiAjaWZk
ZWYgQ09ORklHX1RSQUNFUE9JTlRTDQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9LY29uZmlnIGIv
bmV0L3N1bnJwYy9LY29uZmlnDQppbmRleCBmZmQyNDNkLi45ZmU4ODU3IDEwMDY0NA0KLS0tIGEv
bmV0L3N1bnJwYy9LY29uZmlnDQorKysgYi9uZXQvc3VucnBjL0tjb25maWcNCkBAIC0zOSwzICsz
OSwxNiBAQCBjb25maWcgUlBDU0VDX0dTU19LUkI1DQogCSAgS2VyYmVyb3Mgc3VwcG9ydCBzaG91
bGQgYmUgaW5zdGFsbGVkLg0KIA0KIAkgIElmIHVuc3VyZSwgc2F5IFkuDQorDQorY29uZmlnIFNV
TlJQQ19ERUJVRw0KKwlib29sICJSUEM6IEVuYWJsZSBkcHJpbnRrIGRlYnVnZ2luZyINCisJZGVw
ZW5kcyBvbiBTVU5SUEMgJiYgU1lTQ1RMDQorCWhlbHANCisJICBUaGlzIG9wdGlvbiBlbmFibGVz
IGEgc3lzY3RsLWJhc2VkIGRlYnVnZ2luZyBpbnRlcmZhY2UNCisJICB0aGF0IGlzIGJlIHVzZWQg
YnkgdGhlICdycGNkZWJ1ZycgdXRpbGl0eSB0byB0dXJuIG9uIG9yIG9mZg0KKwkgIGxvZ2dpbmcg
b2YgZGlmZmVyZW50IGFzcGVjdHMgb2YgdGhlIGtlcm5lbCBSUEMgYWN0aXZpdHkuDQorDQorCSAg
RGlzYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgbWFrZSB5b3VyIGtlcm5lbCBzbGlnaHRseSBzbWFs
bGVyLA0KKwkgIGJ1dCBtYWtlcyB0cm91Ymxlc2hvb3RpbmcgTkZTIGlzc3VlcyBzaWduaWZpY2Fu
dGx5IGhhcmRlci4NCisNCisJICBJZiB1bnN1cmUsIHNheSBZLg0KLS0gDQoxLjcuNy42DQoNCg0K
LS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRB
cHANClRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0KDQo=

2012-03-19 16:29:42

by Jim Rees

[permalink] [raw]
Subject: Re: _nfs_display_fhandle_hash: undefined reference to `crc32_le'

Adamson, Dros wrote:

Oops! The fix is ok, in that it will work, but I'm not sure we want to
pull in that type of dependency for a debug message.

crc32 isn't that much of a burden. I'm surprised it's even optional. Your
proposed fix gives a useless hash and will result in confusion. I say pull
in crc32.