summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ipv6: copy prefsrc setting when copying route entryFlorian Westphal2011-05-211-0/+1
| | | | | | | | | | | commit c3968a857a6b6c3d2ef4ead35776b055fb664d74 ('ipv6: RTA_PREFSRC support for ipv6 route source address selection') added support for ipv6 prefsrc as an alternative to ipv6 addrlabels, but it did not work because the prefsrc entry was not copied. Cc: Daniel Walter <sahne@0x90.at> Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'upstream-linus' of ↵Linus Torvalds2011-05-2011-111/+289
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: Power off empty ports libata-pmp: add support for Thermaltake BlackX Duet esata drive dock ATA: Don't powerdown Compaq Triflex IDE device on suspend libata: Use Maximum Write Same Length to report discard size limit drivers/ata/acard-ahci.c: fix enum warning pata_at91: SMC settings calculation bugfixes, support for t6z and IORDY libata-sff: prevent irq descriptions for dummy ports pata_cm64x: fix boot crash on parisc
| * libata: Power off empty portsKristen Carlson Accardi2011-05-203-3/+10
| | | | | | | | | | | | | | | | | | | | | | Give users the option of completely powering off unoccupied SATA ports using the existing min_power link_power_management_policy option. When the use selects this option on an empty port, we will power the port off by setting DET to off. For occupied ports, behavior is unchanged. Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * libata-pmp: add support for Thermaltake BlackX Duet esata drive dockPavel Herrmann2011-05-201-0/+10
| | | | | | | | | | | | | | | | | | | | | | Some errors still show up, but the dock works, both drives can be accessed at the same time The chip maker and designation is unknown - possibly jmicron JMB350? Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * ATA: Don't powerdown Compaq Triflex IDE device on suspendMikulas Patocka2011-05-201-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | Don't powerdown Compaq Triflex IDE device on suspend This fixes APM suspend on Compaq Armada 7400. APM BIOS doesn't suspend if IDE is powered down when suspending. The Triflex controller is found only on old Compaq boards, so this patch will hopefully have no side effects. Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * libata: Use Maximum Write Same Length to report discard size limitMartin K. Petersen2011-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we used Maximum Unmap LBA Count in the Block Limits VPD to signal the maximum number of sectors we could handle in a single Write Same command. Starting with SBC3r26 the Block Limits VPD has an explicit limit on the number of blocks in a Write Same. This means we can stop abusing a field related to the Unmap command and let our SAT use the proper value in the VPD (Maximum Write Same Length). Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com> Cc: stable@kernel.org
| * drivers/ata/acard-ahci.c: fix enum warningJeff Garzik2011-05-201-1/+1
| | | | | | | | Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * pata_at91: SMC settings calculation bugfixes, support for t6z and IORDYIgor Plyatov2011-05-141-99/+198
| | | | | | | | | | | | | | | | | | | | | | | | * New code correctly calculates SMC registers values, adjusts calculated to admissible ranges, enlarges cycles when required and converts values into SMC's format. * Support for TDF cycles (ATA t6z) and IORDY line added. * Eliminate need in the initial_timing structure. * Code cleanup. Signed-off-by: Igor Plyatov <plyatov@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * libata-sff: prevent irq descriptions for dummy portsJames Bottomley2011-05-141-2/+7
| | | | | | | | | | | | | | | | | | This is a cosmetic change to prevent libata-sff adding irq descriptions to dummy ports, since the information, while largely unused, is erroneous. Signed-off-by: James Bottomley <James.Bottomley@suse.de> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
| * pata_cm64x: fix boot crash on pariscJames Bottomley2011-05-142-4/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old IDE cmd64x checks the status of the CNTRL register to see if the ports are enabled before probing them. pata_cmd64x doesn't do this, which causes a HPMC on parisc when it tries to poke at the secondary port because apparently the BAR isn't wired up (and a non-responding piece of memory causes a HPMC). Fix this by porting the CNTRL register port detection logic from IDE cmd64x. In addition, following converns from Alan Cox, add a check to see if a mobility electronics bridge is the immediate parent and forgo the check if it is (prevents problems on hotplug controllers). Signed-off-by: James Bottomley <James.Bottomley@suse.de> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | ipc: Add missing sys_ni entries for ipc/compat.c functionsKevin Cernekee2011-05-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building with: CONFIG_64BIT=y CONFIG_MIPS32_COMPAT=y CONFIG_COMPAT=y CONFIG_MIPS32_O32=y CONFIG_MIPS32_N32=y CONFIG_SYSVIPC is not set (and implicitly: CONFIG_SYSVIPC_COMPAT is not set) the final link fails with unresolved symbols for: compat_sys_semctl, compat_sys_msgsnd, compat_sys_msgrcv, compat_sys_shmctl, compat_sys_msgctl, compat_sys_semtimedop The fix is to add cond_syscall declarations for all syscalls in ipc/compat.c Signed-off-by: Kevin Cernekee <cernekee@gmail.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6Linus Torvalds2011-05-201198-79620/+126858
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1446 commits) macvlan: fix panic if lowerdev in a bond tg3: Add braces around 5906 workaround. tg3: Fix NETIF_F_LOOPBACK error macvlan: remove one synchronize_rcu() call networking: NET_CLS_ROUTE4 depends on INET irda: Fix error propagation in ircomm_lmp_connect_response() irda: Kill set but unused variable 'bytes' in irlan_check_command_param() irda: Kill set but unused variable 'clen' in ircomm_connect_indication() rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport() be2net: Kill set but unused variable 'req' in lancer_fw_download() irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication() atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined. rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer(). rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler() rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection() rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window() pkt_sched: Kill set but unused variable 'protocol' in tc_classify() isdn: capi: Use pr_debug() instead of ifdefs. tg3: Update version to 3.119 tg3: Apply rx_discards fix to 5719/5720 ... Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c as per Davem.
| * | macvlan: fix panic if lowerdev in a bondEric Dumazet2011-05-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit a35e2c1b6d905 (macvlan: use rx_handler_data pointer to store macvlan_port pointer V2) added a bug in macvlan_port_create() Steps to reproduce the bug: # ifenslave bond0 eth0 eth1 # ip link add link eth0 up name eth0#1 type macvlan ->error EBUSY # ip link add link eth0 up name eth0#1 type macvlan ->panic Fix: Dont set IFF_MACVLAN_PORT in error case. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Add braces around 5906 workaround.Matt Carlson2011-05-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit dabc5c670d3f86d15ee4f42ab38ec5bd2682487d, entitled "tg3: Move TSO_CAPABLE assignment", moved some TSO flagging code around. In the process it failed to add braces around an exceptional 5906 condition. This patch fixes the problem. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Fix NETIF_F_LOOPBACK errorMatt Carlson2011-05-201-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mahesh Bandewar noticed that the features cleanup in commit 0da0606f493c5cdab74bdcc96b12f4305ad94085, entitled "tg3: Consolidate all netdev feature assignments", mistakenly sets NETIF_F_LOOPBACK by default. This patch corrects the error. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: Mahesh Bandewar <maheshb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | macvlan: remove one synchronize_rcu() callEric Dumazet2011-05-203-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When one macvlan device is dismantled, we can avoid one synchronize_rcu() call done after deletion from hash list, since caller will perform a synchronize_net() call after its ndo_stop() call. Add a new netdev->dismantle field to signal this dismantle intent. Reduces RTNL hold time. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> CC: Patrick McHardy <kaber@trash.net> CC: Ben Greear <greearb@candelatech.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | networking: NET_CLS_ROUTE4 depends on INETRandy Dunlap2011-05-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IP_ROUTE_CLASSID depends on INET and NET_CLS_ROUTE4 selects IP_ROUTE_CLASSID, but when INET is not enabled, this kconfig warning is produced, so fix it by making NET_CLS_ROUTE4 depend on INET. warning: (NET_CLS_ROUTE4) selects IP_ROUTE_CLASSID which has unmet direct dependencies (NET && INET) Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | irda: Fix error propagation in ircomm_lmp_connect_response()David S. Miller2011-05-201-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The variable 'ret' is set but unused, and this pointed out that errors from irlmp_connect_response() are not propagated to the caller. Note that this is currently academic since irlmp_connect_response() always returns 0. :-) Signed-off-by: David S. Miller <davem@davemloft.net>
| * | irda: Kill set but unused variable 'bytes' in irlan_check_command_param()David S. Miller2011-05-201-4/+0
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | irda: Kill set but unused variable 'clen' in ircomm_connect_indication()David S. Miller2011-05-201-6/+0
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport()David S. Miller2011-05-201-1/+2
| | | | | | | | | | | | | | | | | | This is identical to the case I fixed in rxrpc_get_peer() Signed-off-by: David S. Miller <davem@davemloft.net>
| * | be2net: Kill set but unused variable 'req' in lancer_fw_download()David S. Miller2011-05-201-2/+0
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | irda: Kill set but unused vars 'saddr' and 'daddr' in ↵David S. Miller2011-05-201-3/+0
| | | | | | | | | | | | | | | | | | irlan_provider_connect_indication() Signed-off-by: David S. Miller <davem@davemloft.net>
| * | atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined.David S. Miller2011-05-201-0/+2
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer().David S. Miller2011-05-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | I backed off from trying to just eliminate this variable, since transforming atomic_inc_return() into atomic_inc() takes away the memory barriers. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler()David S. Miller2011-05-201-4/+1
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection()David S. Miller2011-05-201-3/+0
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window()David S. Miller2011-05-201-2/+0
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | pkt_sched: Kill set but unused variable 'protocol' in tc_classify()David S. Miller2011-05-201-2/+0
| | | | | | | | | | | | | | | | | | | | | I checked the history and this has been like this since the beginning of time. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | isdn: capi: Use pr_debug() instead of ifdefs.David S. Miller2011-05-201-83/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I was investigating some warnings that spew because of the _DEBUG_FOO ifdef'ery in here. Instead of adding more ifdefs to fix that warning, let's use pr_debug() and get rid of these CPP checks altogether. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Update version to 3.119Matt Carlson2011-05-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch updates the tg3 version to 3.119. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Apply rx_discards fix to 5719/5720Matt Carlson2011-05-201-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 4d95847381228639844c7197deb8b2211274ef22, entitled "tg3: Workaround rx_discards stat bug", was intended to be applied to the 5717, 5718, 5719_A0, and 5720 A0 chip revisions. The implementation missed the latter two when applying the fix in a critical area. This patch fixes the problem. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Remove excessive parenthesisMatt Carlson2011-05-201-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | This patch removes some excessive parenthesizing. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Consolidate all netdev feature assignmentsMatt Carlson2011-05-201-27/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates all the netdev feature bit assignments to one location. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Move TSO_CAPABLE assignmentMatt Carlson2011-05-201-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves the code that asserts the TSO_CAPABLE flag closer to where the TSO capabilities flags are set. There isn't a good enough reason for the code to be separated. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Fix stats for 5704 and later devicesMatt Carlson2011-05-202-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 4d95847381228639844c7197deb8b2211274ef22, entitled "tg3: Workaround rx_discards stat bug" modified the hardware statistics data structure. The modification shifted the statistics so that the labels no longer corresponded to the counter values. This patch fixes the problem by utilizing reserved space for the new counters. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Fix TSO loopback testMatt Carlson2011-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit bb158d696489244f79fd4c3abd47968a06b48c79, entitled "tg3: Add TSO loopback test", mistakenly inverted the checksum field test from the receive BD. This patch corrects the problem. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Consolidate autoneg advertisement setup codeMatt Carlson2011-05-201-118/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Autonegotiation setup has gotten a little more complicated since the tg3 driver was created. This patch consolidates autoneg setup into one routine and modifies the call sites accordingly. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Fix EEE interoperability workaroundMatt Carlson2011-05-202-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 21a00ab270f95d32e502d92f166dd75c518d3c5f, entitled "tg3: Fix EEE interoperability issue", added an EEE interoperability fix. We found that the fix doesn't work if applied too early though. This patch delays the fix until right before allowing LPI assertion. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Fix IPv6 TCP problems for 5719Matt Carlson2011-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 4d163b75e979833979cc401ae433cb1d7743d57e, entitled "tg3: Fix 5719 A0 tx completion bug" turned off TSO to fix a hardware bug. In doing so, it accidentally turned off all IPv6 TCP checksum offloading too. This patch fixes the problem by reenabling the hardware bit that control both features. The TSO capability is still not exposed to the kernel. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Fix 57765 B0 data corruptionMatt Carlson2011-05-202-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | The PCIe max FTS limit is too aggressive on these chips. This patch loosens the limit a little to eliminate data corruption issues. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Cleanup transmit error pathMatt Carlson2011-05-191-60/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates the skb cleanup code into a function named tg3_skb_error_unmap(). The modification addresses a long-standing bug where pci_unmap_single() was incorrectly being called instead of pci_unmap_page() in tigon3_dma_hwbug_workaround(). Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | tg3: Set tx bug flags for more devicesMatt Carlson2011-05-191-229/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It has been recently discovered that all tg3 devices have a 4Gb boundary DMA problem, and that all 5755 and newer devices can't handle fragments less than or equal to 8 bytes in size. This patch adjusts the flags and removes tg3_start_xmit(). tg3_start_xmit_dma_bug() has been renamed to tg3_start_xmit(). Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | 9p: Kill unused variable 'ret' in trans_rdma.c:parse_opts()David S. Miller2011-05-191-2/+0
| | | | | | | | | | | | | | | | | | | | | Probably just cut and pasted from the other parse_opts() implementations in the 9p sources. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | 9p: Kill set but not used variable 'ret' in parse_opts()David S. Miller2011-05-191-2/+0
| | | | | | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * | ipconfig wait for carrierMicha Nelissen2011-05-191-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | v3 -> v4: fix return boolean false instead of 0 for ic_is_init_dev Currently the ip auto configuration has a hardcoded delay of 1 second. When (ethernet) link takes longer to come up (e.g. more than 3 seconds), nfs root may not be found. Remove the hardcoded delay, and wait for carrier on at least one network device. Signed-off-by: Micha Nelissen <micha@neli.hopto.org> Cc: David Miller <davem@davemloft.net> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | SCTP: fix race between sctp_bind_addr_free() and sctp_bind_addr_conflict()Jacek Luczak2011-05-191-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the sctp_close() call, we do not use rcu primitives to destroy the address list attached to the endpoint. At the same time, we do the removal of addresses from this list before attempting to remove the socket from the port hash As a result, it is possible for another process to find the socket in the port hash that is in the process of being closed. It then proceeds to traverse the address list to find the conflict, only to have that address list suddenly disappear without rcu() critical section. Fix issue by closing address list removal inside RCU critical section. Race can result in a kernel crash with general protection fault or kernel NULL pointer dereference: kernel: general protection fault: 0000 [#1] SMP kernel: RIP: 0010:[<ffffffffa02f3dde>] [<ffffffffa02f3dde>] sctp_bind_addr_conflict+0x64/0x82 [sctp] kernel: Call Trace: kernel: [<ffffffffa02f415f>] ? sctp_get_port_local+0x17b/0x2a3 [sctp] kernel: [<ffffffffa02f3d45>] ? sctp_bind_addr_match+0x33/0x68 [sctp] kernel: [<ffffffffa02f4416>] ? sctp_do_bind+0xd3/0x141 [sctp] kernel: [<ffffffffa02f5030>] ? sctp_bindx_add+0x4d/0x8e [sctp] kernel: [<ffffffffa02f5183>] ? sctp_setsockopt_bindx+0x112/0x4a4 [sctp] kernel: [<ffffffff81089e82>] ? generic_file_aio_write+0x7f/0x9b kernel: [<ffffffffa02f763e>] ? sctp_setsockopt+0x14f/0xfee [sctp] kernel: [<ffffffff810c11fb>] ? do_sync_write+0xab/0xeb kernel: [<ffffffff810e82ab>] ? fsnotify+0x239/0x282 kernel: [<ffffffff810c2462>] ? alloc_file+0x18/0xb1 kernel: [<ffffffff8134a0b1>] ? compat_sys_setsockopt+0x1a5/0x1d9 kernel: [<ffffffff8134aaf1>] ? compat_sys_socketcall+0x143/0x1a4 kernel: [<ffffffff810467dc>] ? sysenter_dispatch+0x7/0x32 Signed-off-by: Jacek Luczak <luczak.jacek@gmail.com> Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com> CC: Eric Dumazet <eric.dumazet@gmail.com> Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | ipv6: reduce per device ICMP mib sizesEric Dumazet2011-05-195-33/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ipv6 has per device ICMP SNMP counters, taking too much space because they use percpu storage. needed size per device is : (512+4)*sizeof(long)*number_of_possible_cpus*2 On a 32bit kernel, 16 possible cpus, this wastes more than 64kbytes of memory per ipv6 enabled network device, taken in vmalloc pool. Since ICMP messages are rare, just use shared counters (atomic_long_t) Per network space ICMP counters are still using percpu memory, we might also convert them to shared counters in a future patch. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> CC: Denys Fedoryshchenko <denys@visp.net.lb> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | net: ping: fix the coding styleChangli Gao2011-05-191-3/+7
| | | | | | | | | | | | | | | | | | | | | The characters in a line should be no more than 80. Signed-off-by: Changli Gao <xiaosuo@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | net: ping: make local functions staticChangli Gao2011-05-191-4/+4
| | | | | | | | | | | | | | | | | | | | | As these functions are only used in this file. Signed-off-by: Changli Gao <xiaosuo@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>