200512 Commits

Author SHA1 Message Date
Sven Eckelmann
4caecbc039 Staging: batman-adv: Move tables from sysfs to debugfs
Files which represent more than a single attribute aren't allowed in
sysfs. As we have some files which aren't essential and are lists or
tables aggregated from data from different places inside batman-adv, we
must place them in a filesystem without such a restriction.

Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-22 14:05:03 -07:00
Sven Eckelmann
c41214328a Staging: batman-adv: Move device for icmp injection to debugfs
batctl uses /dev/batman-adv to send special batman-adv icmp packets to
other nodes in the mesh. To get it working with multiple batX devices we
must ensure that every mesh device can have their own socket which is
used to inject those packets in exactly one mesh.

The current implementation still doesn't allow to use complete separated
meshes as we rely on structures which are not part of the private data
of a batman device.

Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-22 14:05:03 -07:00
Javier Martinez Canillas
1bd2c2159a Staging: batman-adv: fix function prototype
In today linux-next I got a compile warning in staging/batman-adv.

This is due a struct bin_attribute read function prototype change and the driver was not updated.

This patch solves the issue

Signed-off-by: Javier Martinez Canillas <martinez.javier@gmail.com>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-21 15:32:05 -07:00
Dan Carpenter
cf2d3fc978 Staging: batman-adv: return -EFAULT on copy_to_user errors
copy_to_user() returns the number of bites remaining but we want to
return a negative error code here.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-21 15:31:52 -07:00
Simon Wunderlich
e6dc269b40 Staging: batman-adv: convert vis_interval into define
vis_interval does not neccesarily needs to be a variable, as there is
no way to change it anyway (and probably no need to). We can therefore
remove yet another global variable.

Thanks Marek for pointing this out.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
[sven.eckelmann@gmx.de: Rework on top of current version]
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 17:01:19 -07:00
Marek Lindner
8af60a8cf0 Staging: batman-adv: Add information about batman-adv sysfs entries
Add documents about new sysfs entries in
 * /sys/class/net/<iface>/batman-adv/mesh_iface
 * /sys/class/net/<mesh_iface>/mesh/vis_mode

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 17:00:25 -07:00
Linus Lüssing
96d592ed59 Staging: batman-adv: Adding netfilter-bridge hooks
batman-adv is receiving and sending the packets of its own ether type
on a very early/low level. Therefore we need to add explicit hooks to
give netfilter/ebtables a chance to filter them.

Reported-by: Antonio Quartulli <ordex@ritirata.org>
Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:59:40 -07:00
Marek Lindner
186305aa12 Staging: batman-adv: remove redundant struct declaration
The hardif_attr and the bat_attr struct share the same attributes,
hence it is not necessary to specify 2 different structs.

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:57:25 -07:00
Huang Weiyi
7ddd5d0279 Staging: MSM: remove duplicated #include
Remove duplicated #include('s) in
  drivers/staging/msm/mddihost.h
  drivers/staging/msm/msm_fb_def.h
  drivers/staging/msm/staging-devices.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:54:24 -07:00
Huang Weiyi
b8564d7b38 Staging: XGI: remove duplicated #include
Remove duplicated #include('s) in
  drivers/staging/xgifb/XGI_main_26.c
  drivers/staging/xgifb/vb_init.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:54:24 -07:00
Javier Martinez Canillas
ab17a4ac32 Staging: pohmelfs: fix compile warning
A really trivial patch to solve a warning when compiling staging/pohmelfs

Signed-off-by: Javier Martinez Canillas <martinez.javier@gmail.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:54:24 -07:00
H Hartley Sweeten
a46f9087e6 Staging: dt3155: remove DT_3155_* errno defines
Remove the DT_3155_{SUCCESS/FAILURE} errno defines and use the
kernel provided ones.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Scott Smedley <ss@aao.gov.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:50:04 -07:00
H Hartley Sweeten
0f3ff30b93 Staging: dt3155: fix different address spaces noise in dt3155_drv.c
This fixes the different address spaces noise when copying data to/from
user space to kernel space.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:50:04 -07:00
Marin Mitov
f932e3a361 Staging: dt3155v4l: correcting a pointer mismatch bug and cleanups
The third argument of dma_alloc_coherent() is of type dma_addr_t and is defined
as u64 for x86_64, while the member 'device_base' of struct dma_coherent_mem is
defined as u32.

While at it, clean up the code. Now if dev->dma_mem != NULL all the fields/members
are already properly initialized.

Signed-off-by: Marin Mitov <mitov@issp.bas.bg>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:50:04 -07:00
Mike Gilks
616f58f6ec staging: rtl8192u: fix checkpatch.pl issues to line 514
Fixed most problems pointed out by checkpatch.pl in file r8192U_core.c
up to line 500

Signed-off-by: Mike Gilks <mike.kernel@gilksonline.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:49:02 -07:00
Nanakos Chrysostomos
70eef90e49 Staging: dt3155: dt3155_isr.c: Fix checkpatch.pl issues.
Fix resolves checkpatch.pl issues.

Signed-off-by: Nanakos Chrysostomos <nanakos@wired-net.gr>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:43:15 -07:00
Andreas Herrmann
0374e91c90 Staging: rtl81xx: Fix build problems when CONFIG_CRYPTO=n
Select CONFIG_CRYPTO for all rtl81xx wireless drivers

... to avoid build problems like:

ERROR: "crypto_destroy_tfm" [drivers/staging/rtl8187se/r8187se.ko] undefined!
ERROR: "crypto_alloc_base" [drivers/staging/rtl8187se/r8187se.ko] undefined!
ERROR: "crypto_destroy_tfm" [drivers/staging/rtl8192u/r8192u_usb.ko] undefined!
ERROR: "crypto_alloc_base" [drivers/staging/rtl8192u/r8192u_usb.ko] undefined!
ERROR: "crypto_destroy_tfm" [drivers/staging/rtl8192su/r8192s_usb.ko] undefined!
ERROR: "crypto_alloc_base" [drivers/staging/rtl8192su/r8192s_usb.ko] undefined!
ERROR: "crypto_destroy_tfm" [drivers/staging/rtl8192e/r8192e_pci.ko] undefined!
ERROR: "crypto_alloc_base" [drivers/staging/rtl8192e/r8192e_pci.ko] undefined!

when drivers are built as modules but CONFIG_CRYPTO=n.

Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:41:50 -07:00
Scott Kidder
6167944d8a Staging: crystalhd: removed kfree(NULL) checks
Removed kfree(NULL checks) that were not necessary

Signed-off-by: Scott Kidder <scott.kidder11@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:41:25 -07:00
Nanakos Chrysostomos
ef079a76fe Staging: dream: pmem.c: Fix checkpatch.pl issues.
This patch resolves checkpatch.pl issues in the pmem.c file.

Signed-off-by: Nanakos Chrysostomos <nanakos@wired-net.gr>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:41:17 -07:00
Scott Kidder
231ded903f Staging: cx25821: added KERN_ facility levels
Fixed issues found by checkpatch.pl including adding KERN_
facility levels to printk() calls and C99 comments.

Signed-off-by: Scott Kidder <scott.kidder11@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:40:09 -07:00
Matti Lammi
fa3620c515 Staging: otus: Removed one unnecessary space
Nothing special really, just a small fix.

Signed-off-by: Matti Lammi <matti.lammi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:40:09 -07:00
Dan Carpenter
cc7e7d38e9 Staging: otus: fix strcpy() overflow
wrq->name is only 16 characters long but "IEEE 802.11-MIMO" is 16
characters + a NULL character, so it's too long.  This patch changes it
to "IEEE 802.11abgn".

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:40:09 -07:00
Joe Perches
84f8008a7d Staging: otus: TODO: Don't bother, for documentation purposes only
On Mon, 2010-06-07 at 12:02 -0700, Luis R. Rodriguez wrote:
> this driver is unmaintained and its only purpose is as a
> source of documentation for developers working on ar9170 and carl9170.
> Once carl9170 gets 11n support and merged upstream then this driver
> can be removed.

Then the TODO file should be updated.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:40:08 -07:00
Scott Kidder
b55515cf72 Staging: otus: fix style issues in zdusb.c
This is a patch to zdusb.c that fixes whitespace,
C99 comment, and other style issues found by the
checkpatch.pl tool

Signed-off-by: Scott Kidder <scott.kidder11@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 16:40:08 -07:00
Dan Carpenter
594578979d Staging: wlan-ng: silence a sparse warning
This doesn't change the behavior.  It just silences a sparse warning.

drivers/staging/wlan-ng/hfa384x_usb.c:2810:62: warning: dubious: !x | !y

The point of the bitwise OR is so that a logical OR could short circuit
the second call to test_and_set_bit().

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:33:57 -07:00
Greg Kroah-Hartman
25ebc2f42b Merge branch 'staging-next' into work 2010-06-18 15:31:26 -07:00
Greg Kroah-Hartman
2e04bb7b28 Staging: winbond: fix build errors
Some errors crept in due to a previous patch that I missed.

This fixes them up so the driver continues to build, sorry about that.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:30:28 -07:00
Karl Relton
cb3126e60f Staging: wlan-ng: Switch from wext to cfg80211
Switch driver over from wext to cfg80211 interface.

Some Notes:

- This patch moves the driver wholesale from wext to cfg80211. Wext
support is still provided through the cfg80211 provided wext
compatability layer.

- Currently only infrastructure mode is implemented. Ad hoc mode is not
yet implemented, but can be added.

- It does not support connecting to a specified bssid, instead roaming
is handled by the card itself. This matches the behaviour of the
existing driver.

- It has been tested using NetworkManager (via wpa_supplicant)
configured to use the wext compatability layer, and then again with the
native nl80211 layer.

Signed-off-by: Karl Relton <karllinuxtest.relton@ntlworld.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:22:55 -07:00
Jiri Kosina
9c770f3b88 Staging: cxt1e1: remove code guarded by GENERIC_HDLC_VERSION
Current linux kernel has GENERIC_HDLC_VERSION equal to 4, no need to
have dead code in-kernel which was there for ancient kernel versions.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:20:59 -07:00
Jiri Kosina
bb71770cdb Staging: rtl8192su: remove all code dependent on LINUX_VERSION_CODE
Remove all code which is dead for in-kernel driver due to being
ifdefed by LINUX_VERSION_CODE.

While at it, also remove surrounding code which is commented out,
or '#if 1' nops.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:17:12 -07:00
Jiri Kosina
5749df14ae Staging: cxt1e1: remove all code dependent on LINUX_VERSION_CODE
Remove all code which is dead for in-kernel driver due to being
ifdefed by LINUX_VERSION_CODE.

While at it, also remove surrounding code which is commented out,
or '#if 1' nops.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:21 -07:00
Ben Hutchings
41a38d9e63 Staging: rtl8192su: Fix procfs code for interfaces not named wlan0
The current code creates directories in procfs named after interfaces,
but doesn't handle renaming.  This can result in name collisions and
consequent WARNINGs.  It also means that the interface name cannot
reliably be used to remove the directory - in fact the current code
doesn't even try, and always uses "wlan0"!

Since the name of a proc_dir_entry is embedded in it, use that when
removing it.

Add a netdev notifier to catch interface renaming, and remove and
re-add the directory at this point.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2010-06-18 15:16:21 -07:00
Ben Hutchings
9a3dfa0555 Staging: rtl8192su: Clean up in case of an error in module initialisation
Currently various resources may be leaked in case of an error.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:21 -07:00
Julia Lawall
37a18632b0 Staging: dream: camera: Use memdup_user
Use memdup_user when user data is immediately copied into the
allocated region.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression from,to,size,flag;
position p;
identifier l1,l2;
@@

-  to = \(kmalloc@p\|kzalloc@p\)(size,flag);
+  to = memdup_user(from,size);
   if (
-      to==NULL
+      IS_ERR(to)
                 || ...) {
   <+... when != goto l1;
-  -ENOMEM
+  PTR_ERR(to)
   ...+>
   }
-  if (copy_from_user(to, from, size) != 0) {
-    <+... when != goto l2;
-    -EFAULT
-    ...+>
-  }
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:21 -07:00
Julia Lawall
7c0ace5488 Staging: vme: bridges: Add missing unlocks
Add a spin_unlock and mutex_unlock missing on the error path.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression E1;
@@

* spin_lock(E1,...);
  <+... when != E1
  if (...) {
    ... when != E1
*   return ...;
  }
  ...+>
* spin_unlock(E1,...);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Martyn Welch <martyn.welch@ge.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:21 -07:00
Nanakos Chrysostomos
45f9f01896 Staging: vme: devices: vme_user.c: Fix checkpatch.pl issues.
Fix resolves checkpatch.pl issues for vme_user.c file.

Signed-off-by: Nanakos Chrysostomos <nanakos@wired-net.gr>
Signed-off-by: Martyn Welch <martyn.welch@ge.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:20 -07:00
Matthias Brugger
e3613299b5 Staging: adis16255: missing spacess in log messages added
Signed-off-by: Matthias Brugger <mensch0815@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:20 -07:00
Barry Song
00ae79463e Staging: iio: adis16209/220/240/350: tuning spi delay to make hardware more stable
Signed-off-by: Barry Song <21cnbao@gmail.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:20 -07:00
Barry Song
3fd66da1d5 Staging: iio: adis16400: fix some minor issues and clean-up
1. move adis16400_spi_read_burst() to adis16400_ring.c since it is only
   called there
2. add the lost calling to adis16400_self_test()
3. codes cleanup

Signed-off-by: Barry Song <21cnbao@gmail.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:20 -07:00
Barry Song
ee9a691e08 Staging: iio: adis16300: fix some minor issues and clean-up
1. add delay between spi transfers
2. move burst read to ring function
3. clean-up

Signed-off-by: Barry Song <21cnbao@gmail.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 15:16:19 -07:00
Dan Carpenter
794e7d9df2 Staging: iio: add file pointer to sysfs callbacks
The sysfs attribute call backs take a file pointer these days.  This was
added in 2c3c8bea6088 "sysfs: add struct file* to bin_attr callbacks"

Signed-off-by: Dan Carpenter <error27@gmail.com>
Cc: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 13:14:33 -07:00
Jonathan Cameron
de6c37ad2a Staging: iio: Add mailing list to the TODO file.
As suggested by Charles Clement

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 13:14:33 -07:00
Mike Frysinger
1cb6c1f594 Staging: iio: pull in slab.h for kmalloc funcs
These drivers use kzalloc() but don't include slab.h.  They currently
build though because the spi.h header will pull in slab.h for us.  But
rather than rely on that behavior forever, include slab.h explicitly.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 13:14:32 -07:00
Mike Frysinger
c608cb012e Staging: iio: kill off spurious semicolons
A bunch of IIO files contain spurious semicolons after function
definitions and case statements and if statements.  Guess people
really like this thing, but kill them anyways so they'll stop
spreading via copy & paste with new drivers.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 13:14:32 -07:00
Mike Frysinger
98a62bb7bc Staging: iio: standardize kconfig/makefile spacing/style
Standardize the spacing/style across the IIO build files:
	- comment block in Kconfigs
	- newlines at ends of files
	- trailing lines at ends of files
	- indent with one tab, not spaces or mixed

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 13:14:32 -07:00
Nitin Gupta
00ac9ba01d Staging: zram: Rename ramzswap to zram in documentation
Related changes:
 - Included example to show usage as generic
(non-swap) disk with ext4 filesystem.
 - Renamed rzscontrol to zramconfig to match
with new device naming.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 12:50:30 -07:00
Nitin Gupta
f1e3cfff4d Staging: zram: Rename ramzswap to zram in code
Automated renames in code:
 - rzs* -> zram*
 - RZS* -> ZRAM*
 - ramzswap* -> zram*

Manual changes:
 - Edited comments/messages mentioning "swap"

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 12:49:48 -07:00
Nitin Gupta
16a4bfb9e9 Staging: Rename ramzswap files to zram
Related changes:
 - Modify revelant Kconfig and Makefile accordingly.
 - Change include filenames in code.
 - Remove dependency on CONFIG_SWAP in Kconfig as zram usage
is no longer limited to swap disks.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 12:46:42 -07:00
Nitin Gupta
a1dd52afa9 Staging: ramzswap: Support generic I/O requests
Currently, ramzwap devices (/dev/ramzswapX) can only
be used as swap disks since it was hard-coded to consider
only the first request in bio vector.

Now, we iterate over all the segments in an incoming
bio which allows us to handle all kinds of I/O requests.

ramzswap devices can still handle PAGE_SIZE aligned and
multiple of PAGE_SIZE sized I/O requests only. To ensure
that we get always get such requests only, we set following
request_queue attributes to PAGE_SIZE:
 - physical_block_size
 - logical_block_size
 - io_min
 - io_opt

Note: physical and logical block sizes were already set
equal to PAGE_SIZE and that seems to be sufficient to get
PAGE_SIZE aligned I/O.

Since we are no longer limited to handling swap requests
only, the next few patches rename ramzswap to zram. So,
the devices will then be called /dev/zram{0, 1, 2, ...}

Usage/Examples:
 1) Use as /tmp storage
 - mkfs.ext4 /dev/zram0
 - mount /dev/zram0 /tmp

 2) Use as swap:
 - mkswap /dev/zram0
 - swapon /dev/zram0 -p 10 # give highest priority to zram0

Performance:

 - I/O benchamark done with 'dd' command. Details can be
found here:
http://code.google.com/p/compcache/wiki/zramperf
Summary:
 - Maximum read speed (approx):
   - ram disk: 1200 MB/sec
   - zram disk: 600 MB/sec
 - Maximum write speed (approx):
   - ram disk: 500 MB/sec
   - zram disk: 160 MB/sec

Issues:

 - Double caching: We can potentially waste memory by having
two copies of a page -- one in page cache (uncompress) and
second in the device memory (compressed). However, during
reclaim, clean page cache pages are quickly freed, so this
does not seem to be a big problem.

 - Stale data: Not all filesystems support issuing 'discard'
requests to underlying block devices. So, if such filesystems
are used over zram devices, we can accumulate lot of stale
data in memory. Even for filesystems to do support discard
(example, ext4), we need to see how effective it is.

 - Scalability: There is only one (per-device) de/compression
buffer stats. This can lead to significant contention, especially
when used for generic (non-swap) purposes.

Signed-off-by: Nitin Gupta <ngupta@vflare.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 12:45:40 -07:00
Naveen Jain
36e574fed5 Staging: ti-st: fix protocol counting
Older mechanism of counting the number of protocols
registered with ST was slow, in-efficient.
It used to check the protocol data for NULL for each
registration/unregistration.

With this change, counting protocols in maintained by
a single counter protos_registered.

Counting protocols is not just for debug purposes

Signed-off-by: Naveen Jain <naveen_jain@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18 12:40:29 -07:00