|
@@ -41,6 +41,7 @@
|
|
|
#include <linux/ppp-comp.h>
|
|
|
|
|
|
#include <linux/zlib.h>
|
|
|
+#include <asm/unaligned.h>
|
|
|
|
|
|
/*
|
|
|
* State for a Deflate (de)compressor.
|
|
@@ -232,11 +233,9 @@ static int z_compress(void *arg, unsigned char *rptr, unsigned char *obuf,
|
|
|
*/
|
|
|
wptr[0] = PPP_ADDRESS(rptr);
|
|
|
wptr[1] = PPP_CONTROL(rptr);
|
|
|
- wptr[2] = PPP_COMP >> 8;
|
|
|
- wptr[3] = PPP_COMP;
|
|
|
+ put_unaligned_be16(PPP_COMP, wptr + 2);
|
|
|
wptr += PPP_HDRLEN;
|
|
|
- wptr[0] = state->seqno >> 8;
|
|
|
- wptr[1] = state->seqno;
|
|
|
+ put_unaligned_be16(state->seqno, wptr);
|
|
|
wptr += DEFLATE_OVHD;
|
|
|
olen = PPP_HDRLEN + DEFLATE_OVHD;
|
|
|
state->strm.next_out = wptr;
|
|
@@ -451,7 +450,7 @@ static int z_decompress(void *arg, unsigned char *ibuf, int isize,
|
|
|
}
|
|
|
|
|
|
/* Check the sequence number. */
|
|
|
- seq = (ibuf[PPP_HDRLEN] << 8) + ibuf[PPP_HDRLEN+1];
|
|
|
+ seq = get_unaligned_be16(ibuf + PPP_HDRLEN);
|
|
|
if (seq != (state->seqno & 0xffff)) {
|
|
|
if (state->debug)
|
|
|
printk(KERN_DEBUG "z_decompress%d: bad seq # %d, expected %d\n",
|