summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-03-04perf probe: Correct probe syntax on command line helpMasami Hiramatsu
Move @SRC right after FUNC in syntax according to syntax change on command line help. Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: systemtap <systemtap@sources.redhat.com> Cc: DLE <dle-develop@lists.sourceforge.net> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Mike Galbraith <efault@gmx.de> Cc: K.Prasad <prasad@linux.vnet.ibm.com> LKML-Reference: <20100304033843.3819.10087.stgit@localhost6.localdomain6> Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-03-04SLUB: Fix per-cpu merge conflictStephen Rothwell
The slab tree adds a percpu variable usage case (commit 9dfc6e68bfe6ee452efb1a4e9ca26a9007f2b864 "SLUB: Use this_cpu operations in slub"), but the percpu tree removes the prefixing of percpu variables (commit dd17c8f72993f9461e9c19250e3f155d6d99df22 "percpu: remove per_cpu__ prefix"), thus causing the following compilation error: CC mm/slub.o mm/slub.c: In function ‘alloc_kmem_cache_cpus’: mm/slub.c:2078: error: implicit declaration of function ‘per_cpu_var’ mm/slub.c:2078: warning: assignment makes pointer from integer without a cast make[1]: *** [mm/slub.o] Error 1 Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
2010-03-04Merge branches 'slab/cleanups', 'slab/failslab', 'slab/fixes' and ↵Pekka Enberg
'slub/percpu' into slab-for-linus
2010-03-04MAINTAINERS: Add netdev to bridge entry.David S. Miller
Noticed by Ingo Molnar. Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04cxgb3: fix hot plug removal crashDivy Le Ray
queue restart tasklets need to be stopped after napi handlers are stopped since the latter can restart them. So stop them after stopping napi. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04gianfar: Fix TX ring processing on SMP machinesAnton Vorontsov
Starting with commit a3bc1f11e9b867a4f49505 ("gianfar: Revive SKB recycling") gianfar driver sooner or later stops transmitting any packets on SMP machines. start_xmit() prepares new skb for transmitting, generally it does three things: 1. sets up all BDs (marks them ready to send), except the first one. 2. stores skb into tx_queue->tx_skbuff so that clean_tx_ring() would cleanup it later. 3. sets up the first BD, i.e. marks it ready. Here is what clean_tx_ring() does: 1. reads skbs from tx_queue->tx_skbuff 2. checks if the *last* BD is ready. If it's still ready [to send] then it it isn't transmitted, so clean_tx_ring() returns. Otherwise it actually cleanups BDs. All is OK. Now, if there is just one BD, code flow: - start_xmit(): stores skb into tx_skbuff. Note that the first BD (which is also the last one) isn't marked as ready, yet. - clean_tx_ring(): sees that skb is not null, *and* its lstatus says that it is NOT ready (like if BD was sent), so it cleans it up (bad!) - start_xmit(): marks BD as ready [to send], but it's too late. We can fix this simply by reordering lstatus/tx_skbuff writes. Reported-by: Martyn Welch <martyn.welch@ge.com> Bisected-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Tested-by: Paul Gortmaker <paul.gortmaker@windriver.com> Tested-by: Martyn Welch <martyn.welch@ge.com> Cc: Sandeep Gopalpet <Sandeep.Kumar@freescale.com> Cc: Stable <stable@vger.kernel.org> [2.6.33] Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04r8169: use correct barrier between cacheable and non-cacheable memoryDavid Dillow
r8169 needs certain writes to be visible to other CPUs or the NIC before touching the hardware, but was using smp_wmb() which is only required to order cacheable memory access. Switch to wmb() which is required to order both cacheable and non-cacheable memory. Noticed by Catalin Marinas and Paul Mackerras. Signed-off-by: David Dillow <dave@thedillows.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04tipc: Fix oops on send prior to entering networked mode (v3)Neil Horman
Fix TIPC to disallow sending to remote addresses prior to entering NET_MODE user programs can oops the kernel by sending datagrams via AF_TIPC prior to entering networked mode. The following backtrace has been observed: ID: 13459 TASK: ffff810014640040 CPU: 0 COMMAND: "tipc-client" [exception RIP: tipc_node_select_next_hop+90] RIP: ffffffff8869d3c3 RSP: ffff81002d9a5ab8 RFLAGS: 00010202 RAX: 0000000000000001 RBX: 0000000000000001 RCX: 0000000000000001 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000001001001 RBP: 0000000001001001 R8: 0074736575716552 R9: 0000000000000000 R10: ffff81003fbd0680 R11: 00000000000000c8 R12: 0000000000000008 R13: 0000000000000001 R14: 0000000000000001 R15: ffff810015c6ca00 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 RIP: 0000003cbd8d49a3 RSP: 00007fffc84e0be8 RFLAGS: 00010206 RAX: 000000000000002c RBX: ffffffff8005d116 RCX: 0000000000000000 RDX: 0000000000000008 RSI: 00007fffc84e0c00 RDI: 0000000000000003 RBP: 0000000000000000 R8: 00007fffc84e0c10 R9: 0000000000000010 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fffc84e0d10 R14: 0000000000000000 R15: 00007fffc84e0c30 ORIG_RAX: 000000000000002c CS: 0033 SS: 002b What happens is that, when the tipc module in inserted it enters a standalone node mode in which communication to its own address is allowed <0.0.0> but not to other addresses, since the appropriate data structures have not been allocated yet (specifically the tipc_net pointer). There is nothing stopping a client from trying to send such a message however, and if that happens, we attempt to dereference tipc_net.zones while the pointer is still NULL, and explode. The fix is pretty straightforward. Since these oopses all arise from the dereference of global pointers prior to their assignment to allocated values, and since these allocations are small (about 2k total), lets convert these pointers to static arrays of the appropriate size. All the accesses to these bits consider 0/NULL to be a non match when searching, so all the lookups still work properly, and there is no longer a chance of a bad dererence anywhere. As a bonus, this lets us eliminate the setup/teardown routines for those pointers, and elimnates the need to preform any locking around them to prevent access while their being allocated/freed. I've updated the tipc_net structure to behave this way to fix the exact reported problem, and also fixed up the tipc_bearers and media_list arrays to fix an obvious simmilar problem that arises from issuing tipc-config commands to manipulate bearers/links prior to entering networked mode I've tested this for a few hours by running the sanity tests and stress test with the tipcutils suite, and nothing has fallen over. There have been a few lockdep warnings, but those were there before, and can be addressed later, as they didn't actually result in any deadlock. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> CC: Allan Stephens <allan.stephens@windriver.com> CC: David S. Miller <davem@davemloft.net> CC: tipc-discussion@lists.sourceforge.net bearer.c | 37 ++++++------------------------------- bearer.h | 2 +- net.c | 25 ++++--------------------- 3 files changed, 11 insertions(+), 53 deletions(-) Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04gre: fix hard header destination address checkingTimo Teräs
ipgre_header() can be called with zero daddr when the gre device is configured as multipoint tunnel and still has the NOARP flag set (which is typically cleared by the userspace arp daemon). If the NOARP packets are not dropped, ipgre_tunnel_xmit() will take rt->rt_gateway (= NBMA IP) and use that for route look up (and may lead to bogus xfrm acquires). The multicast address check is removed as sending to multicast group should be ok. In fact, if gre device has a multicast address as destination ipgre_header is always called with multicast address. Signed-off-by: Timo Teras <timo.teras@iki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04net: add scheduler sync hint to tcp_prequeue().Mike Galbraith
Decreases the odds wakee will suffer from frequent cache misses. Signed-off-by: Mike Galbraith <efault@gmx.de> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04IPv6: fix race between cleanup and add/delete addressstephen hemminger
This solves a potential race problem during the cleanup process. The issue is that addrconf_ifdown() needs to traverse address list, but then drop lock to call the notifier. The version in -next could get confused if add/delete happened during this window. Original code (2.6.32 and earlier) was okay because all addresses were always deleted. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04IPv6: addrconf notify when address is unavailablestephen hemminger
My recent change in net-next to retain permanent addresses caused regression. Device refcount would not go to zero when device was unregistered because left over anycast reference would hold ipv6 dev reference which would hold device references... The correct procedure is to call notify chain when address is no longer available for use. When interface comes back DAD timer will notify back that address is available. Also, link local addresses should be purged when interface is brought down. The address might be changed. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04IPv6: addrconf timer racestephen hemminger
The Router Solicitation timer races with device state changes because it doesn't lock the device. Use local variable to avoid one repeated dereference. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04IPv6: addrconf dad timer unnecessary bh_disablestephen hemminger
Timer code runs in bottom half, so there is no need for using _bh form of locking. Also check if device is not ready to avoid race with address that is no longer active. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-04virtio: console: Use better variable names for fill_queue operationAmit Shah
We want to keep track of the number of buffers added to a vq. Use nr_added_bufs instead of 'ret'. Also, the users of fill_queue() overloaded a local 'err' variable to check the numbers of buffers allocated. Use nr_added_bufs instead of err. Signed-off-by: Amit Shah <amit.shah@redhat.com> Reported-by: Juan Quintela <quintela@redhat.com>
2010-03-04virtio: console: Fix type of 'len' as unsigned intAmit Shah
We declare 'len' as int type but it should be 'unsigned int', as get_buf() wants it to be. Signed-off-by: Amit Shah <amit.shah@redhat.com> Reported-by: Juan Quintela <quintela@redhat.com>
2010-03-04sh: Fix up flush_cache_vmap() on SMP.Paul Mundt
flush_cache_all() uses broadcast IPIs, so we can't wrap in to that when IRQs are disabled. The local cache flush manages to do what we need here anyways, so just switch to that. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2010-03-04sh: fix up MMU reset with variable PMB mapping sizes.Paul Mundt
Presently we run in to issues with the MMU resetting the CPU when variable sized mappings are employed. This takes a slightly more aggressive approach to keeping the TLB and cache state sane before establishing the mappings in order to cut down on races observed on SMP configurations. At the same time, we bump the VMA range up to the 0xb000...0xc000 range, as there still seems to be some undocumented behaviour in setting up variable mappings in the 0xa000...0xb000 range, resulting in reset by the TLB. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2010-03-03Merge branch 'master' of ↵David S. Miller
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
2010-03-04ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctlAkira Fujita
a) Fix sparse warning in ext4_ioctl() b) Remove unneeded variable in mext_leaf_block() c) Fix spelling typo in mext_check_arguments() Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2010-03-04ext4: Fix the NULL reference in double_down_write_data_sem()Akira Fujita
If EXT4_IOC_MOVE_EXT ioctl is called with NULL donor_fd, fget() in ext4_ioctl() gets inappropriate file structure for donor; so we need to do this check earlier, before calling double_down_write_data_sem(). Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2010-03-04ext4: Fix insertion point of extent in mext_insert_across_blocks()Akira Fujita
If the leaf node has 2 extent space or fewer and EXT4_IOC_MOVE_EXT ioctl is called with the file offset where after the 2nd extent covers, mext_insert_across_blocks() always tries to insert extent into the first extent. As a result, the file gets corrupted because of wrong extent order. The patch fixes this problem. Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2010-03-04padata: Allocate the cpumask for the padata instanceSteffen Klassert
The cpumask of the padata instance was used without allocated. This caused boot crashes if CONFIG_CPUMASK_OFFSTACK is enabled. This patch fixes this by doing proper allocation for this cpumask. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2010-03-03ext4: consolidate in_range() definitionsAkinobu Mita
There are duplicate macro definitions of in_range() in mballoc.h and balloc.c. This consolidates these two definitions into ext4.h, and changes extents.c to use in_range() as well. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: Andreas Dilger <adilger@sun.com>
2010-03-03ext4: cleanup to use ext4_grp_offs_to_block()Akinobu Mita
More cleanup to convert open-coded calculations of the first block number of a free extent to use ext4_grp_offs_to_block() instead. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: Andreas Dilger <adilger@sun.com>
2010-03-03ext4: cleanup to use ext4_group_first_block_no()Akinobu Mita
This is a cleanup and simplification patch which takes some open-coded calculations to calculate the first block number of a group and converts them to use the (already defined) ext4_group_first_block_no() function. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: Andreas Dilger <adilger@sun.com>
2010-03-03Merge branch 'coh' into dmaengineDan Williams
2010-03-03ioat: cleanup ->timer_fn() and ->cleanup_fn() prototypesDan Williams
If the calling convention of ->timer_fn() and ->cleanup_fn() are unified across hardware versions we can drop parameters to ioat_init_channel() and unify ioat_is_dma_complete() implementations. Both ->timer_fn() and ->cleanup_fn() are modified to expect a struct dma_chan pointer. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-03-03ioat3: interrupt coalescingDan Williams
The hardware automatically disables further interrupts after each event until rearmed. This allows a delay to be injected between the occurence of the interrupt and the running of the cleanup routine. The delay is scaled by the descriptor backlog and then written to the INTRDELAY register which specifies the number of microseconds to hold off interrupt delivery after an interrupt event occurs. According to powertop this reduces the interrupt rate from ~5000 intr/s to ~150 intr/s per without affecting throughput (simple dd to a raid6 array). Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-03-03ioat: close potential BUG_ON race in the descriptor cleanup pathDan Williams
Since ioat_cleanup_preamble() and the update of the last completed descriptor are not synchronized there is a chance that two cleanup threads can see descriptors to clean. If the first cleans up all pending descriptors then the second will trigger the BUG_ON. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2010-03-03Prioritize synchronous signals over 'normal' signalsLinus Torvalds
This makes sure that we pick the synchronous signals caused by a processor fault over any pending regular asynchronous signals sent to use by [t]kill(). This is not strictly required semantics, but it makes it _much_ easier for programs like Wine that expect to find the fault information in the signal stack. Without this, if a non-synchronous signal gets picked first, the delayed asynchronous signal will have its signal context pointing to the new signal invocation, rather than the instruction that caused the SIGSEGV or SIGBUS in the first place. This is not all that pretty, and we're discussing making the synchronous signals more explicit rather than have these kinds of implicit preferences of SIGSEGV and friends. See for example http://bugzilla.kernel.org/show_bug.cgi?id=15395 for some of the discussion. But in the meantime this is a simple and fairly straightforward work-around, and the whole if (x & Y) x &= Y; thing can be compiled into (and gcc does do it) just three instructions: movq %rdx, %rax andl $Y, %eax cmovne %rax, %rdx so it is at least a simple solution to a subtle issue. Reported-and-tested-by: Pavel Vilim <wylda@volny.cz> Acked-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-03staging: dt3155: revert u_long to u64 usageH Hartley Sweeten
Commit 9c1390a923ddb6fba1cf9d7440743369140c6d8a replaced all u_int's with u32 and u_long's with u64. Unfortunately, a u_long is still only 32-bits so they should have been replaced with u32 also. This can be verified by the register definitions in dt3155_io.h. It specifically states that the memory mapped registers are 32-bit. Fix this by changing all the u64 to u32. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Greg Kroah-Hartman <greg@kroah.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: drivers.c: Checkpatch cleanupAndrea Gelmini
WARNING: Use #include <linux/io.h> instead of <asm/io.h> +#include <asm/io.h> WARNING: braces {} are not necessary for any arm of this statement + if (dev->driver) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (insn->insn == INSN_READ) { + data[0] = (new_data[1] >> (chan - base_bitfield_channel)) & 1; + } WARNING: braces {} are not necessary for single statement blocks + if (async->prealloc_buf && async->prealloc_bufsz == new_size) { + return 0; + } WARNING: braces {} are not necessary for single statement blocks + if (async->buf_page_list[i].virt_addr == NULL) { + break; + } WARNING: braces {} are not necessary for single statement blocks + if ((int)(async->buf_write_alloc_count + nbytes - free_end) > 0) { + nbytes = free_end - async->buf_write_alloc_count; + } WARNING: braces {} are not necessary for single statement blocks + if ((int)(async->buf_write_alloc_count + nbytes - free_end) > 0) { + nbytes = 0; + } WARNING: braces {} are not necessary for single statement blocks + if (async->buf_write_ptr >= async->prealloc_bufsz) { + async->buf_write_ptr %= async->prealloc_bufsz; + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: arlan: arlan.h: more Checkpatch cleanupAndrea Gelmini
ERROR: do not use C99 // comments + volatile u_char radioModule;// shows EEPROM, can be overridden at 0x111 ERROR: do not use C99 // comments + volatile u_char defaultChannelSet; // shows EEProm, can be overriiden at 0x10A Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: arlan: Makefile: Checkpatch cleanupAndrea Gelmini
ERROR: trailing whitespace +obj-$(CONFIG_ARLAN) += arlan.o $ Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: rt3070: md4.h: Checkpatch cleanupAndrea Gelmini
WARNING: space prohibited between function name and open parenthesis '(' +void MD4Init (MD4_CTX *); WARNING: space prohibited between function name and open parenthesis '(' +void MD4Update (MD4_CTX *, u8 *, UINT); WARNING: space prohibited between function name and open parenthesis '(' +void MD4Final (u8 [16], MD4_CTX *); ERROR: do not use C99 // comments +#endif //__MD4_H__ Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: arlan: arlan.h: Checkpatch cleanupAndrea Gelmini
ERROR: trailing whitespace + * Copyright (C) 1998 Elmer.Joandi@ut.ee, +37-255-13500^I$ WARNING: Use #include <linux/io.h> instead of <asm/io.h> +#include <asm/io.h> ERROR: do not use C99 // comments +//#define ARLAN_DEBUGGING 1 ERROR: "foo * bar" should be "foo *bar" +extern int arlan_command(struct net_device * dev, int command); ERROR: trailing whitespace + $ ERROR: trailing whitespace +#define IFDEBUG( L ) if ( (L) & arlan_debug ) $ ERROR: space prohibited after that open parenthesis '(' +#define IFDEBUG( L ) if ( (L) & arlan_debug ) ERROR: space prohibited before that close parenthesis ')' +#define IFDEBUG( L ) if ( (L) & arlan_debug ) ERROR: trailing whitespace +#define ARLAN_FAKE_HDR_LEN 12 $ ERROR: space required after that ',' (ctx:VxV) + #define ARLAN_DEBUG(a,b) printk(KERN_DEBUG a, b) ^ ERROR: trailing whitespace +^I#define ARLAN_DEBUG(a,b) $ ERROR: space required after that ',' (ctx:VxV) + #define ARLAN_DEBUG(a,b) ^ ERROR: open brace '{' following struct go on the same line +struct arlan_shmem +{ ERROR: trailing whitespace + /* Header Signature */ $ ERROR: trailing whitespace + $ ERROR: trailing whitespace + $ ERROR: trailing whitespace + $ ERROR: trailing whitespace + $ ERROR: trailing whitespace + int systemId; $ ERROR: open brace '{' following struct go on the same line +struct TxParam +{ ERROR: "foo * bar" should be "foo *bar" + struct arlan_shmem __iomem * card; ERROR: "foo * bar" should be "foo *bar" + struct arlan_shmem * conf; ERROR: trailing whitespace + struct arlan_conf_stru * Conf;^I $ ERROR: "foo * bar" should be "foo *bar" + struct arlan_conf_stru * Conf; ERROR: trailing whitespace + $ ERROR: space required after that ',' (ctx:VxV) +#define READSHM(to,from,atype) {\ ^ ERROR: space required after that ',' (ctx:VxV) +#define READSHM(to,from,atype) {\ ^ ERROR: space required after that ',' (ctx:VxO) + memcpy_fromio(&(tmp),&(from),sizeof(atype));\ ^ ERROR: space required before that '&' (ctx:OxV) + memcpy_fromio(&(tmp),&(from),sizeof(atype));\ ^ ERROR: space required after that ',' (ctx:VxV) + memcpy_fromio(&(tmp),&(from),sizeof(atype));\ ^ ERROR: space required after that ',' (ctx:VxV) +#define READSHMEM(from,atype)\ ^ ERROR: space required after that ',' (ctx:VxV) +#define WRITESHM(to,from,atype) \ ^ ERROR: space required after that ',' (ctx:VxV) +#define WRITESHM(to,from,atype) \ ^ ERROR: space required after that ',' (ctx:VxO) + memcpy_toio(&(to),&tmpSHM,sizeof(atype));\ ^ ERROR: space required before that '&' (ctx:OxV) + memcpy_toio(&(to),&tmpSHM,sizeof(atype));\ ^ ERROR: space required after that ',' (ctx:VxV) + memcpy_toio(&(to),&tmpSHM,sizeof(atype));\ ^ ERROR: space required after that ',' (ctx:VxV) +#define DEBUGSHM(levelSHM,stringSHM,stuff,atype) \ ^ ERROR: space required after that ',' (ctx:VxV) +#define DEBUGSHM(levelSHM,stringSHM,stuff,atype) \ ^ ERROR: space required after that ',' (ctx:VxV) +#define DEBUGSHM(levelSHM,stringSHM,stuff,atype) \ ^ ERROR: space required after that ',' (ctx:VxO) + memcpy_fromio(&tmpSHM,&(stuff),sizeof(atype));\ ^ ERROR: space required before that '&' (ctx:OxV) + memcpy_fromio(&tmpSHM,&(stuff),sizeof(atype));\ ^ ERROR: space required after that ',' (ctx:VxV) + memcpy_fromio(&tmpSHM,&(stuff),sizeof(atype));\ ^ ERROR: space required after that ',' (ctx:VxV) + IFDEBUG(levelSHM) printk(stringSHM,tmpSHM);\ ^ ERROR: space required after that ',' (ctx:VxO) + writeb(val,&(to)) ^ ERROR: space required before that '&' (ctx:OxV) + writeb(val,&(to)) ^ ERROR: space required after that ',' (ctx:VxO) + writew(val,&(to)) ^ ERROR: space required before that '&' (ctx:OxV) + writew(val,&(to)) ^ ERROR: space required after that ',' (ctx:VxO) + writel(val,&(to)) ^ ERROR: space required before that '&' (ctx:OxV) + writel(val,&(to)) ^ ERROR: space prohibited after that open parenthesis '(' + ( ( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationMode) > 0) && \ ERROR: space prohibited after that open parenthesis '(' + ( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationStatus) == 0) ) ERROR: space prohibited before that close parenthesis ')' + ( READSHMB(((struct arlan_private *)netdev_priv(dev))->card->registrationStatus) == 0) ) ERROR: code indent should use tabs where possible + ^IREADSHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage)$ ERROR: space required before the open brace '{' +#define writeControlRegister(dev, v){\ ERROR: space required after that ',' (ctx:WxV) + WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage ,((v) &0xF) );\ ^ ERROR: need consistent spacing around '&' (ctx:WxV) + WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage ,((v) &0xF) );\ ^ ERROR: space prohibited before that close parenthesis ')' + WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->cntrlRegImage ,((v) &0xF) );\ ERROR: space required after that ',' (ctx:WxV) + WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->controlRegister ,(v) );} ^ ERROR: space required after that ';' (ctx:VxV) + WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->controlRegister ,(v) );} ^ ERROR: space prohibited before that close parenthesis ')' + WRITESHMB(((struct arlan_private *)netdev_priv(dev))->card->controlRegister ,(v) );} WARNING: suspect code indent for conditional statements (3, 6) + if (cr & ARLAN_CHANNEL_ATTENTION){ \ + writeControlRegister(dev, (cr & ~ARLAN_CHANNEL_ATTENTION));\ ERROR: space required before the open brace '{' + if (cr & ARLAN_CHANNEL_ATTENTION){ \ ERROR: space required after that close brace '}' + }else \ ERROR: space required before the open brace '{' +#define clearChannelAttention(dev){ \ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CHANNEL_ATTENTION);} ^ ERROR: space required after that ';' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CHANNEL_ATTENTION);} ^ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_RESET);} ^ ERROR: space required after that ';' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_RESET);} ^ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_RESET);} ^ ERROR: space required after that ';' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_RESET);} ^ ERROR: space required before the open brace '{' +#define setInterruptEnable(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_INTERRUPT_ENABLE) ;} ^ ERROR: space required after that ';' (ctx:WxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_INTERRUPT_ENABLE) ;} ^ ERROR: space required before the open brace '{' +#define clearInterruptEnable(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_INTERRUPT_ENABLE) ;} ^ ERROR: space required after that ';' (ctx:WxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_INTERRUPT_ENABLE) ;} ^ ERROR: space required before the open brace '{' +#define setClearInterrupt(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_CLEAR_INTERRUPT) ;} ^ ERROR: space required after that ';' (ctx:WxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_CLEAR_INTERRUPT) ;} ^ ERROR: space required before the open brace '{' +#define clearClearInterrupt(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CLEAR_INTERRUPT);} ^ ERROR: space required after that ';' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_CLEAR_INTERRUPT);} ^ ERROR: space required before the open brace '{' +#define setPowerOff(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) | (ARLAN_POWER && ARLAN_ACCESS));\ ^ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_ACCESS);} ^ ERROR: space required after that ';' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_ACCESS);} ^ ERROR: space required before the open brace '{' +#define setPowerOn(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~(ARLAN_POWER)); } ^ ERROR: space required before the open brace '{' +#define arlan_lock_card_access(dev){\ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_ACCESS);} ^ ERROR: space required after that ';' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) & ~ARLAN_ACCESS);} ^ ERROR: space required before the open brace '{' +#define arlan_unlock_card_access(dev){\ ERROR: trailing whitespace + writeControlRegister(dev,readControlRegister(dev) | ARLAN_ACCESS ); } $ ERROR: space required after that ',' (ctx:VxV) + writeControlRegister(dev,readControlRegister(dev) | ARLAN_ACCESS ); } ^ ERROR: space prohibited before that close parenthesis ')' + writeControlRegister(dev,readControlRegister(dev) | ARLAN_ACCESS ); } ERROR: trailing whitespace + $ ERROR: trailing whitespace + $ Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: dt2801.c: Checkpatch cleanupAndrea Gelmini
ERROR: code indent should use tabs where possible + 0 = [-10,10]$ ERROR: code indent should use tabs where possible + 0 = [-10,10]$ WARNING: braces {} are not necessary for single statement blocks + if (stat & (DT_S_COMPOSITE_ERROR | DT_S_READY)) { + return stat; + } WARNING: braces {} are not necessary for single statement blocks + if (stat & DT_S_COMPOSITE_ERROR) { + return stat; + } WARNING: braces {} are not necessary for single statement blocks + if (stat & DT_S_READY) { + return 0; + } WARNING: braces {} are not necessary for single statement blocks + if (stat & DT_S_COMPOSITE_ERROR) { + return stat; + } WARNING: braces {} are not necessary for single statement blocks + if (stat & DT_S_READY) { + return 0; + } WARNING: braces {} are not necessary for single statement blocks + if (!(stat & DT_S_READY)) { + printk("dt2801: !ready in dt2801_writecmd(), ignoring\n"); + } WARNING: braces {} are not necessary for single statement blocks + if (!timeout) { + printk("dt2801: timeout 1 status=0x%02x\n", stat); + } WARNING: braces {} are not necessary for single statement blocks + if (!timeout) { + printk("dt2801: timeout 2 status=0x%02x\n", stat); + } WARNING: braces {} are not necessary for any arm of this statement + if (stat == -ETIME) { [...] + } else { [...] Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: dmm32at.c: Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for any arm of this statement + if (data[0] == COMEDI_OUTPUT) { [...] + } else { [...] Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: cb_pcimdas.c: more Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for single statement blocks + if (fifo_empty) { + break; + } WARNING: braces {} are not necessary for single statement blocks + if (irq) { + printk(", irq %u", irq); + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: das6402.c: Checkpatch cleanupAndrea Gelmini
ERROR: Macros with complex values should be enclosed in parenthesis +#define N_WORDS 3000*64 Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: hwdrv_apci3120.c: Checkpatch cleanupAndrea Gelmini
ERROR: do not initialise statics to 0 or NULL +static unsigned int ui_Temp = 0; WARNING: braces {} are not necessary for any arm of this statement + if (data[1]) { [...] + } else [...] WARNING: braces {} are not necessary for single statement blocks + for (i = 0; i < devpriv->ui_AiNbrofChannels; i++) { + devpriv->ui_AiChannelList[i] = data[4 + i]; + } ERROR: that open brace { should be on the previous line + } else /* EOC */ + { WARNING: braces {} are not necessary for any arm of this statement + if (data[1]) { [...] + } else { [...] ERROR: that open brace { should be on the previous line + if (insn->unused[0] == 222) /* second insn read */ + { WARNING: braces {} are not necessary for single statement blocks + for (i = 0; i < insn->n; i++) { + data[i] = devpriv->ui_AiReadData[i]; + } WARNING: braces {} are not necessary for single statement blocks + if (cmd->start_src != TRIG_NOW && cmd->start_src != TRIG_EXT) { + err++; + } ERROR: that open brace { should be on the previous line + if (cmd->scan_begin_src == TRIG_TIMER) /* Test Delay timing */ + { ERROR: that open brace { should be on the previous line + if (cmd->convert_src == TRIG_TIMER) /* Test Acquisition timing */ + { WARNING: braces {} are not necessary for any arm of this statement + if (cmd->stop_src == TRIG_COUNT) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (devpriv->b_ExttrigEnable == APCI3120_ENABLE) { + i_APCI3120_ExttrigEnable(dev); /* activate EXT trigger */ + } WARNING: braces {} are not necessary for single statement blocks + if (dmalen0 > (devpriv->ui_AiDataLength)) { + dmalen0 = devpriv->ui_AiDataLength; + } WARNING: braces {} are not necessary for single statement blocks + if (dmalen1 > (devpriv->ui_AiDataLength)) { + dmalen1 = devpriv->ui_AiDataLength; + } WARNING: braces {} are not necessary for any arm of this statement + if (CR_RANGE(chanlist[i]) < APCI3120_BIPOLAR_RANGES) { [...] + } else { [...] ERROR: that open brace { should be on the previous line + if (devpriv->b_EocEosInterrupt == APCI3120_ENABLE) /* enable this in without DMA ??? */ + { ERROR: that open brace { should be on the previous line + if (data[0] == APCI3120_TIMER) /* initialize timer */ + { ERROR: that open brace { should be on the previous line + } else /* Initialize Watch dog */ + { ERROR: that open brace { should be on the previous line + if (data[0] == 2) /* write new value */ + { ERROR: that open brace { should be on the previous line + if (devpriv->b_Timer2Mode == APCI3120_TIMER) /* start timer */ + { ERROR: that open brace { should be on the previous line + } else /* start watch dog */ + { ERROR: that open brace { should be on the previous line + if (devpriv->b_Timer2Mode == APCI3120_TIMER) /* start timer */ + { ERROR: that open brace { should be on the previous line + } else /* Read watch dog status */ + { WARNING: braces {} are not necessary for single statement blocks + if (!devpriv->b_OutputMemoryStatus) { + ui_Temp = 0; + + } /* if(!devpriv->b_OutputMemoryStatus ) */ ERROR: code indent should use tabs where possible + data[0] Value to be written$ ERROR: code indent should use tabs where possible + data[1] :1 Set digital o/p ON$ ERROR: code indent should use tabs where possible + data[1] 2 Set digital o/p OFF with memory ON$ ERROR: that open brace { should be on the previous line + if (ui_Range) /* if 1 then unipolar */ + { ERROR: that open brace { should be on the previous line + } else /* if 0 then bipolar */ + { ERROR: that open brace { should be on the previous line + do /* Waiting of DA_READY BIT */ + { Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: das08_cs.c: Checkpatch cleanupAndrea Gelmini
ERROR: code indent should use tabs where possible + NONE$ ERROR: do not initialise statics to 0 or NULL +static struct pcmcia_device *cur_dev = NULL; Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: contec_pci_dio.c: Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for single statement blocks + if (dev->iobase) { + comedi_pci_disable(devpriv->pci_dev); + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: cb_pcimdda.c: Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for any arm of this statement + if (it->options[2]) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (devpriv->registers) { + comedi_pci_disable(devpriv->pci_dev); + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: cb_pcimdas.c: Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for any arm of this statement + if (thisboard->has_dio) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (devpriv->BADR0) { + comedi_pci_disable(devpriv->pci_dev); + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: cb_pcidio.c: Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for single statement blocks + if (devpriv->dio_reg_base) { + comedi_pci_disable(devpriv->pci_dev); + } WARNING: braces {} are not necessary for single statement blocks + for (i = 0; i < thisboard->n_8255; i++) { + subdev_8255_cleanup(dev, dev->subdevices + i); + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: cb_pcidda.c: Checkpatch cleanupAndrea Gelmini
WARNING: braces {} are not necessary for single statement blocks + if (devpriv->dac) { + comedi_pci_disable(devpriv->pci_dev); + } WARNING: braces {} are not necessary for single statement blocks + if (inw_p(devpriv->dac + DACALIBRATION1) & SERIAL_OUT_BIT) { + value |= 1 << (value_width - i); + } WARNING: braces {} are not necessary for single statement blocks + for (i = 0; i < max_num_caldacs; i++) { + cal2_bits |= DESELECT_CALDAC_BIT(i); + } WARNING: braces {} are not necessary for single statement blocks + for (i = 0; i < max_num_caldacs; i++) { + cal2_bits |= DESELECT_CALDAC_BIT(i); + } Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: cb_pcidas.c: Checkpatch cleanupAndrea Gelmini
ERROR: "foo * bar" should be "foo *bar" + uint8_t * data); WARNING: braces {} are not necessary for single statement blocks + if (devpriv->s5933_config) { + comedi_pci_disable(devpriv->pci_dev); + } WARNING: braces {} are not necessary for single statement blocks + if (cmd->stop_src == TRIG_COUNT) { + devpriv->count = cmd->chanlist_len * cmd->stop_arg; + } WARNING: braces {} are not necessary for single statement blocks + if (cmd->stop_src == TRIG_COUNT) { + devpriv->ao_count = cmd->chanlist_len * cmd->stop_arg; + } WARNING: braces {} are not necessary for single statement blocks + if (cmd->stop_src == TRIG_COUNT) { + devpriv->ao_count -= num_points; + } WARNING: braces {} are not necessary for single statement blocks + if (dev->attached == 0) { + return IRQ_NONE; + } WARNING: braces {} are not necessary for single statement blocks + if ((status & (INT | EOAI | LADFUL | DAHFI | DAEMI)) == 0) { + comedi_error(dev, "spurious interrupt"); + } WARNING: braces {} are not necessary for single statement blocks + if (status & (DAHFI | DAEMI)) { + handle_ao_interrupt(dev, status); + } WARNING: braces {} are not necessary for single statement blocks + if (async->cmd.stop_src == TRIG_COUNT) { + devpriv->ao_count -= num_points; + } ERROR: "foo * bar" should be "foo *bar" + uint8_t * data) Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03Staging: comedi: hwdrv_apci1032.c: Checkpatch cleanupAndrea Gelmini
ERROR: do not initialise externals to 0 or NULL +unsigned int ui_InterruptStatus = 0; WARNING: braces {} are not necessary for single statement blocks + else { + outl(0x6, devpriv->iobase + APCI1032_DIGITAL_IP_IRQ); + } /* else if(data[1] == ADDIDATA_OR) */ WARNING: braces {} are not necessary for single statement blocks + if (data[1] == 1) { + *data = ui_InterruptStatus; + } /* if(data[1]==1) */ Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>