1. 02 6月, 2009 4 次提交
    • D
      UBI: add notification API · 0e0ee1cc
      Dmitry Pervushin 提交于
      UBI volume notifications are intended to create the API to get clients
      notified about volume creation/deletion, renaming and re-sizing. A
      client can subscribe to these notifications using 'ubi_volume_register()'
      and cancel the subscription using 'ubi_volume_unregister()'. When UBI
      volumes change, a blocking notifier is called. Clients also can request
      "added" events on all volumes that existed before client subscribed
      to the notifications.
      
      If we use notifications instead of calling functions like 'ubi_gluebi_xxx()',
      we can make the MTD emulation layer to be more flexible: build it as a
      separate module and load/unload it on demand.
      
      [Artem: many cleanups, rework locking, add "updated" event, provide
       device/volume info in notifiers]
      Signed-off-by: NDmitry Pervushin <dpervushin@embeddedalley.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      0e0ee1cc
    • A
      UBI: do not switch to R/O mode on read errors · b86a2c56
      Artem Bityutskiy 提交于
      This patch improves UBI errors handling. ATM UBI switches to
      R/O mode when the WL worker fails to read the source PEB.
      This means that the upper layers (e.g., UBIFS) has no
      chances to unmap the erroneous PEB and fix the error.
      This patch changes this behaviour and makes UBI put PEBs
      like this into a separate RB-tree, thus preventing the
      WL worker from hitting the same read errors again and
      again.
      
      But there is a 10% limit on a maximum amount of PEBs like this.
      If there are too much of them, UBI switches to R/O mode.
      
      Additionally, this patch teaches UBI not to panic and
      switch to R/O mode if after a PEB has been copied, the
      target LEB cannot be read back. Instead, now UBI cancels
      the operation and schedules the target PEB for torturing.
      
      The error paths has been tested by ingecting errors
      into 'ubi_eba_copy_leb()'.
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      b86a2c56
    • A
      UBI: fix and clean-up error paths in WL worker · 87960c0b
      Artem Bityutskiy 提交于
      This patch fixes the error path in the WL worker - in same cases
      UBI oopses when 'goto out_error' happens and e1 or e2 are NULL.
      This patch also cleans up the error paths a little. And I have
      tested nearly all error paths in the WL worker.
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      87960c0b
    • A
      UBI: introduce new constants · 90bf0265
      Artem Bityutskiy 提交于
      This patch is a clean-up and a preparation for the following
      patches. It introduece constants for the return values of the
      'ubi_eba_copy_leb()' function.
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      90bf0265
  2. 26 5月, 2009 1 次提交
    • A
      UBI: fix race condition · ddbd3b61
      Artem Bityutskiy 提交于
      This patch fixes a minor problem where we may fail to wake
      upe the UBI background thread. This is not fatal at all,
      it may just result at sligtly worse performace for a short
      period of time, just because the thread will be woken up
      when real I/O on the UBI starts.
      
      Anywey, the issue is the race condition between
      'ubi_attach_mtd_dev()' and 'ubi_thread()'. If we do not
      serialize them, the 'wake_up_process()' call may be done
      before 'ubi_thread()' went seep, but after it checked
      'ubi->thread_enabled'.
      
      This issue was spotted by Shin Hong <hongshin@gmail.com>
      Signed-off-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      ddbd3b61
  3. 18 5月, 2009 8 次提交
  4. 09 5月, 2009 1 次提交
  5. 08 5月, 2009 1 次提交
  6. 29 4月, 2009 1 次提交
    • S
      mtd: Bug in m25p80.c during whole-chip erase · 3f33b0aa
      Steven A. Falco 提交于
      There is a logic error in "whole chip erase" for the m25p80 family.  If
      the whole device is successfully erased, erase_chip() will return 0, and
      the code will fall through to the "else" clause, and do sector-by-sector
      erase in addition to the whole-chip erase.  This patch corrects that.
      
      Also, the MAX_READY_WAIT_COUNT is insufficient for an m25p16 connected
      to a 400 MHz powerpc.  Increasing it allows me to successfully program
      the device on my board.
      Signed-off-by: NSteven A. Falco <sfalco@harris.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      3f33b0aa
  7. 24 4月, 2009 1 次提交
  8. 19 4月, 2009 2 次提交
  9. 06 4月, 2009 8 次提交
  10. 05 4月, 2009 1 次提交
  11. 04 4月, 2009 4 次提交
  12. 03 4月, 2009 4 次提交
    • U
      [MTD] [NAND] move gen_nand's probe function to .devinit.text · 9d63287a
      Uwe Kleine-König 提交于
      A pointer to plat_nand_probe is passed to the core via
      platform_driver_register and so the function must not disappear when the
      .init sections are discarded.  Otherwise (if also having HOTPLUG=y)
      unbinding and binding a device to the driver via sysfs will result in an
      oops as does a device being registered late.
      
      An alternative to this patch is using platform_driver_probe instead of
      platform_driver_register plus removing the pointer to the probe function
      from the struct platform_driver.
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Hamish Moffatt <hamish@cloud.net.au>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      9d63287a
    • U
      [MTD] [MAPS] move sa1100 flash's probe function to .devinit.text · f0b1e589
      Uwe Kleine-König 提交于
      A pointer to sa1100_mtd_probe is passed to the core via
      platform_driver_register and so the function must not disappear when the
      .init sections are discarded.  Otherwise (if also having HOTPLUG=y)
      unbinding and binding a device to the driver via sysfs will result in an
      oops as does a device being registered late.
      
      An alternative to this patch is using platform_driver_probe instead of
      platform_driver_register plus removing the pointer to the probe function
      from the struct platform_driver.
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Cc: Nicolas Pitre <nico@marvell.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      f0b1e589
    • M
      [MTD] fix use after free in register_mtd_blktrans · 2cf3a114
      Marcin Slusarz 提交于
      Reported-by: NDan Carpenter <error27@gmail.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NMarcin Slusarz <marcin.slusarz@gmail.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      2cf3a114
    • R
      [ARM] fix build-breaking 7a192ec3 commit · 67a52bb9
      Russell King 提交于
      The commit:
      
          platform driver: fix incorrect use of 'platform_bus_type' with 'struct device_driver'
      
      contains this:
      
      -static int __exit pxa2xx_flash_remove(struct device *dev)
      +static int __exit pxa2xx_flash_remove(struct platform_device *dev)
      ...
      -       .remove         = __exit_p(pxa2xx_flash_remove),
      +       .remove         = __devexit_p(pxa2xx_flash_remove),
      
      which leads to the following build error:
      
      `pxa2xx_flash_remove' referenced in section `.data' of drivers/built-in.o: defined in discarded section `.exit.text' of drivers/built-in.o
      
      This is not the only instance of it in this patch - all __exit_p's
      touched by this patch have been converted to __devexit_p's without
      regard to the original function.
      
      Let's revert this change and, if we are going to convert functions
      to be __devexit/__devinit, lets have that as a _separate_ patch doing
      just that change.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      67a52bb9
  13. 31 3月, 2009 1 次提交
    • R
      module: remove module_text_address() · a6e6abd5
      Rusty Russell 提交于
      Impact: Replace and remove risky (non-EXPORTed) API
      
      module_text_address() returns a pointer to the module, which given locking
      improvements in module.c, is useless except to test for NULL:
      
      1) If the module can't go away, use __module_text_address.
      2) Otherwise, just use is_module_text_address().
      
      Cc: linux-mtd@lists.infradead.org
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      a6e6abd5
  14. 30 3月, 2009 2 次提交
    • H
      trivial: NULL noise: drivers/mtd/tests/mtd_*test.c · 23d42494
      Hannes Eder 提交于
      Fix this sparse warnings:
        drivers/mtd/tests/mtd_oobtest.c:139:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:192:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:219:41: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:284:25: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:525:25: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:545:25: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:569:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:589:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:613:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:633:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:673:41: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_oobtest.c:701:33: warning: Using plain integer as NULL pointer
        drivers/mtd/tests/mtd_readtest.c:74:41: warning: Using plain integer as NULL pointer
      Signed-off-by: NHannes Eder <hannes@hanneseder.net>
      Acked-by: NArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      23d42494
    • N
      trivial: MTD: remove EOL from MODULE_DESCRIPTION · 2a7af8ca
      Niels de Vos 提交于
      There is no need to have a "\n" on a MODULE_DESCRIPTION, remove it.
      Signed-off-by: NNiels de Vos <niels.devos@wincor-nixdorf.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      2a7af8ca
  15. 28 3月, 2009 1 次提交