1. 02 Dec, 2008 36 commits
  2. 01 Dec, 2008 4 commits
    • Linus Torvalds's avatar
      Linux 2.6.28-rc7 · 061e41fd
      Linus Torvalds authored
      061e41fd
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · 0d815142
      Linus Torvalds authored
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (25 commits)
        em28xx: remove backward compat macro added on a previous fix
        V4L/DVB (9748): em28xx: fix compile warning
        V4L/DVB (9743): em28xx: fix oops audio
        V4L/DVB (9742): em28xx-alsa: implement another locking schema
        V4L/DVB (9732): sms1xxx: use new firmware for Hauppauge WinTV MiniStick
        V4L/DVB (9691): gspca: Move the video device to a separate area.
        V4L/DVB (9690): gspca: Lock the subdrivers via module_get/put.
        V4L/DVB (9689): gspca: Memory leak when disconnect while streaming.
        V4L/DVB (9668): em28xx: fix a race condition with hald
        V4L/DVB (9664): af9015: don't reconnect device in USB-bus
        V4L/DVB (9647): em28xx: void having two concurrent control URB's
        V4L/DVB (9646): em28xx: avoid allocating/dealocating memory on every control urb
        V4L/DVB (9645): em28xx: Avoid memory leaks if registration fails
        V4L/DVB (9639): Make dib0700 remote control support work with firmware v1.20
        V4L/DVB (9635): v4l: s2255drv fix firmware test on big-endian
        V4L/DVB (9634): Make sure the i2c gate is open before powering down tuner
        V4L/DVB (9632): make em28xx aux audio input work
        V4L/DVB (9631): Make s2api work for ATSC support
        V4L/DVB (9627): em28xx: Avoid i2c register error for boards without eeprom
        V4L/DVB (9608): Fix section mismatch warning for dm1105 during make
        ...
      0d815142
    • Andrew Morton's avatar
      drivers/gpu/drm/i915/i915_irq.c: fix warning · 9c84ba4e
      Andrew Morton authored
      
      
      drivers/gpu/drm/i915/i915_irq.c: In function 'i915_disable_pipestat':
      drivers/gpu/drm/i915/i915_irq.c:101: warning: control may reach end of non-void function 'i915_pipestat' being inlined
      
      Cc: Dave Airlie <airlied@linux.ie>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9c84ba4e
    • Jarkko Lavinen's avatar
      i82875p_edac: fix module remove · 09a81269
      Jarkko Lavinen authored
      
      
      Fix module removal bugs of i82875p_edac.  Also i82975x_edac code seems to
      have the same module removal bugs as in i82875p_edac.
      
      The problems were:
      
      1. In module removal i82875p_remove_one() is never called.
      
         Variable i82875p_registered is newer changed from 1, which
         guarantees i82875p_remove_one() is not called (and even if it were
         called, it would be called in wrong order).
      
         As a result, the edac_mc workque is not stopped and keeps probing.
         If kernel debugging options are not enabled, user may not notice
         anything going wrong.
      
         if debugging options are enabled and I do "rmmod i82875p_edac", I
         get:
      
            edac debug: edac_pci_workq_function() checking
            BUG: unable to handle kernel paging request at f882d16f
            ...
            call trace:
             [<f8834df3>] ? edac_mc_workq_function+0x55/0x7e [edac_core]
             [<c0233974>] ? run_workqueue+0xd7/0x1a5
             [<c023392f>] ? run_workqueue+0x92/0x1a5
             [<f8834d9e>] ? edac_mc_workq_function+0x0/0x7e [edac_core]
             [<c0233af9>] ? worker_thread+0xb7/0xc3
             [<c0236a7b>] ? autoremove_wake_function+0x0/0x33
             [<c0233a42>] ? worker_thread+0x0/0xc3
             [<c0236809>] ? kthread+0x3b/0x61
             [<c02367ce>] ? kthread+0x0/0x61
             [<c0204587>] ? kernel_thread_helper+0x7/0x10
      
         Fix for this is to get rid of needles variable i82875p_registered
         altogether and run i82875p_remove_one() *before*
         pci_unregister_driver().
      
      2. edac_mc_del_mc() uses mci after freeing mci
      
         edac_mc_del_mc() calls calls edac_remove_sysfs_mci_device().  The
         kobject refcount of mci drops to 0 and mci is freed.  After this
         mci is accessed via debug print and i82875p_remove_one() still
         uses mci->pvt and tries to free mci again with edac_mc_free().
      
         The fix for this is add kobject_get(&mci->edac_mci_kobj) after
         edac_mc_alloc(). Then the mci is still available after returning
         from edac_mc_del_mc() with refcount 1, and mci->pvt is still
         available. When i82875p_remove_one() finally calls edac_mc_free(),
         this will cause kobject_put() and mci is released properly.
      Signed-off-by: default avatarJarkko Lavinen <jlavi@iki.fi>
      Cc: Doug Thompson <norsk5@yahoo.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      09a81269