diff options
| author | David S. Miller <davem@davemloft.net> | 2006-06-17 22:16:13 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2006-06-17 22:16:13 -0700 | 
| commit | b293acfd3133393a81bcd382eb71a210c9cf9526 (patch) | |
| tree | 0b940bd69064a6fafa725d442ce6d93ebbe5254c /net | |
| parent | 2c6cc0d8539f121c3c75aa3641c19b67e8723379 (diff) | |
| download | kernel_samsung_tuna-b293acfd3133393a81bcd382eb71a210c9cf9526.zip kernel_samsung_tuna-b293acfd3133393a81bcd382eb71a210c9cf9526.tar.gz kernel_samsung_tuna-b293acfd3133393a81bcd382eb71a210c9cf9526.tar.bz2  | |
[IRDA]: Use put_unaligned() in irlmp_do_discovery().
irda_device_info->hints[] is byte aligned but is being
accessed as a u16
Based upon a patch by Luke Yang <luke.adi@gmail.com>.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
| -rw-r--r-- | net/irda/irlmp.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c index c19e9ce..57ea160 100644 --- a/net/irda/irlmp.c +++ b/net/irda/irlmp.c @@ -44,6 +44,8 @@  #include <net/irda/irlmp.h>  #include <net/irda/irlmp_frame.h> +#include <asm/unaligned.h> +  static __u8 irlmp_find_free_slsap(void);  static int irlmp_slsap_inuse(__u8 slsap_sel); @@ -840,6 +842,7 @@ void irlmp_do_expiry(void)  void irlmp_do_discovery(int nslots)  {  	struct lap_cb *lap; +	__u16 *data_hintsp;  	/* Make sure the value is sane */  	if ((nslots != 1) && (nslots != 6) && (nslots != 8) && (nslots != 16)){ @@ -849,7 +852,8 @@ void irlmp_do_discovery(int nslots)  	}  	/* Construct new discovery info to be used by IrLAP, */ -	u16ho(irlmp->discovery_cmd.data.hints) = irlmp->hints.word; +	data_hintsp = (__u16 *) irlmp->discovery_cmd.data.hints; +	put_unaligned(irlmp->hints.word, data_hintsp);  	/*  	 *  Set character set for device name (we use ASCII), and  | 
