diff options
Diffstat (limited to 'net/sunrpc/auth_gss/gss_krb5_keys.c')
| -rw-r--r-- | net/sunrpc/auth_gss/gss_krb5_keys.c | 17 | 
1 files changed, 4 insertions, 13 deletions
diff --git a/net/sunrpc/auth_gss/gss_krb5_keys.c b/net/sunrpc/auth_gss/gss_krb5_keys.c index 76e42e6be75..24589bd2a4b 100644 --- a/net/sunrpc/auth_gss/gss_krb5_keys.c +++ b/net/sunrpc/auth_gss/gss_krb5_keys.c @@ -59,6 +59,7 @@  #include <linux/crypto.h>  #include <linux/sunrpc/gss_krb5.h>  #include <linux/sunrpc/xdr.h> +#include <linux/lcm.h>  #ifdef RPC_DEBUG  # define RPCDBG_FACILITY        RPCDBG_AUTH @@ -72,7 +73,7 @@  static void krb5_nfold(u32 inbits, const u8 *in,  		       u32 outbits, u8 *out)  { -	int a, b, c, lcm; +	unsigned long ulcm;  	int byte, i, msbit;  	/* the code below is more readable if I make these bytes @@ -82,17 +83,7 @@ static void krb5_nfold(u32 inbits, const u8 *in,  	outbits >>= 3;  	/* first compute lcm(n,k) */ - -	a = outbits; -	b = inbits; - -	while (b != 0) { -		c = b; -		b = a%b; -		a = c; -	} - -	lcm = outbits*inbits/a; +	ulcm = lcm(inbits, outbits);  	/* now do the real work */ @@ -101,7 +92,7 @@ static void krb5_nfold(u32 inbits, const u8 *in,  	/* this will end up cycling through k lcm(k,n)/k times, which  	   is correct */ -	for (i = lcm-1; i >= 0; i--) { +	for (i = ulcm-1; i >= 0; i--) {  		/* compute the msbit in k which gets added into this byte */  		msbit = (  			/* first, start with the msbit in the first,  | 
