Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[NET]: Add missing entries to family name tables
[NET]: Make NETDEVICES depend on NET.
[IPV6]: endianness bug in ip6_tunnel
[IrDA]: TOSHIBA_FIR depends on virt_to_bus
[IrDA]: EP7211 IR driver port to the latest SIR API
[IrDA] Typo fix in irnetlink.c copyright
[NET]: Fix loopback crashes when multiqueue is enabled.
[IPV4]: Fix inetpeer gcc-4.2 warnings

+112 -10
+1
drivers/net/Kconfig
··· 5 5 6 6 menuconfig NETDEVICES 7 7 default y if UML 8 + depends on NET 8 9 bool "Network device support" 9 10 ---help--- 10 11 You can say N here if you don't intend to connect your Linux box to
+10 -1
drivers/net/irda/Kconfig
··· 155 155 To compile it as a module, choose M here: the module will be called 156 156 kingsun-sir. 157 157 158 + config EP7211_DONGLE 159 + tristate "EP7211 I/R support" 160 + depends on IRTTY_SIR && ARCH_EP7211 && IRDA && EXPERIMENTAL 161 + help 162 + Say Y here if you want to build support for the Cirrus logic 163 + EP7211 chipset's infrared module. 164 + 165 + 166 + 158 167 comment "Old SIR device drivers" 159 168 160 169 config IRPORT_SIR ··· 364 355 365 356 config TOSHIBA_FIR 366 357 tristate "Toshiba Type-O IR Port" 367 - depends on IRDA && PCI && !64BIT 358 + depends on IRDA && PCI && !64BIT && VIRT_TO_BUS 368 359 help 369 360 Say Y here if you want to build support for the Toshiba Type-O IR 370 361 and Donau oboe chipsets. These chipsets are used by the Toshiba
+1
drivers/net/irda/Makefile
··· 45 45 obj-$(CONFIG_ACT200L_DONGLE) += act200l-sir.o 46 46 obj-$(CONFIG_MA600_DONGLE) += ma600-sir.o 47 47 obj-$(CONFIG_TOIM3232_DONGLE) += toim3232-sir.o 48 + obj-$(CONFIG_EP7211_DONGLE) += ep7211-sir.o 48 49 obj-$(CONFIG_KINGSUN_DONGLE) += kingsun-sir.o 49 50 50 51 # The SIR helper module
+89
drivers/net/irda/ep7211-sir.c
··· 1 + /* 2 + * IR port driver for the Cirrus Logic EP7211 processor. 3 + * 4 + * Copyright 2001, Blue Mug Inc. All rights reserved. 5 + * Copyright 2007, Samuel Ortiz <samuel@sortiz.org> 6 + */ 7 + #include <linux/module.h> 8 + #include <linux/delay.h> 9 + #include <linux/tty.h> 10 + #include <linux/init.h> 11 + #include <linux/spinlock.h> 12 + 13 + #include <net/irda/irda.h> 14 + #include <net/irda/irda_device.h> 15 + 16 + #include <asm/io.h> 17 + #include <asm/hardware.h> 18 + 19 + #include "sir-dev.h" 20 + 21 + #define MIN_DELAY 25 /* 15 us, but wait a little more to be sure */ 22 + #define MAX_DELAY 10000 /* 1 ms */ 23 + 24 + static int ep7211_open(struct sir_dev *dev); 25 + static int ep7211_close(struct sir_dev *dev); 26 + static int ep7211_change_speed(struct sir_dev *dev, unsigned speed); 27 + static int ep7211_reset(struct sir_dev *dev); 28 + 29 + static struct dongle_driver ep7211 = { 30 + .owner = THIS_MODULE, 31 + .driver_name = "EP7211 IR driver", 32 + .type = IRDA_EP7211_DONGLE, 33 + .open = ep7211_open, 34 + .close = ep7211_close, 35 + .reset = ep7211_reset, 36 + .set_speed = ep7211_change_speed, 37 + }; 38 + 39 + static int __init ep7211_sir_init(void) 40 + { 41 + return irda_register_dongle(&ep7211); 42 + } 43 + 44 + static void __exit ep7211_sir_cleanup(void) 45 + { 46 + irda_unregister_dongle(&ep7211); 47 + } 48 + 49 + static int ep7211_open(struct sir_dev *dev) 50 + { 51 + unsigned int syscon; 52 + 53 + /* Turn on the SIR encoder. */ 54 + syscon = clps_readl(SYSCON1); 55 + syscon |= SYSCON1_SIREN; 56 + clps_writel(syscon, SYSCON1); 57 + 58 + return 0; 59 + } 60 + 61 + static int ep7211_close(struct sir_dev *dev) 62 + { 63 + unsigned int syscon; 64 + 65 + /* Turn off the SIR encoder. */ 66 + syscon = clps_readl(SYSCON1); 67 + syscon &= ~SYSCON1_SIREN; 68 + clps_writel(syscon, SYSCON1); 69 + 70 + return 0; 71 + } 72 + 73 + static int ep7211_change_speed(struct sir_dev *dev, unsigned speed) 74 + { 75 + return 0; 76 + } 77 + 78 + static int ep7211_reset(struct sir_dev *dev) 79 + { 80 + return 0; 81 + } 82 + 83 + MODULE_AUTHOR("Samuel Ortiz <samuel@sortiz.org>"); 84 + MODULE_DESCRIPTION("EP7211 IR dongle driver"); 85 + MODULE_LICENSE("GPL"); 86 + MODULE_ALIAS("irda-dongle-13"); /* IRDA_EP7211_DONGLE */ 87 + 88 + module_init(ep7211_sir_init); 89 + module_exit(ep7211_sir_cleanup);
+1
include/linux/irda.h
··· 77 77 IRDA_ACT200L_DONGLE = 10, 78 78 IRDA_MA600_DONGLE = 11, 79 79 IRDA_TOIM3232_DONGLE = 12, 80 + IRDA_EP7211_DONGLE = 13, 80 81 } IRDA_DONGLE; 81 82 82 83 /* Protocol types to be used for SOCK_DGRAM */
+1 -1
include/linux/netdevice.h
··· 575 575 576 576 /* The TX queue control structures */ 577 577 unsigned int egress_subqueue_count; 578 - struct net_device_subqueue egress_subqueue[0]; 578 + struct net_device_subqueue egress_subqueue[1]; 579 579 }; 580 580 #define to_net_dev(d) container_of(d, struct net_device, dev) 581 581
+2 -2
net/core/dev.c
··· 3624 3624 3625 3625 /* ensure 32-byte alignment of both the device and private area */ 3626 3626 alloc_size = (sizeof(*dev) + NETDEV_ALIGN_CONST + 3627 - (sizeof(struct net_device_subqueue) * queue_count)) & 3627 + (sizeof(struct net_device_subqueue) * (queue_count - 1))) & 3628 3628 ~NETDEV_ALIGN_CONST; 3629 3629 alloc_size += sizeof_priv + NETDEV_ALIGN_CONST; 3630 3630 ··· 3642 3642 dev->priv = ((char *)dev + 3643 3643 ((sizeof(struct net_device) + 3644 3644 (sizeof(struct net_device_subqueue) * 3645 - queue_count) + NETDEV_ALIGN_CONST) 3645 + (queue_count - 1)) + NETDEV_ALIGN_CONST) 3646 3646 & ~NETDEV_ALIGN_CONST)); 3647 3647 } 3648 3648
+2 -1
net/core/sock.c
··· 182 182 "clock-21" , "clock-AF_SNA" , "clock-AF_IRDA" , 183 183 "clock-AF_PPPOX" , "clock-AF_WANPIPE" , "clock-AF_LLC" , 184 184 "clock-27" , "clock-28" , "clock-29" , 185 - "clock-AF_TIPC" , "clock-AF_BLUETOOTH", "clock-AF_MAX" 185 + "clock-AF_TIPC" , "clock-AF_BLUETOOTH", "clock-AF_IUCV" , 186 + "clock-AF_RXRPC" , "clock-AF_MAX" 186 187 }; 187 188 #endif 188 189
+2 -2
net/ipv4/inetpeer.c
··· 158 158 #define lookup(_daddr,_stack) \ 159 159 ({ \ 160 160 struct inet_peer *u, **v; \ 161 - if (_stack) { \ 161 + if (_stack != NULL) { \ 162 162 stackptr = _stack; \ 163 163 *stackptr++ = &peer_root; \ 164 164 } \ ··· 169 169 v = &u->avl_left; \ 170 170 else \ 171 171 v = &u->avl_right; \ 172 - if (_stack) \ 172 + if (_stack != NULL) \ 173 173 *stackptr++ = v; \ 174 174 u = *v; \ 175 175 } \
+2 -2
net/ipv6/ip6_tunnel.c
··· 962 962 dsfield = ipv4_get_dsfield(iph); 963 963 964 964 if ((t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)) 965 - fl.fl6_flowlabel |= ntohl(((__u32)iph->tos << IPV6_TCLASS_SHIFT) 966 - & IPV6_TCLASS_MASK); 965 + fl.fl6_flowlabel |= htonl((__u32)iph->tos << IPV6_TCLASS_SHIFT) 966 + & IPV6_TCLASS_MASK; 967 967 968 968 err = ip6_tnl_xmit2(skb, dev, dsfield, &fl, encap_limit, &mtu); 969 969 if (err != 0) {
+1 -1
net/irda/irnetlink.c
··· 1 1 /* 2 2 * IrDA netlink layer, for stack configuration. 3 3 * 4 - * Copyright (c) 2007 Samuel Ortiz <samuel@sortiz> 4 + * Copyright (c) 2007 Samuel Ortiz <samuel@sortiz.org> 5 5 * 6 6 * Partly based on the 802.11 nelink implementation 7 7 * (see net/wireless/nl80211.c) which is: