summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CAPI: Rework locking of capidev membersJan Kiszka2010-02-171-93/+88
| | | | | | | | | | | | | | | | | Rename 'ncci_list_mtx' to 'lock', expressing that it now protects a larger set of capidev members: the NCCI list, ap.applid (ie. the registration of the application), and modifications of userflags. We do not need to protect each and every check for ap.applid because, once an application is registered, it will stay for the whole lifetime of the device. Also, there is no need to apply the capidev mutex during release (if there could be concurrent users, we would crash them anyway by freeing the device at the end of capi_release). Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Clean up capi_open/releaseJan Kiszka2010-02-171-59/+34
| | | | | | | | | | Fold capidev_alloc and capidev_free into capi_open and capi_release - there are no other users. Someone pushed a lock_kernel into capi_open. Drop it, we don't need it. Also remove the useless test from open that checks for private_data == NULL. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Convert capidev_list_lock into a mutexJan Kiszka2010-02-171-12/+12
| | | | | | | | | No need for anything "harder" here (specifically no need for irqsave...). Also, make the list removal the first operation of capidev_free to avoid dumping half-released devices via /proc. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Reduce #ifdef mess around CONFIG_ISDN_CAPI_MIDDLEWAREJan Kiszka2010-02-171-67/+83
| | | | | | | | | Make the code a bit more readable be providing stub functions for the !CONFIG_ISDN_CAPI_MIDDLEWARE case. Though a few lines are moved around, this comes with no functional changes. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Rework application lockingJan Kiszka2010-02-172-34/+29
| | | | | | | | | | | | | | | | Drop the application rw-lock in favour of RCU. This synchronizes capi20_release against capi_ctr_handle_message which may dereference an application from (soft-)IRQ context. Any other access to the application list is now protected by the capi_controller_lock as well. This also allows to safely inspect applications for /proc dumping by holding capi_controller_lock. At this chance, drop some useless release_in_progress checks where we obtained the application pointer from the list (which becomes NULL on release_in_progress). Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Rework locking of controller data structuresJan Kiszka2010-02-174-89/+217
| | | | | | | | | | | | | This patch applies the mutex so far only protecting the controller list to (almost) all accesses of controller data structures. It also reworks waiting on state changes in old_capi_manufacturer so that it no longer poll and holds a module reference to the controller owner while waiting (the latter was partly done already). Modification and checking of the blocked state remains racy by design, the caller is responsible for dealing with this. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Rework controller state notifierJan Kiszka2010-02-173-79/+72
| | | | | | | | | | | | | | | | | | Another step towards proper locking: Rework the callback provided to capidrv for controller state changes. This is so far attached to an application, which would require us to hold the corresponding lock across notification calls. But there is no direct relation between a controller up/down event and an application, so let's decouple them and provide a notifier call chain for those events instead. This notifier chain is first of all used internally. Here we request the highest priority to unsure that housekeeping work is done before any other notifications. The chain is exported via [un]register_capictr_notifier to our only user, capidrv, to replace the racy and unfixable capi20_set_callback. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Rework capi_ctr_ready/downJan Kiszka2010-02-171-45/+50
| | | | | | | | | | | This step prepares the application of proper controller locking: Push all state changing work into the notify handler that are called by capi_ctr_ready and capi_ctr_down, switch detach_capi_ctr to issue a synchronous ctr_down. Also ensure that we do not go through any action if the state did not change. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Convert capi drivers rwlock into mutexJan Kiszka2010-02-173-32/+27
| | | | | | | | Turn the lock protecting registered capi drivers into a mutex and apply it consistently. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Call a controller 'controller', not 'card'Jan Kiszka2010-02-174-169/+178
| | | | | | | | At least for our internal use, fix the misnomers that refer to a CAPI controller as 'card'. No functional changes. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Reduce chattiness during module loading/removalJan Kiszka2010-02-174-83/+9
| | | | | | | | | | The CVS revisions dumped by all CAPI modules are meaningless today. And that some CAPI module is loaded or removed does not necessarily deserve a message. Just keep the message of the central module, capi.ko, drop the rest. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Pin capifs instead of mounting itJan Kiszka2010-02-171-9/+18
| | | | | | | | Auto-mounting the capifs during module init prevents unloading its module. Instead, pin the filesystem as long as some NCCI node exists. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Eliminate capifs_root variableJan Kiszka2010-02-171-8/+10
| | | | | | | capifs_mnt->mnt_sb->s_root already contains what we need. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Sanitize capifs APIJan Kiszka2010-02-173-31/+54
| | | | | | | | | | | Instead of looking up the dentry of an NCCI node again in capifs_free_ncci pass the pointer via the capifs user. This patch also reduces the #ifdef mess in capi.c a bit as far as capifs was causing it. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* CAPI: Fix leaks in capifs_new_ncciJan Kiszka2010-02-171-7/+18
| | | | | | | | | When something went wrong during capifs_new_ncci, the looked up dentry was not properly released. Neither was the allocated inode. Refactor the function to avoid leaks. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* net neigh: Decouple per interface neighbour table controls from binary sysctlsEric W. Biederman2010-02-177-13/+8
| | | | | | | | | | | | | | Stop computing the number of neighbour table settings we have by counting the number of binary sysctls. This behaviour was silly and meant that we could not add another neighbour table setting without also adding another binary sysctl. Don't pass the binary sysctl path for neighour table entries into neigh_sysctl_register. These parameters are no longer used and so are just dead code. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net ipv4: Decouple ipv4 interface parameters from binary sysctl numbersEric W. Biederman2010-02-173-23/+49
| | | | | | | | | | Stop using the binary sysctl enumeartion in sysctl.h as an index into a per interface array. This leads to unnecessary binary sysctl number allocation, and a fragility in data structure and implementation because of unnecessary coupling. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/pcnet32.c: Checkpatch cleaningJoe Perches2010-02-171-80/+73
| | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/pcnet32.c: Use (pr|netdev|netif)_<levels> macro helpersJoe Perches2010-02-171-217/+130
| | | | | | | Make the output logging messages a bit more consistent. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/tehuti.c: trivial checkpatch cleanupsJoe Perches2010-02-171-7/+7
| | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/tehuti.c: Hoist assigns out of ifsJoe Perches2010-02-171-22/+27
| | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/tehuti.c: Use (pr|netdev|netif)_<levels> macro helpersJoe Perches2010-02-172-59/+59
| | | | | | | Make the output logging messages a bit more consistent. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/sky2: Convert to use netif_printk macrosJoe Perches2010-02-171-38/+27
| | | | | | | | Some unlikely(netif_msg_<foo>(sky2)) tests are also removed by this change. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/ixgb: Use netif_printk macrosJoe Perches2010-02-172-49/+51
| | | | | | | | Convert private DPRINTK macro uses to netif_<level> equivalents Remove #define DPRINTK Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc64: Kill bogus ip_tables.h include.David S. Miller2010-02-171-1/+0
| | | | | | | | | | | Fixes the following build failure: CC arch/sparc/kernel/sys_sparc32.o In file included from include/linux/netfilter_ipv4/ip_tables.h:28, from arch/sparc/kernel/sys_sparc32.c:46: include/linux/netfilter/x_tables.h:525: error: expected declaration specifiers or ‘...’ before ‘nf_hookfn’ Signed-off-by: David S. Miller <davem@davemloft.net>
* bnx2: Update firmwares and update version to 2.0.8.Michael Chan2010-02-179-9068/+9143
| | | | | | | | - Increase FTQ depth to 256 to ehnabce performance. - Fix RV2P context corruption on 5709 when flow control is enabled. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* bnx2: Fix bug when saving statistics.Patrick Rabau2010-02-171-5/+5
| | | | | | | | | | | This fixes the problem of dropping the carry when adding 2 32-bit values. Switch to use array indexing for better readability. Reported by and fix provided by Patrick Rabau. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* bnx2: Allow user-specified multiple advertisement speed values.Michael Chan2010-02-171-25/+8
| | | | | | | | | | | | Remove unnecessary code that works around older versions of ethtool that can pass down invalid advertisement speed values. This old code prevents the user from specifying multiple advertisement values. The new code uses simple masking to mask out invalid advertisment bits. Reported-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* bnx2: Adjust flow control water marks.Michael Chan2010-02-172-2/+2
| | | | | | | | | The current water marks are too high and can cause unnecessary flow control frames. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* bnx2: Need to call cnic_setup_cnic_irq_info() after MTU change.Michael Chan2010-02-171-0/+7
| | | | | | | | | New status blocks are allocated during MTU change so we need to update this information for the cnic driver. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* bnx2: Check BNX2_FLAG_USING_MSIX flag when setting up MSIX.Michael Chan2010-02-171-1/+1
| | | | | | | | | | Checking the flag is more correct than checking bp->irq_nvecs. By accident it is not a problem because we always have more than 1 vectors when using MSIX mode. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* atl1c: Add support for Atheros AR8152 and AR8152Luis R. Rodriguez2010-02-175-25/+191
| | | | | | | | | | | | | | | | | | | | | | AR8151 is a Gigabit Ethernet device. AR8152 devices are Fast Ethernet devices, there are two revisions, a 1.0 and a 2.0 revision. This has been tested against these devices: Driver Model-name vendor:device Type atl1c AR8131 1969:1063 Gigabit Ethernet atl1c AR8132 1969:1062 Fast Ethernet atl1c AR8151(v1.0) 1969:1073 Gigabit Ethernet atl1c AR8152(v1.1) 1969:2060 Fast Ethernet This device has no hardware available yet so it goes untested, but it should work: atl1c AR8152(v2.0) 1969:2062 Fast Ethernet Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* tunnels: fix netns vs proto registration orderingAlexey Dobriyan2010-02-164-62/+47
| | | | | | | | Same stuff as in ip_gre patch: receive hook can be called before netns setup is done, oopsing in net_generic(). Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* gre: fix netns vs proto registration orderingAlexey Dobriyan2010-02-161-9/+10
| | | | | | | | | | | | GRE protocol receive hook can be called right after protocol addition is done. If netns stuff is not yet initialized, we're going to oops in net_generic(). This is remotely oopsable if ip_gre is compiled as module and packet comes at unfortunate moment of module loading. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2010-02-16111-1836/+2313
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
| * netfilter: CONFIG_COMPAT: allow delta to exceed 32767Florian Westphal2010-02-152-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with 32 bit userland and 64 bit kernels, it is unlikely but possible that insertion of new rules fails even tough there are only about 2000 iptables rules. This happens because the compat delta is using a short int. Easily reproducible via "iptables -m limit" ; after about 2050 rules inserting new ones fails with -ELOOP. Note that compat_delta included 2 bytes of padding on x86_64, so structure size remains the same. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: ebtables: avoid explicit XT_ALIGN() in match/targetsFlorian Westphal2010-02-1517-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will cause trouble once CONFIG_COMPAT support is added to ebtables. xt_compat_*_offset() calculate the kernel/userland structure size delta using: XT_ALIGN(size) - COMPAT_XT_ALIGN(size) If the match/target sizes are aligned at registration time, delta is always zero. Should have zero effect for existing systems: xtables uses XT_ALIGN() whenever it deals with match/target sizes. Signed-off-by: Florian Westphal <fwestphal@astaro.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: ebtables: abort if next_offset is too smallFlorian Westphal2010-02-151-0/+2
| | | | | | | | | | | | | | | | | | next_offset must be > 0, otherwise this loops forever. The offset also contains the size of the ebt_entry structure itself, so anything smaller is invalid. Signed-off-by: Florian Westphal <fwestphal@astaro.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: ctnetlink: add zone supportPatrick McHardy2010-02-152-19/+75
| | | | | | | | | | | | Parse and dump the conntrack zone in ctnetlink. Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: nf_conntrack: add support for "conntrack zones"Patrick McHardy2010-02-1525-85/+236
| | | | | | | | | | | | | | | | | | | | | | | | | | Normally, each connection needs a unique identity. Conntrack zones allow to specify a numerical zone using the CT target, connections in different zones can use the same identity. Example: iptables -t raw -A PREROUTING -i veth0 -j CT --zone 1 iptables -t raw -A OUTPUT -o veth1 -j CT --zone 1 Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: nf_conntrack: pass template to l4proto ->error() handlerPatrick McHardy2010-02-158-11/+15
| | | | | | | | | | | | | | The error handlers might need the template to get the conntrack zone introduced in the next patches to perform a conntrack lookup. Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: xtables: add const qualifiersJan Engelhardt2010-02-154-136/+168
| | | | | | | | | | | | This should make it easier to remove redundant arguments later. Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
| * netfilter: xtables: constify args in compat copying functionsJan Engelhardt2010-02-158-22/+22
| | | | | | | | Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
| * netfilter: xtables: print details on size mismatchJan Engelhardt2010-02-151-2/+6
| | | | | | | | | | | | | | Print which revision has been used and which size are which (kernel/user) for easier debugging. Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
| * netfilter: get rid of the grossness in netfilter.hJan Engelhardt2010-02-151-17/+28
| | | | | | | | | | | | | | GCC is now smart enough to follow the inline trail correctly. vmlinux size remain the same. Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
| * netfilter: reduce NF_HOOK by one argumentJan Engelhardt2010-02-151-9/+5
| | | | | | | | | | | | No changes in vmlinux filesize. Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
| * netfilter: iptables: remove unused function argumentsJan Engelhardt2010-02-152-14/+6
| | | | | | | | Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
| * netfilter: xt_recent: inform user when hitcount is too largeJan Engelhardt2010-02-151-2/+6
| | | | | | | | | | | | | | | | | | It is one of these things that iptables cannot catch and which can cause "Invalid argument" to be printed. Without a hint in dmesg, it is not going to be helpful. Signed-off-by: Jan Engelhardt <jengelh@medozas.de> Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: don't use INIT_RCU_HEAD()Alexey Dobriyan2010-02-123-3/+0
| | | | | | | | | | | | | | | | call_rcu() will unconditionally reinitialize RCU head anyway. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
| * netfilter: nf_conntrack: elegantly simplify nf_ct_exp_net()Alexey Dobriyan2010-02-121-5/+1
| | | | | | | | | | | | | | Remove #ifdef at nf_ct_exp_net() by using nf_ct_net(). Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Patrick McHardy <kaber@trash.net>