1 diff -urN linux.old/include/asm-mips/cpu-info.h linux.dev/include/asm-mips/cpu-info.h
2 --- linux.old/include/asm-mips/cpu-info.h 2006-06-18 03:49:35.000000000 +0200
3 +++ linux.dev/include/asm-mips/cpu-info.h 2006-08-27 21:02:04.000000000 +0200
5 * Capability and feature descriptor structure for MIPS CPU
9 unsigned int processor_id;
13 int tc_id; /* Thread Context number */
14 #endif /* CONFIG_MIPS_MT */
15 void *data; /* Additional data */
17 } __attribute__((aligned(SMP_CACHE_BYTES)));
19 extern struct cpuinfo_mips cpu_data[];
21 diff -urN linux.old/include/linux/netdevice.h linux.dev/include/linux/netdevice.h
22 --- linux.old/include/linux/netdevice.h 2006-06-18 03:49:35.000000000 +0200
23 +++ linux.dev/include/linux/netdevice.h 2006-08-27 21:02:04.000000000 +0200
28 - /* device name hash chain */
29 - struct hlist_node name_hlist;
35 /* ------- Fields preinitialized in Space.c finish here ------- */
37 - /* Net device features */
38 - unsigned long features;
39 -#define NETIF_F_SG 1 /* Scatter/gather IO. */
40 -#define NETIF_F_IP_CSUM 2 /* Can checksum only TCP/UDP over IPv4. */
41 -#define NETIF_F_NO_CSUM 4 /* Does not require checksum. F.e. loopack. */
42 -#define NETIF_F_HW_CSUM 8 /* Can checksum all the packets. */
43 -#define NETIF_F_HIGHDMA 32 /* Can DMA to high memory. */
44 -#define NETIF_F_FRAGLIST 64 /* Scatter/gather IO. */
45 -#define NETIF_F_HW_VLAN_TX 128 /* Transmit VLAN hw acceleration */
46 -#define NETIF_F_HW_VLAN_RX 256 /* Receive VLAN hw acceleration */
47 -#define NETIF_F_HW_VLAN_FILTER 512 /* Receive filtering on VLAN */
48 -#define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */
49 -#define NETIF_F_TSO 2048 /* Can offload TCP/IP segmentation */
50 -#define NETIF_F_LLTX 4096 /* LockLess TX */
51 -#define NETIF_F_UFO 8192 /* Can offload UDP Large Send*/
53 struct net_device *next_sched;
55 /* Interface index. Unique device identifier */
57 /* List of functions to handle Wireless Extensions (instead of ioctl).
58 * See <net/iw_handler.h> for details. Jean II */
59 const struct iw_handler_def * wireless_handlers;
60 - /* Instance data managed by the core of Wireless Extensions. */
61 - struct iw_public_data * wireless_data;
63 struct ethtool_ops *ethtool_ops;
66 * will (read: may be cleaned up at will).
69 + /* These may be needed for future network-power-down code. */
70 + unsigned long trans_start; /* Time (in jiffies) of last Tx */
71 + unsigned long last_rx; /* Time of last Rx */
73 - unsigned int flags; /* interface flags (a la BSD) */
74 + unsigned short flags; /* interface flags (a la BSD) */
75 unsigned short gflags;
76 unsigned short priv_flags; /* Like 'flags' but invisible to userspace. */
77 - unsigned short padded; /* How much padding added by alloc_netdev() */
79 - unsigned char operstate; /* RFC2863 operstate */
80 - unsigned char link_mode; /* mapping policy to operstate */
81 + unsigned short __useless_padding;
83 unsigned mtu; /* interface MTU value */
84 unsigned short type; /* interface hardware type */
85 unsigned short hard_header_len; /* hardware hdr length */
86 + void *priv; /* pointer to private data */
88 struct net_device *master; /* Pointer to master device of a group,
89 * which this device is member of.
92 /* Interface address info. */
93 - unsigned char perm_addr[MAX_ADDR_LEN]; /* permanent hw address */
94 + unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */
95 + unsigned char dev_addr[MAX_ADDR_LEN]; /* hw address, (before bcast
96 + because most packets are unicast) */
97 unsigned char addr_len; /* hardware address length */
98 - unsigned short dev_id; /* for shared network cards */
100 struct dev_mc_list *mc_list; /* Multicast mac addresses */
101 int mc_count; /* Number of installed mcasts */
105 + int watchdog_timeo; /* used by dev_watchdog() */
106 + struct timer_list watchdog_timer;
108 /* Protocol specific pointers */
110 @@ -378,29 +362,17 @@
111 struct list_head poll_list ____cacheline_aligned_in_smp;
112 /* Link to poll list */
114 - int (*poll) (struct net_device *dev, int *quota);
117 - unsigned long last_rx; /* Time of last Rx */
118 /* Interface address info used in eth_type_trans() */
119 - unsigned char dev_addr[MAX_ADDR_LEN]; /* hw address, (before bcast
120 - because most packets are unicast) */
122 - unsigned char broadcast[MAX_ADDR_LEN]; /* hw bcast add */
125 - * Cache line mostly used on queue transmit path (qdisc)
127 - /* device queue lock */
128 - spinlock_t queue_lock ____cacheline_aligned_in_smp;
130 struct Qdisc *qdisc_sleeping;
131 + struct Qdisc *qdisc_ingress;
132 struct list_head qdisc_list;
133 unsigned long tx_queue_len; /* Max frames per queue allowed */
135 /* ingress path synchronizer */
136 spinlock_t ingress_lock;
137 - struct Qdisc *qdisc_ingress;
140 * One part is mostly used on xmit path (device)
141 @@ -411,16 +383,13 @@
142 if nobody entered there.
145 - void *priv; /* pointer to private data */
146 - int (*hard_start_xmit) (struct sk_buff *skb,
147 - struct net_device *dev);
148 - /* These may be needed for future network-power-down code. */
149 - unsigned long trans_start; /* Time (in jiffies) of last Tx */
151 - int watchdog_timeo; /* used by dev_watchdog() */
152 - struct timer_list watchdog_timer;
155 + * Cache line mostly used on queue transmit path (qdisc)
157 + /* device queue lock */
158 + spinlock_t queue_lock ____cacheline_aligned_in_smp;
160 * refcnt is a very hot point, so align it on SMP
162 /* Number of references to this device */
165 /* delayed register/unregister */
166 struct list_head todo_list;
167 + /* device name hash chain */
168 + struct hlist_node name_hlist;
169 /* device index hash chain */
170 struct hlist_node index_hlist;
173 NETREG_RELEASED, /* called free_netdev */
176 + /* Net device features */
177 + unsigned int features;
178 +#define NETIF_F_SG 1 /* Scatter/gather IO. */
179 +#define NETIF_F_IP_CSUM 2 /* Can checksum only TCP/UDP over IPv4. */
180 +#define NETIF_F_NO_CSUM 4 /* Does not require checksum. F.e. loopack. */
181 +#define NETIF_F_HW_CSUM 8 /* Can checksum all the packets. */
182 +#define NETIF_F_HIGHDMA 32 /* Can DMA to high memory. */
183 +#define NETIF_F_FRAGLIST 64 /* Scatter/gather IO. */
184 +#define NETIF_F_HW_VLAN_TX 128 /* Transmit VLAN hw acceleration */
185 +#define NETIF_F_HW_VLAN_RX 256 /* Receive VLAN hw acceleration */
186 +#define NETIF_F_HW_VLAN_FILTER 512 /* Receive filtering on VLAN */
187 +#define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */
188 +#define NETIF_F_TSO 2048 /* Can offload TCP/IP segmentation */
189 +#define NETIF_F_LLTX 4096 /* LockLess TX */
190 +#define NETIF_F_UFO 8192 /* Can offload UDP Large Send*/
192 /* Called after device is detached from network. */
193 void (*uninit)(struct net_device *dev);
194 /* Called after last user reference disappears. */
196 /* Pointers to interface service routines. */
197 int (*open)(struct net_device *dev);
198 int (*stop)(struct net_device *dev);
199 + int (*hard_start_xmit) (struct sk_buff *skb,
200 + struct net_device *dev);
201 #define HAVE_NETDEV_POLL
202 + int (*poll) (struct net_device *dev, int *quota);
203 int (*hard_header) (struct sk_buff *skb,
204 struct net_device *dev,
207 int (*neigh_setup)(struct net_device *dev, struct neigh_parms *);
208 #ifdef CONFIG_NETPOLL
209 struct netpoll_info *npinfo;
212 #ifdef CONFIG_NET_POLL_CONTROLLER
213 void (*poll_controller)(struct net_device *dev);
215 struct class_device class_dev;
216 /* space for optional statistics and wireless sysfs groups */
217 struct attribute_group *sysfs_groups[3];
219 + unsigned char operstate; /* RFC2863 operstate */
220 + unsigned char link_mode; /* mapping policy to operstate */
221 + unsigned short dev_id; /* for shared network cards */
223 + /* Instance data managed by the core of Wireless Extensions. */
224 + struct iw_public_data * wireless_data;
226 + unsigned char perm_addr[MAX_ADDR_LEN]; /* permanent hw address */
228 + unsigned short padded; /* How much padding added by alloc_netdev() */
231 #define NETDEV_ALIGN 32
236 - struct net_device *output_queue;
237 + int useless_padding[3];
238 struct sk_buff_head input_pkt_queue;
239 struct list_head poll_list;
240 + struct net_device *output_queue;
241 struct sk_buff *completion_queue;
243 struct net_device backlog_dev; /* Sorry. 8) */
244 diff -urN linux.old/include/linux/timer.h linux.dev/include/linux/timer.h
245 --- linux.old/include/linux/timer.h 2006-06-18 03:49:35.000000000 +0200
246 +++ linux.dev/include/linux/timer.h 2006-08-27 21:02:04.000000000 +0200
248 struct list_head entry;
249 unsigned long expires;
252 + unsigned long magic;
254 void (*function)(unsigned long);
257 diff -urN linux.old/kernel/timer.c linux.dev/kernel/timer.c
258 --- linux.old/kernel/timer.c 2006-06-18 03:49:35.000000000 +0200
259 +++ linux.dev/kernel/timer.c 2006-08-27 21:02:04.000000000 +0200
262 timer->entry.next = NULL;
263 timer->base = per_cpu(tvec_bases, raw_smp_processor_id());
264 + spin_lock_init(&timer->lock);
266 EXPORT_SYMBOL(init_timer);