mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Allocate the skb for llc responses with the received packet size by using the size adjustable llc_frame_alloc. Don't allocate useless extra payload. Cleanup magic numbers. So, this fixes oops. Reported by Jim Westfall: kernel: skb_over_panic: text:c0541fc7 len:1000 put:997 head:c166ac00 data:c166ac2f tail:0xc166b017 end:0xc166ac80 dev:eth0 kernel: ------------[ cut here ]------------ kernel: kernel BUG at net/core/skbuff.c:95! Signed-off-by: Joonwoo Park <joonwpark81@gmail.com> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef LLC_SAP_H
 | 
						|
#define LLC_SAP_H
 | 
						|
 | 
						|
#include <asm/types.h>
 | 
						|
 | 
						|
/*
 | 
						|
 * Copyright (c) 1997 by Procom Technology,Inc.
 | 
						|
 * 		 2001-2003 by Arnaldo Carvalho de Melo <acme@conectiva.com.br>
 | 
						|
 *
 | 
						|
 * This program can be redistributed or modified under the terms of the
 | 
						|
 * GNU General Public License as published by the Free Software Foundation.
 | 
						|
 * This program is distributed without any warranty or implied warranty
 | 
						|
 * of merchantability or fitness for a particular purpose.
 | 
						|
 *
 | 
						|
 * See the GNU General Public License for more details.
 | 
						|
 */
 | 
						|
struct llc_sap;
 | 
						|
struct net_device;
 | 
						|
struct sk_buff;
 | 
						|
struct sock;
 | 
						|
 | 
						|
extern void llc_sap_rtn_pdu(struct llc_sap *sap, struct sk_buff *skb);
 | 
						|
extern void llc_save_primitive(struct sock *sk, struct sk_buff* skb,
 | 
						|
			       unsigned char prim);
 | 
						|
extern struct sk_buff *llc_alloc_frame(struct sock *sk, struct net_device *dev,
 | 
						|
				       u8 type, u32 data_size);
 | 
						|
 | 
						|
extern void llc_build_and_send_test_pkt(struct llc_sap *sap,
 | 
						|
				        struct sk_buff *skb,
 | 
						|
					unsigned char *dmac,
 | 
						|
					unsigned char dsap);
 | 
						|
extern void llc_build_and_send_xid_pkt(struct llc_sap *sap,
 | 
						|
				       struct sk_buff *skb,
 | 
						|
				       unsigned char *dmac,
 | 
						|
				       unsigned char dsap);
 | 
						|
#endif /* LLC_SAP_H */
 |