Commit Graph

2959 Commits

Author SHA1 Message Date
Tejun Heo
a4ab277320 staging/otus: include slab.h from usbdrv.h
drivers/staging/otus/usbdrv.h users use slab facilities.  Include
linux/slab.h from usbdrv.h.

Signed-off-by: Tejun Heo <tj@kernel.org>
2010-04-05 11:23:16 +09:00
Tejun Heo
5a0e3ad6af include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files.  percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.

percpu.h -> slab.h dependency is about to be removed.  Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability.  As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.

  http://userweb.kernel.org/~tj/misc/slabh-sweep.py

The script does the followings.

* Scan files for gfp and slab usages and update includes such that
  only the necessary includes are there.  ie. if only gfp is used,
  gfp.h, if slab is used, slab.h.

* When the script inserts a new include, it looks at the include
  blocks and try to put the new include such that its order conforms
  to its surrounding.  It's put in the include block which contains
  core kernel includes, in the same order that the rest are ordered -
  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
  doesn't seem to be any matching order.

* If the script can't find a place to put a new include (mostly
  because the file doesn't have fitting include block), it prints out
  an error message indicating which .h file needs to be added to the
  file.

The conversion was done in the following steps.

1. The initial automatic conversion of all .c files updated slightly
   over 4000 files, deleting around 700 includes and adding ~480 gfp.h
   and ~3000 slab.h inclusions.  The script emitted errors for ~400
   files.

2. Each error was manually checked.  Some didn't need the inclusion,
   some needed manual addition while adding it to implementation .h or
   embedding .c file was more appropriate for others.  This step added
   inclusions to around 150 files.

3. The script was run again and the output was compared to the edits
   from #2 to make sure no file was left behind.

4. Several build tests were done and a couple of problems were fixed.
   e.g. lib/decompress_*.c used malloc/free() wrappers around slab
   APIs requiring slab.h to be added manually.

5. The script was run on all .h files but without automatically
   editing them as sprinkling gfp.h and slab.h inclusions around .h
   files could easily lead to inclusion dependency hell.  Most gfp.h
   inclusion directives were ignored as stuff from gfp.h was usually
   wildly available and often used in preprocessor macros.  Each
   slab.h inclusion directive was examined and added manually as
   necessary.

6. percpu.h was updated not to include slab.h.

7. Build test were done on the following configurations and failures
   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
   distributed build env didn't work with gcov compiles) and a few
   more options had to be turned off depending on archs to make things
   build (like ipr on powerpc/64 which failed due to missing writeq).

   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
   * powerpc and powerpc64 SMP allmodconfig
   * sparc and sparc64 SMP allmodconfig
   * ia64 SMP allmodconfig
   * s390 SMP allmodconfig
   * alpha SMP allmodconfig
   * um on x86_64 SMP allmodconfig

8. percpu.h modifications were reverted so that it could be applied as
   a separate patch and serve as bisection point.

Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
2010-03-30 22:02:32 +09:00
Nick Bowler
05ad62a5ee Staging: et131x: Properly disable FC in txmac.
FC disable is bit 3 of the txmac ctl register, but commit 6720949d55
("Staging: et131x: Kil the txmac type") accidentally changed the code to
set bit 2 instead.

Signed-off-by: Nick Bowler <nbowler@draconx.ca>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-29 08:51:36 -07:00
Matthew Garrett
a19a6ee6ca backlight: Allow properties to be passed at registration
Values such as max_brightness should be set before backlights are
registered, but the current API doesn't allow that. Add a parameter to
backlight_device_register and update drivers to ensure that they
set this correctly.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-03-16 19:47:54 +00:00
Andi Kleen
0933e2d98d driver core: Convert some drivers to CLASS_ATTR_STRING
Convert some drivers who export a single string as class attribute
to the new class_attr_string functions. This removes redundant
code all over.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-07 17:04:48 -08:00
Andi Kleen
28812fe11a driver-core: Add attribute argument to class_attribute show/store
Passing the attribute to the low level IO functions allows all kinds
of cleanups, by sharing low level IO code without requiring
an own function for every piece of data.

Also drivers can extend the attributes with own data fields
and use that in the low level function.

This makes the class attributes the same as sysdev_class attributes
and plain attributes.

This will allow further cleanups in drivers.

Full tree sweep converting all users.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-07 17:04:48 -08:00
Linus Torvalds
8fe900b8c7 Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (368 commits)
  Staging: winbond: fix up wireless api errors
  Staging: dream: camera: sk5k3e2fx: fix code style issues
  Staging: dream: camera: msm_camera: fix code style issues
  Staging: wlan-ng: More checkpatch.pl error cleanups
  Staging: wlan-ng - checkpatch.pl fixups
  Staging: comedi: comedi_fops.c: Checkpatch cleanup
  Staging: comedi: fix suspect code indent in ni_labpc.c
  Staging: comedi: fix yet another brace coding style issue in ni_labpc.c
  Staging: comedi: fix another brace coding style issues in ni_labpc.c
  Staging: comedi: fix brace coding style issue in ni_labpc.c
  Staging: comedi: poc: Adding some KERN_ facility level
  Staging: dream: camera: msm_camera: fix some code style issues
  Staging: wlan-ng: fix most of the style issues in hfa384x.h
  Staging: dream: camera: msm_camera: fix coding style issues
  Staging: comedi: fix bracing coding style and 80 character issues in ni_660x.c
  Staging: comedi: fix bracing coding style issue in ni_65xx.c
  Staging: comedi: pcmad: Checkpatch cleanups
  Staging: comedi: poc: fix coding style issues
  staging: dt3155: revert u_long to u64 usage
  Staging: comedi: drivers.c: Checkpatch cleanup
  ...
2010-03-07 15:49:12 -08:00
Linus Torvalds
e213e26ab3 Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)
  quota: stop using QUOTA_OK / NO_QUOTA
  dquot: cleanup dquot initialize routine
  dquot: move dquot initialization responsibility into the filesystem
  dquot: cleanup dquot drop routine
  dquot: move dquot drop responsibility into the filesystem
  dquot: cleanup dquot transfer routine
  dquot: move dquot transfer responsibility into the filesystem
  dquot: cleanup inode allocation / freeing routines
  dquot: cleanup space allocation / freeing routines
  ext3: add writepage sanity checks
  ext3: Truncate allocated blocks if direct IO write fails to update i_size
  quota: Properly invalidate caches even for filesystems with blocksize < pagesize
  quota: generalize quota transfer interface
  quota: sb_quota state flags cleanup
  jbd: Delay discarding buffers in journal_unmap_buffer
  ext3: quota_write cross block boundary behaviour
  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota
  quota: split out compat_sys_quotactl support from quota.c
  quota: split out netlink notification support from quota.c
  quota: remove invalid optimization from quota_sync_all
  ...

Fixed trivial conflicts in fs/namei.c and fs/ufs/inode.c
2010-03-05 13:20:53 -08:00
Christoph Hellwig
b43fa8284d dquot: cleanup dquot transfer routine
Get rid of the transfer dquot operation - it is now always called from
the filesystem and if a filesystem really needs it's own (which none
currently does) it can just call into it's own routine directly.

Rename the now static low-level dquot_transfer helper to __dquot_transfer
and vfs_dq_transfer to dquot_transfer to have a consistent namespace,
and make the new dquot_transfer return a normal negative errno value
which all callers expect.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
2010-03-05 00:20:29 +01:00
Greg Kroah-Hartman
a71b676fa9 Staging: winbond: fix up wireless api errors
The wireless core made a number of api changes that caused
the winbond driver to break.  This patch fixes those errors by
making the needed changes to the driver.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 08:44:13 -08:00
Greg Kroah-Hartman
f341dddf1d Staging: merge staging patches into Linus's main branch
There were a number of patches that went into Linus's
tree already that conflicted with other changes in the
staging branch.  This merge resolves those merge conflicts.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 08:39:02 -08:00
Greg Kroah-Hartman
b02957d58a Staging: Merge two branches of coding style fixes together
Turns out that multiple people sent pretty much the same patch
for the same staging drivers.  Commit these in two different
branches and merge them together to get a more complete coverage
of the cleanup and properly credit everyone for the work that they
did.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 08:14:54 -08:00
Chihau Chau
b94c765ac3 Staging: dream: camera: sk5k3e2fx: fix code style issues
This fixes some code style issues about assignments in if conditions.

Signed-off-by: Chihau Chau <chihau@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:02 -08:00
Chihau Chau
df84f941e9 Staging: dream: camera: msm_camera: fix code style issues
This fixes some code style issues like to add one space after a while or
switch statement and before a open parenthesis '(', and to include KERN_
facility level in the printk() functions.

Signed-off-by: Chihau Chau <chihau@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:02 -08:00
Andrew Elwell
3f4b4e7797 Staging: wlan-ng: More checkpatch.pl error cleanups
Signed-off-by: Andrew Elwell <Andrew.Elwell@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:02 -08:00
Andrew Elwell
ef1a0ed7f1 Staging: wlan-ng - checkpatch.pl fixups
Basic fixups in the staging/wlan-ng directory.
(First kernel patch - thanks to FOSDEM talk)

Signed-off-by: Andrew Elwell <Andrew.Elwell@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:02 -08:00
Andrea Gelmini
6705b68d0b Staging: comedi: comedi_fops.c: Checkpatch cleanup
ERROR: do not initialise externals to 0 or NULL
+int comedi_num_legacy_minors = 0;

WARNING: braces {} are not necessary for single statement blocks
+			if (s->subdev_flags & SDF_CMD_READ) {
+				kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
+			}

WARNING: braces {} are not necessary for single statement blocks
+			if (s->subdev_flags & SDF_CMD_WRITE) {
+				kill_fasync(&dev->async_queue, SIGIO, POLL_OUT);
+			}

Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Stewart Robertson
639b9f1ee5 Staging: comedi: fix suspect code indent in ni_labpc.c
This is a patch to the ni_labpc.c file that fixes suspect code indent for
conditional statements found by the checkpatch.pl tool

Signed-off-by: Stewart Robertson <stewart_r@aliencamel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Maurice Dawson
65d6d26c6b Staging: comedi: fix yet another brace coding style issue in ni_labpc.c
This is a patch to the ni_labpc.c file that fixes up all the brace
warnings found by the checkpatch.pl tool

Signed-off-by: Maurice Dawson <mauricedawson2699@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Maurice Dawson
2bb9c33590 Staging: comedi: fix another brace coding style issues in ni_labpc.c
This is a patch to the ni_labpc.c file that fixes up a brace warning
found by the checkpatch.pl tool

Signed-off-by: Maurice Dawson <mauricedawson2699@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Maurice Dawson
8377e813c7 Staging: comedi: fix brace coding style issue in ni_labpc.c
This is a patch to the ni_labpc.c file that fixes up a brace warning
found by the checkpatch.pl tool.

Signed-off-by: Maurice Dawson <maurice2699@btinternet.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Chihau Chau
a917d4c425 Staging: comedi: poc: Adding some KERN_ facility level
This fixes some coding style issues like include KERN_ facility levels
in some printk() and one trailing whitespace error.

Signed-off-by: Chihau Chau <chihau@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Chihau Chau
d4023a5ee2 Staging: dream: camera: msm_camera: fix some code style issues
This fixes some code style issues like else staments after the close
braces '}' and to use __func__ instead of __FUNCTION__.

Signed-off-by: Chihau Chau <chihau@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Alessandro Ghedini
71508ee489 Staging: wlan-ng: fix most of the style issues in hfa384x.h
This patch fixes all the errors and the majority of the warnings found with
checkpatch.pl script in hfa384x.h, following Gábor Stefanik hints

Signed-off-by: Alessandro Ghedini <al3xbio@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Chihau Chau
49c9b5c7bd Staging: dream: camera: msm_camera: fix coding style issues
This fixes some coding style issues like to use __func__ instead
__FUNCTION__, "foo *bar" instead "foo* bar" and a initial comment with
"/* */" instead "//"

Signed-off-by: Chihau Chau <chihau@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Graham M Howe
0054a361e4 Staging: comedi: fix bracing coding style and 80 character issues in ni_660x.c
This is a patch to the ni_660x.c file that fixes up the brace and 80
character issues found by the checkpatch tool

Signed-off-by: Graham M Howe <gmhowe@btopenworld.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:01 -08:00
Graham M Howe
c2ca6a476a Staging: comedi: fix bracing coding style issue in ni_65xx.c
This is a patch to the ni_65xx.c file that fixes up a brace
warning found by the checkpatch.pl tool

Signed-off-by: Graham M Howe <gmhowe@btopenworld.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:00 -08:00
Benjamin Adolphi
dedf3ad153 Staging: comedi: pcmad: Checkpatch cleanups
This fixes all checkpatch issues in the pcmad comedi driver.

Signed-off-by: Benjamin Adolphi <b.adolphi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:00 -08:00
Chihau Chau
52d83bde6f Staging: comedi: poc: fix coding style issues
This fixes a line over 80 characters and a brace warnings.

Signed-off-by: Chihau Chau <chihau@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-04 07:59:00 -08:00
H Hartley Sweeten
3a8954e8f2 staging: dt3155: revert u_long to u64 usage
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-03 16:43:07 -08:00
Andrea Gelmini
5617f9da46 Staging: comedi: drivers.c: Checkpatch cleanup
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-03 16:43:07 -08:00
Andrea Gelmini
b91665e95d Staging: arlan: arlan.h: more Checkpatch cleanup
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-03 16:43:07 -08:00
Andrea Gelmini
e22245b6c2 Staging: arlan: Makefile: Checkpatch cleanup
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-03 16:43:07 -08:00
Andrea Gelmini
aa1468b3fa Staging: rt3070: md4.h: Checkpatch cleanup
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-03 16:43:07 -08:00
Andrea Gelmini
a5a8695987 Staging: arlan: arlan.h: Checkpatch cleanup
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-03 16:43:07 -08:00
Andrea Gelmini
fa93e19dcf Staging: comedi: dt2801.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
20962c10c1 Staging: comedi: dmm32at.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
882e5b32b5 Staging: comedi: cb_pcimdas.c: more Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
ecd89ddcab Staging: comedi: das6402.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
dd105f08c0 Staging: comedi: hwdrv_apci3120.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
d539047c7b Staging: comedi: das08_cs.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
426054ce11 Staging: comedi: contec_pci_dio.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
f1c54e8272 Staging: comedi: cb_pcimdda.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
7c2f1946a5 Staging: comedi: cb_pcimdas.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
e3a21d0ac2 Staging: comedi: cb_pcidio.c: Checkpatch cleanup
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-03 16:43:06 -08:00
Andrea Gelmini
20db7d7de7 Staging: comedi: cb_pcidda.c: Checkpatch cleanup
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-03 16:43:05 -08:00
Andrea Gelmini
2d238b2972 Staging: comedi: cb_pcidas.c: Checkpatch cleanup
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-03 16:43:05 -08:00
Andrea Gelmini
882e1233a1 Staging: comedi: hwdrv_apci1032.c: Checkpatch cleanup
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>
2010-03-03 16:43:05 -08:00
Andrea Gelmini
a9ecb5bb58 Staging: comedi: addi_common.h: Checkpatch cleanup
ERROR: code indent should use tabs where possible
+        const struct comedi_lrange *pr_AiRangelist;^I/* rangelist for A/D */$

ERROR: code indent should use tabs where possible
+        const struct comedi_lrange *pr_AoRangelist;^I/* rangelist for D/A */$

Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03 16:43:05 -08:00
Andrea Gelmini
015fadba7c Staging: comedi: addi_amcc_S5920.c: Checkpatch cleanup
WARNING: braces {} are not necessary for any arm of this statement
+			if (i_Counter == 0) {
[...]
+			} else {
[...]

Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-03 16:43:05 -08:00