Loading Documentation/networking/ip-sysctl.txt +17 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,23 @@ icmp_ignore_bogus_error_responses - BOOLEAN will avoid log file clutter. Default: FALSE icmp_errors_use_inbound_ifaddr - BOOLEAN If zero, icmp error messages are sent with the primary address of the exiting interface. If non-zero, the message will be sent with the primary address of the interface that received the packet that caused the icmp error. This is the behaviour network many administrators will expect from a router. And it can make debugging complicated network layouts much easier. Note that if no primary address exists for the interface selected, then the primary address of the first non-loopback interface that has one will be used regarldess of this setting. Default: 0 igmp_max_memberships - INTEGER Change the maximum number of multicast groups we can subscribe to. Default: 20 Loading drivers/net/tg3.c +26 −4 Original line number Diff line number Diff line Loading @@ -69,8 +69,8 @@ #define DRV_MODULE_NAME "tg3" #define PFX DRV_MODULE_NAME ": " #define DRV_MODULE_VERSION "3.48" #define DRV_MODULE_RELDATE "Jan 16, 2006" #define DRV_MODULE_VERSION "3.49" #define DRV_MODULE_RELDATE "Feb 2, 2006" #define TG3_DEF_MAC_MODE 0 #define TG3_DEF_RX_MODE 0 Loading Loading @@ -3482,6 +3482,17 @@ static void tg3_reset_task(void *_data) struct tg3 *tp = _data; unsigned int restart_timer; tg3_full_lock(tp, 0); tp->tg3_flags |= TG3_FLAG_IN_RESET_TASK; if (!netif_running(tp->dev)) { tp->tg3_flags &= ~TG3_FLAG_IN_RESET_TASK; tg3_full_unlock(tp); return; } tg3_full_unlock(tp); tg3_netif_stop(tp); tg3_full_lock(tp, 1); Loading @@ -3494,10 +3505,12 @@ static void tg3_reset_task(void *_data) tg3_netif_start(tp); tg3_full_unlock(tp); if (restart_timer) mod_timer(&tp->timer, jiffies + 1); tp->tg3_flags &= ~TG3_FLAG_IN_RESET_TASK; tg3_full_unlock(tp); } static void tg3_tx_timeout(struct net_device *dev) Loading Loading @@ -6786,6 +6799,13 @@ static int tg3_close(struct net_device *dev) { struct tg3 *tp = netdev_priv(dev); /* Calling flush_scheduled_work() may deadlock because * linkwatch_event() may be on the workqueue and it will try to get * the rtnl_lock which we are holding. */ while (tp->tg3_flags & TG3_FLAG_IN_RESET_TASK) msleep(1); netif_stop_queue(dev); del_timer_sync(&tp->timer); Loading Loading @@ -10880,6 +10900,7 @@ static void __devexit tg3_remove_one(struct pci_dev *pdev) if (dev) { struct tg3 *tp = netdev_priv(dev); flush_scheduled_work(); unregister_netdev(dev); if (tp->regs) { iounmap(tp->regs); Loading @@ -10901,6 +10922,7 @@ static int tg3_suspend(struct pci_dev *pdev, pm_message_t state) if (!netif_running(dev)) return 0; flush_scheduled_work(); tg3_netif_stop(tp); del_timer_sync(&tp->timer); Loading drivers/net/tg3.h +1 −0 Original line number Diff line number Diff line Loading @@ -2162,6 +2162,7 @@ struct tg3 { #define TG3_FLAG_JUMBO_RING_ENABLE 0x00800000 #define TG3_FLAG_10_100_ONLY 0x01000000 #define TG3_FLAG_PAUSE_AUTONEG 0x02000000 #define TG3_FLAG_IN_RESET_TASK 0x04000000 #define TG3_FLAG_BROKEN_CHECKSUMS 0x10000000 #define TG3_FLAG_GOT_SERDES_FLOWCTL 0x20000000 #define TG3_FLAG_SPLIT_MODE 0x40000000 Loading include/net/sctp/structs.h +1 −1 Original line number Diff line number Diff line Loading @@ -700,7 +700,7 @@ struct sctp_chunk { __u8 ecn_ce_done; /* Have we processed the ECN CE bit? */ __u8 pdiscard; /* Discard the whole packet now? */ __u8 tsn_gap_acked; /* Is this chunk acked by a GAP ACK? */ __u8 fast_retransmit; /* Is this chunk fast retransmitted? */ __s8 fast_retransmit; /* Is this chunk fast retransmitted? */ __u8 tsn_missing_report; /* Data chunk missing counter. */ }; Loading include/net/sock.h +4 −4 Original line number Diff line number Diff line Loading @@ -1354,12 +1354,12 @@ extern int sock_get_timestamp(struct sock *, struct timeval __user *); * Enable debug/info messages */ #if 0 #define NETDEBUG(fmt, args...) do { } while (0) #define LIMIT_NETDEBUG(fmt, args...) do { } while(0) #else #ifdef CONFIG_NETDEBUG #define NETDEBUG(fmt, args...) printk(fmt,##args) #define LIMIT_NETDEBUG(fmt, args...) do { if (net_ratelimit()) printk(fmt,##args); } while(0) #else #define NETDEBUG(fmt, args...) do { } while (0) #define LIMIT_NETDEBUG(fmt, args...) do { } while(0) #endif /* Loading Loading
Documentation/networking/ip-sysctl.txt +17 −0 Original line number Diff line number Diff line Loading @@ -427,6 +427,23 @@ icmp_ignore_bogus_error_responses - BOOLEAN will avoid log file clutter. Default: FALSE icmp_errors_use_inbound_ifaddr - BOOLEAN If zero, icmp error messages are sent with the primary address of the exiting interface. If non-zero, the message will be sent with the primary address of the interface that received the packet that caused the icmp error. This is the behaviour network many administrators will expect from a router. And it can make debugging complicated network layouts much easier. Note that if no primary address exists for the interface selected, then the primary address of the first non-loopback interface that has one will be used regarldess of this setting. Default: 0 igmp_max_memberships - INTEGER Change the maximum number of multicast groups we can subscribe to. Default: 20 Loading
drivers/net/tg3.c +26 −4 Original line number Diff line number Diff line Loading @@ -69,8 +69,8 @@ #define DRV_MODULE_NAME "tg3" #define PFX DRV_MODULE_NAME ": " #define DRV_MODULE_VERSION "3.48" #define DRV_MODULE_RELDATE "Jan 16, 2006" #define DRV_MODULE_VERSION "3.49" #define DRV_MODULE_RELDATE "Feb 2, 2006" #define TG3_DEF_MAC_MODE 0 #define TG3_DEF_RX_MODE 0 Loading Loading @@ -3482,6 +3482,17 @@ static void tg3_reset_task(void *_data) struct tg3 *tp = _data; unsigned int restart_timer; tg3_full_lock(tp, 0); tp->tg3_flags |= TG3_FLAG_IN_RESET_TASK; if (!netif_running(tp->dev)) { tp->tg3_flags &= ~TG3_FLAG_IN_RESET_TASK; tg3_full_unlock(tp); return; } tg3_full_unlock(tp); tg3_netif_stop(tp); tg3_full_lock(tp, 1); Loading @@ -3494,10 +3505,12 @@ static void tg3_reset_task(void *_data) tg3_netif_start(tp); tg3_full_unlock(tp); if (restart_timer) mod_timer(&tp->timer, jiffies + 1); tp->tg3_flags &= ~TG3_FLAG_IN_RESET_TASK; tg3_full_unlock(tp); } static void tg3_tx_timeout(struct net_device *dev) Loading Loading @@ -6786,6 +6799,13 @@ static int tg3_close(struct net_device *dev) { struct tg3 *tp = netdev_priv(dev); /* Calling flush_scheduled_work() may deadlock because * linkwatch_event() may be on the workqueue and it will try to get * the rtnl_lock which we are holding. */ while (tp->tg3_flags & TG3_FLAG_IN_RESET_TASK) msleep(1); netif_stop_queue(dev); del_timer_sync(&tp->timer); Loading Loading @@ -10880,6 +10900,7 @@ static void __devexit tg3_remove_one(struct pci_dev *pdev) if (dev) { struct tg3 *tp = netdev_priv(dev); flush_scheduled_work(); unregister_netdev(dev); if (tp->regs) { iounmap(tp->regs); Loading @@ -10901,6 +10922,7 @@ static int tg3_suspend(struct pci_dev *pdev, pm_message_t state) if (!netif_running(dev)) return 0; flush_scheduled_work(); tg3_netif_stop(tp); del_timer_sync(&tp->timer); Loading
drivers/net/tg3.h +1 −0 Original line number Diff line number Diff line Loading @@ -2162,6 +2162,7 @@ struct tg3 { #define TG3_FLAG_JUMBO_RING_ENABLE 0x00800000 #define TG3_FLAG_10_100_ONLY 0x01000000 #define TG3_FLAG_PAUSE_AUTONEG 0x02000000 #define TG3_FLAG_IN_RESET_TASK 0x04000000 #define TG3_FLAG_BROKEN_CHECKSUMS 0x10000000 #define TG3_FLAG_GOT_SERDES_FLOWCTL 0x20000000 #define TG3_FLAG_SPLIT_MODE 0x40000000 Loading
include/net/sctp/structs.h +1 −1 Original line number Diff line number Diff line Loading @@ -700,7 +700,7 @@ struct sctp_chunk { __u8 ecn_ce_done; /* Have we processed the ECN CE bit? */ __u8 pdiscard; /* Discard the whole packet now? */ __u8 tsn_gap_acked; /* Is this chunk acked by a GAP ACK? */ __u8 fast_retransmit; /* Is this chunk fast retransmitted? */ __s8 fast_retransmit; /* Is this chunk fast retransmitted? */ __u8 tsn_missing_report; /* Data chunk missing counter. */ }; Loading
include/net/sock.h +4 −4 Original line number Diff line number Diff line Loading @@ -1354,12 +1354,12 @@ extern int sock_get_timestamp(struct sock *, struct timeval __user *); * Enable debug/info messages */ #if 0 #define NETDEBUG(fmt, args...) do { } while (0) #define LIMIT_NETDEBUG(fmt, args...) do { } while(0) #else #ifdef CONFIG_NETDEBUG #define NETDEBUG(fmt, args...) printk(fmt,##args) #define LIMIT_NETDEBUG(fmt, args...) do { if (net_ratelimit()) printk(fmt,##args); } while(0) #else #define NETDEBUG(fmt, args...) do { } while (0) #define LIMIT_NETDEBUG(fmt, args...) do { } while(0) #endif /* Loading