1. 31 3月, 2009 1 次提交
    • A
      proc 2/2: remove struct proc_dir_entry::owner · 99b76233
      Alexey Dobriyan 提交于
      Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
      as correctly noted at bug #12454. Someone can lookup entry with NULL
      ->owner, thus not pinning enything, and release it later resulting
      in module refcount underflow.
      
      We can keep ->owner and supply it at registration time like ->proc_fops
      and ->data.
      
      But this leaves ->owner as easy-manipulative field (just one C assignment)
      and somebody will forget to unpin previous/pin current module when
      switching ->owner. ->proc_fops is declared as "const" which should give
      some thoughts.
      
      ->read_proc/->write_proc were just fixed to not require ->owner for
      protection.
      
      rmmod'ed directories will be empty and return "." and ".." -- no harm.
      And directories with tricky enough readdir and lookup shouldn't be modular.
      We definitely don't want such modular code.
      
      Removing ->owner will also make PDE smaller.
      
      So, let's nuke it.
      
      Kudos to Jeff Layton for reminding about this, let's say, oversight.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=12454Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      99b76233
  2. 25 3月, 2009 1 次提交
  3. 16 3月, 2009 1 次提交
    • J
      Rationalize fasync return values · 60aa4924
      Jonathan Corbet 提交于
      Most fasync implementations do something like:
      
           return fasync_helper(...);
      
      But fasync_helper() will return a positive value at times - a feature used
      in at least one place.  Thus, a number of other drivers do:
      
           err = fasync_helper(...);
           if (err < 0)
                   return err;
           return 0;
      
      In the interests of consistency and more concise code, it makes sense to
      map positive return values onto zero where ->fasync() is called.
      
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: NJonathan Corbet <corbet@lwn.net>
      60aa4924
  4. 11 3月, 2009 1 次提交
  5. 10 3月, 2009 1 次提交
  6. 09 3月, 2009 2 次提交
  7. 01 3月, 2009 3 次提交
  8. 27 2月, 2009 1 次提交
    • A
      sh: maple: Support block reads and writes. · b233b28e
      Adrian McMenamin 提交于
      This patch updates the maple bus to support asynchronous block reads
      and writes as well as generally improving the quality of the code and
      supporting concurrency (all needed to support the Dreamcast visual
      memory unit - a driver will also be posted for that).
      
      Changes in the bus driver necessitate some changes in the two maple bus
      input drivers that are currently in mainline.
      
      As well as supporting block reads and writes this code clean up removes
      some poor handling of locks, uses an atomic status variable to serialise
      access to devices and more robusly handles the general performance
      problems of the bus.
      Signed-off-by: NAdrian McMenamin <adrian@mcmen.demon.co.uk>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b233b28e
  9. 02 2月, 2009 2 次提交
  10. 30 1月, 2009 3 次提交
  11. 14 1月, 2009 2 次提交
    • U
      Input: spitzkbd - mark probe function as __devinit · 27f23336
      Uwe Kleine-König 提交于
      A pointer to spitzkbd_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.
      
      [dtor@mail.ru: fixed some more section markups]
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      27f23336
    • U
      Input: omap-keypad - mark probe function as __devinit · d63dab00
      Uwe Kleine-König 提交于
      A pointer to omap_kp_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.
      
      [dtor@mail.ru: fixed some more section markups]
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      d63dab00
  12. 13 1月, 2009 2 次提交
    • U
      Input: corgi_ts - mark probe function as __devinit · 840207ed
      Uwe Kleine-König 提交于
      A pointer to corgits_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.
      
      [dtor@mail.ru: fixed some more section markups]
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      840207ed
    • U
      Input: corgikbd - mark probe function as __devinit · f2d8dc75
      Uwe Kleine-König 提交于
      A pointer to corgikbd_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.
      
      [dtor@mail.ru: fixed some more section markups]
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      f2d8dc75
  13. 11 1月, 2009 4 次提交
  14. 09 1月, 2009 1 次提交
  15. 08 1月, 2009 1 次提交
  16. 07 1月, 2009 1 次提交
    • J
      Input: apanel - convert to new i2c binding · 1561bfe5
      Jean Delvare 提交于
      Convert the apanel driver to the new i2c device driver binding model,
      as the legacy model is going away soon. In the new model, the apanel
      driver is no longer scanning all the i2c adapters, instead the
      relevant bus driver (i2c-i801) is instantiating the device as needed.
      
      One side benefit is that the apanel driver will now load automatically
      on all systems where it is needed.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Stephen Hemminger <shemminger@linux-foundation.org>
      1561bfe5
  17. 06 1月, 2009 2 次提交
  18. 30 12月, 2008 4 次提交
  19. 29 12月, 2008 2 次提交
  20. 23 12月, 2008 2 次提交
  21. 22 12月, 2008 1 次提交
  22. 21 12月, 2008 1 次提交
  23. 20 12月, 2008 1 次提交