mtd: fix MTD suspend
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Mon, 16 Jan 2012 09:07:16 +0000 (11:07 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 30 Jan 2012 14:23:07 +0000 (14:23 +0000)
commit1a30871fe635d3e92972e6b93e39ff65bb57e52d
treea9b1dec4e9ab56faba549e7b1a1cec2cbe22b111
parentbce41d601e58af12cee1398fe836e6b9a8fb5396
mtd: fix MTD suspend

Commits 3fe4bae88460869a8e553397cd9057a4ee7ca341 and
079c985e7a6f4ce60f931cebfdd5ee3c3 broke MTD suspend in 2 ways:

1. When the '->suspend' method is not present, we return -EOPNOTSUPP, but
   the callers of 'mtd_suspend()' expects 0 instead.
2. Checking of the 'mtd' parameter against NULL has been incorrectly removed
   in 'mtd_cls_suspend()'.

This patch fixes the breakages. This has been found, analyzed, reported
and tested by Rafael J. Wysocki <rjw@sisk.pl>.

Note, this patch is not needed in the stable tree because it causes a
regression introduced during the v3.3 merge window.

Reported-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/mtdcore.c
include/linux/mtd/mtd.h