Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Dec 2, 2008
  1. Linux 2.6.28-rc7

  2. Merge branch 'for_linus' of git://…

    * 'for_linus' of git:// (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
  3. drivers/gpu/drm/i915/i915_irq.c: fix warning

    Andrew Morton authored committed
    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 <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  4. i82875p_edac: fix module remove

    Jarkko Lavinen authored committed
    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
          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*
    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: Jarkko Lavinen <>
    Cc: Doug Thompson <>
    Cc: Alan Cox <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  5. i82875p_edac: fix overflow device resource setup

    Jarkko Lavinen authored committed
    When I do "modprobe i82875p_edac" on my Asus P4C800 MB on kernels 2.6.26
    or later, the module load fails due to BAR 0 collision.  On 2.6.25 the
    module loads just fine.
    The overflow device on the MB seems to be hidden and its resources are not
    allocated at normal PCI bus init.  Log shows the missing resource problem:
      EDAC DEBUG: i82875p_probe1()
      PCI: 0000:00:06.0 reg 10 32bit mmio: [fecf0000, fecf0fff]
      pci 0000:00:06.0: device not available because of BAR 0
    [0xfecf0000-0xfecf0fff] collisions
      EDAC i82875p: i82875p_setup_overfl_dev(): Failed to enable overflow
    The patch below fixes this by calling pci_bus_assign_resources() after
    the overflow device is revealed and added to the bus. With this patch
    I am again able to load and use the module.
    Signed-off-by: Jarkko Lavinen <>
    Cc: Doug Thompson <>
    Cc: Jesse Barnes <>
    Cc: Alan Cox <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  6. @lumag

    fbdev: fix FB console blanking

    lumag authored committed
    The commit aef7db4 fixed the problem with
    recursive locking in fb blanking code if blank is caused by user setting
    the /sys/class/graphics/fb*/blank.  However this broke the fbcon timeout
    If you use a driver that defines ->fb_blank operation and at the same time
    that driver relies on other driver (e.g.  backlight or lcd class) to blank
    the screen, when the fbcon times out and tries to blank the fb, it will
    call only fb driver blanker and won't notify the other driver.  Thus FB
    output is disabled, but the screen isn't blanked.
    Restore fbcon blanking and at the same time apply the proper fix for the
    above problem: if fbcon_blank is called with FBINFO_FLAG_USEREVENT, we are
    already called through notification from fb_blank, thus we don't have to
    blank the fb again.
    Signed-off-by: Dmitry Baryshkov <>
    Cc: Geert Uytterhoeven <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  7. ntfs: don't fool kernel-doc

    Randy Dunlap authored committed
    kernel-doc handles macros now (it has for quite some time), so change the
    ntfs_debug() macro's kernel-doc to be just before the macro instead of
    before a phony function prototype.
    [ coding-style fixes]
    Signed-off-by: Randy Dunlap <>
    Cc: Anton Altaparmakov <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  8. kernel-doc: handle varargs cleanly

    Randy Dunlap authored committed
    The method for listing varargs in kernel-doc notation is:
     * @...: these arguments are printed by the @fmt argument
    but scripts/kernel-doc is confused:  it always lists varargs as:
    	...	variable arguments
    and ignores the @...: line's description, but then prints that
    line after the list of function parameters as though it's
    not part of the function parameters.
    This patch makes kernel-doc print the supplied @...  description if it is
    present; otherwise a boilerplate "variable arguments" is printed.
    Signed-off-by: Randy Dunlap <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  9. @manfred-colorfu

    lib/idr.c: fix rcu related race with idr_find

    manfred-colorfu authored committed
    2nd part of the fixes needed for
    When the idr tree is either grown or shrunk, then the update to the number
    of layers and the top pointer were not atomic.  This race caused crashes.
    The attached patch fixes that by replicating the layers counter in each
    layer, thus idr_find doesn't need idp->layers anymore.
    Signed-off-by: Manfred Spraul <>
    Cc: Clement Calmels <>
    Cc: Nadia Derbey <>
    Cc: Pierre Peiffer <>
    Cc: <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  10. @fujita

    DMA-API.txt: fix description of pci_map_sg/dma_map_sg scatterlists ha…

    fujita authored committed
    - pci_map_sg/dma_map_sg are used with a scatter gather list that doesn't
      come from the block layer (e.g.  some network drivers do).
    - how IOMMUs merge adjacent elements of the scatter/gather list is
      independent of how the block layer determines sees elements.
    Signed-off-by: FUJITA Tomonori <>
    Cc: James Bottomley <>
    Cc: Tejun Heo <>
    Cc: Jens Axboe <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  11. frv: fix mmap2 error handling

    David Howells authored committed
    Fix the error handling in sys_mmap2().  Currently, if the pgoff check
    fails, fput() might have to be called (which it isn't), so do the pgoff
    check first, before fget() is called.
    Signed-off-by: David Howells <>
    Reported-by: Julia Lawall <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  12. @fenrus75

    taint: add missing comment

    fenrus75 authored committed
    The description for 'D' was missing in the comment...  (causing me a
    minute of WTF followed by looking at more of the code)
    Signed-off-by: Arjan van de Ven <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  13. @ozbenh

    radeonfb: fix problem with color expansion & alignment

    ozbenh authored committed
    The engine on some radeon variants locks up if color expansion is called
    for non aligned source data.  This patch enables a feature of the core
    fbdev to request aligned input pixmaps and uses the HW clipping engine to
    clip the output to the requested size
    Signed-off-by: Benjamin Herrenschmidt <>
    Tested-by: James Cloos <>
    Cc: "Rafael J. Wysocki" <>
    Cc: "David S. Miller" <>
    Cc: Krzysztof Helt <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  14. spi: fix spi_s3c24xx_gpio num_chipselect

    Ben Dooks authored committed
    The spi master driver must have num_chipselect set to allow the bus to
    initialise.  Pass this through the platform data.
    Signed-off-by: Ben Dooks <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  15. spi: fix spi_s3c24xx_gpio device handle lookup

    Ben Dooks authored committed
    The spidev_to_sg() call in spi_s3c24xx_gpio.c was using the wrong method
    to convert the spi device into the private data for the driver.  Fix this
    by using spi_master_get_devdata.
    Signed-off-by: Ben Dooks <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  16. @j4nn

    spi: au1550_spi full duplex dma fix

    j4nn authored committed
    Fix unsafe order in dma mapping operation: always flush data from the
    cache *BEFORE* invalidating it, to allow full duplex transfers where the
    same buffer may be used for both writes and reads.  Tested with mmc-spi.
    Signed-off-by: Jan Nikitenko <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  17. @artemysfr

    spi: fix spi_imx probe oopsing

    artemysfr authored committed
    Corrects spi_imx driver oops during initialization/probing: can't use
    drv_data before it's allocated.
    Signed-off-by: Julien Boibessot <>
    Acked-by: Sascha Hauer <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  18. @davidel

    epoll: introduce resource usage limits

    davidel authored committed
    It has been thought that the per-user file descriptors limit would also
    limit the resources that a normal user can request via the epoll
    interface.  Vegard Nossum reported a very simple program (a modified
    version attached) that can make a normal user to request a pretty large
    amount of kernel memory, well within the its maximum number of fds.  To
    solve such problem, default limits are now imposed, and /proc based
    configuration has been introduced.  A new directory has been created,
    named /proc/sys/fs/epoll/ and inside there, there are two configuration
      max_user_instances = Maximum number of devices - per user
      max_user_watches   = Maximum number of "watched" fds - per user
    The current default for "max_user_watches" limits the memory used by epoll
    to store "watches", to 1/32 of the amount of the low RAM.  As example, a
    256MB 32bit machine, will have "max_user_watches" set to roughly 90000.
    That should be enough to not break existing heavy epoll users.  The
    default value for "max_user_instances" is set to 128, that should be
    enough too.
    This also changes the userspace, because a new error code can now come out
    from EPOLL_CTL_ADD (-ENOSPC).  The EMFILE from epoll_create() was already
    listed, so that should be ok.
    [ use get_current_user()]
    Signed-off-by: Davide Libenzi <>
    Cc: Michael Kerrisk <>
    Cc: <>
    Cc: Cyrill Gorcunov <>
    Reported-by: Vegard Nossum <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  19. @sbabic

    spi: mpc52xx_psc_spi chipselect bugfix

    sbabic authored committed
    According to the manual the "tdfOnExit" flag must be set on the last byte
    we want to send.  The PSC controller holds SS low until the flag is set.
    However, the flag was set always on the last byte of the FIFO,
    independently if it is the last byte of the transfer.  This generates
    spurious toggling of the SS signals that breaks the protocol of some
    peripherals.  Fix.
    Signed-off-by: Stefano Babic <>
    Acked-by: Grant Likely <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  20. spi: avoid spidev crash when device is removed

    Wolfgang Ocker authored committed
    I saw a kernel oops in spidev_remove() when a spidev device was registered
    and I unloaded the SPI master driver:
    Unable to handle kernel paging request for data at address 0x00000004
    Faulting instruction address: 0xc01c0c50
    Oops: Kernel access of bad area, sig: 11 [#1]
    Modules linked in: spi_ppc4xx(-)
    NIP: c01c0c50 LR: c01bf9e4 CTR: c01c0c34
    REGS: cec89c30 TRAP: 0300   Not tainted  (
    MSR: 00021000 <ME>  CR: 24000228  XER: 20000007
    DEAR: 00000004, ESR: 00800000
    TASK = cf889040[2070] 'rmmod' THREAD: cec88000
    GPR00: 00000000 cec89ce0 cf889040 cec8e000 00000004 cec8e000 ffffffff 00000000
    GPR08: 0000001c c0336380 00000000 c01c0c34 00000001 1001a338 100e0000 100df49c
    GPR16: 100b54c0 100df49c 100ddd20 100f05a8 100b5340 100efd68 00000000 00000000
    GPR24: 100ec008 100f0428 c0327788 c0327794 cec8e0ac cec8e000 c0336380 00000000
    NIP [c01c0c50] spidev_remove+0x1c/0xe4
    LR [c01bf9e4] spi_drv_remove+0x2c/0x3c
    Call Trace:
    [cec89d00] [c01bf9e4] spi_drv_remove+0x2c/0x3c
    [cec89d10] [c01859a0] __device_release_driver+0x78/0xb4
    [cec89d20] [c0185ab0] device_release_driver+0x28/0x44
    [cec89d40] [c0184be8] bus_remove_device+0xac/0xd8
    [cec89d60] [c0183094] device_del+0x100/0x194
    [cec89d80] [c0183140] device_unregister+0x18/0x30
    [cec89da0] [c01bf30c] __unregister+0x20/0x34
    [cec89db0] [c0182778] device_for_each_child+0x38/0x74
    [cec89de0] [c01bf2d0] spi_unregister_master+0x28/0x44
    [cec89e00] [c01bfeac] spi_bitbang_stop+0x1c/0x58
    [cec89e20] [d908a5e0] spi_ppc4xx_of_remove+0x24/0x7c [spi_ppc4xx]
    IMHO a call to spi_set_drvdata() is missing in spidev_probe(). The patch
    below helped.
    Signed-off-by: Wolfgang Ocker <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  21. @RoelKluin

    spi documentation: use __initdata on struct

    RoelKluin authored committed
    Use __initdata for data, not __init.
    Signed-off-by: Roel Kluin <>
    Signed-off-by: David Brownell <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  22. hwmon: applesmc: make applesmc load automatically on startup

    Henrik Rydberg authored committed
    make use of the new dmi device loading support to automatically load the
    applesmc driver based on the dmi_match table.
    Signed-off-by: Henrik Rydberg <>
    Cc: Nicolas Boichat <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  23. @tiwai

    parport_serial: fix array overflow

    tiwai authored committed
    The netmos_9xx5_combo type assumes that PCI SSID provides always the
    correct value for the number of parallel and serial ports, but there are
    indeed broken devices with wrong numbers, which may result in Oops.
    This patch simply adds the check of the array range.
    Reference: Novell bnc#447067
    Signed-off-by: Takashi Iwai <>
    Cc: <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  24. @hkamezawa

    memcg: memory hotplug fix for notifier callback

    hkamezawa authored committed
    Fixes for memcg/memory hotplug.
    While memory hotplug allocate/free memmap, page_cgroup doesn't free
    page_cgroup at OFFLINE when page_cgroup is allocated via bootomem.
    (Because freeing bootmem requires special care.)
    Then, if page_cgroup is allocated by bootmem and memmap is freed/allocated
    by memory hotplug, page_cgroup->page == page is no longer true.
    But current MEM_ONLINE handler doesn't check it and update
    page_cgroup->page if it's not necessary to allocate page_cgroup.  (This
    was not found because memmap is not freed if SPARSEMEM_VMEMMAP is y.)
    And I noticed that MEM_ONLINE can be called against "part of section".
    So, freeing page_cgroup at CANCEL_ONLINE will cause trouble.  (freeing
    used page_cgroup) Don't rollback at CANCEL.
    One more, current memory hotplug notifier is stopped by slub because it
    sets NOTIFY_STOP_MASK to return vaule.  So, page_cgroup's callback never
    be called.  (low priority than slub now.)
    I think this slub's behavior is not intentional(BUG). and fixes it.
    Another way to be considered about page_cgroup allocation:
      - free page_cgroup at OFFLINE even if it's from bootmem
        and remove specieal handler. But it requires more changes.
    Signed-off-by: KAMEZAWA Hiruyoki <>
    Cc: Li Zefan <>
    Cc: Balbir Singh <>
    Cc: Pavel Emelyanov <>
    Tested-by: Badari Pulavarty <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  25. mm: vmalloc fix lazy unmapping cache aliasing

    Nick Piggin authored committed
    Jim Radford has reported that the vmap subsystem rewrite was sometimes
    causing his VIVT ARM system to behave strangely (seemed like going into
    infinite loops trying to fault in pages to userspace).
    We determined that the problem was most likely due to a cache aliasing
    issue.  flush_cache_vunmap was only being called at the moment the page
    tables were to be taken down, however with lazy unmapping, this can happen
    after the page has subsequently been freed and allocated for something
    else.  The dangling alias may still have dirty data attached to it.
    The fix for this problem is to do the cache flushing when the caller has
    called vunmap -- it would be a bug for them to write anything else to the
    mapping at that point.
    That appeared to solve Jim's problems.
    Reported-by: Jim Radford <>
    Signed-off-by: Nick Piggin <>
    Cc: Russell King <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
  26. Merge branch 'upstream-linus' of git://…

    * 'upstream-linus' of git://
      ocfs2: fix regression in ocfs2_read_blocks_sync()
      ocfs2: fix return value set in init_dlmfs_fs()
      ocfs2: Small documentation update
      ocfs2: fix wake_up in unlock_ast
      ocfs2: initialize stack_user lvbptr
      ocfs2: comments typo fix
Commits on Dec 1, 2008
  1. ocfs2: fix regression in ocfs2_read_blocks_sync()

    Mark Fasheh authored
    We're panicing in ocfs2_read_blocks_sync() if a jbd-managed buffer is seen.
    At first glance, this seems ok but in reality it can happen. My test case
    was to just run 'exorcist'. A struct inode is being pushed out of memory but
    is then re-read at a later time, before the buffer has been checkpointed by
    jbd. This causes a BUG to be hit in ocfs2_read_blocks_sync().
    Reviewed-by: Joel Becker <>
    Signed-off-by: Mark Fasheh <>
  2. ocfs2: fix return value set in init_dlmfs_fs()

    Coly Li authored Mark Fasheh committed
    In init_dlmfs_fs(), if calling kmem_cache_create() failed, the code will use return value from
    calling bdi_init(). The correct behavior should be set status as -ENOMEM before going to "bail:".
    Signed-off-by: Coly Li <>
    Acked-by: Sunil Mushran <>
    Signed-off-by: Mark Fasheh <>
  3. ocfs2: Small documentation update

    Mark Fasheh authored
    Remove some features from the "not-supported" list that are actually
    supported now.
    Signed-off-by: Mark Fasheh <>
  4. @teigland

    ocfs2: fix wake_up in unlock_ast

    teigland authored Mark Fasheh committed
    In ocfs2_unlock_ast(), call wake_up() on lockres before releasing
    the spin lock on it.  As soon as the spin lock is released, the
    lockres can be freed.
    Signed-off-by: David Teigland <>
    Signed-off-by: Mark Fasheh <>
  5. @teigland

    ocfs2: initialize stack_user lvbptr

    teigland authored Mark Fasheh committed
    The locking_state dump, ocfs2_dlm_seq_show, reads the lvb on locks where it
    has not yet been initialized by a lock call.
    Signed-off-by: David Teigland <>
    Acked-by: Joel Becker <>
    Signed-off-by: Mark Fasheh <>
  6. ocfs2: comments typo fix

    Coly Li authored Mark Fasheh committed
    This patch fixes two typos in comments of ocfs2.
    Signed-off-by: Coly Li <>
    Signed-off-by: Mark Fasheh <>
  7. em28xx: remove backward compat macro added on a previous fix

    Mauro Carvalho Chehab authored
    commit 50f3beb fixed em28xx-alsa
    locking schema. However, a backport macro was kept.
    This patch removes the macro, since it is not needed for the module
    compilation against upstream.
    Signed-off-by: Mauro Carvalho Chehab <>
  8. Merge branch 'upstream-linus' of git://…

    * 'upstream-linus' of git://
      libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ
      [libata] pata_rb532_cf: fix signature of the xfer function
      [libata] pata_rb532_cf: fix and rename register definitions
      ata_piix: add borked Tecra M4 to broken suspend list
  9. V4L/DVB (9748): em28xx: fix compile warning

    Hans Verkuil authored Mauro Carvalho Chehab committed
    Label fail_unreg is no longer used.
    Signed-off-by: Hans Verkuil <>
    Signed-off-by: Mauro Carvalho Chehab <>
Something went wrong with that request. Please try again.