Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: v2.6.28

Dec 24, 2008

  1. Linus Torvalds

    Linux 2.6.28

    Happy holidays..
    torvalds authored
  2. Linus Torvalds

    Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/mchehab/linux-2.6
    
    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
      V4L/DVB (9920): em28xx: fix NULL pointer dereference in call to VIDIOC_INT_RESET command
      V4L/DVB (9908a): MAINTAINERS: mark linux-uvc-devel as subscribers only
      V4L/DVB (9906): v4l2-compat: test for unlocked_ioctl as well.
      V4L/DVB (9885): drivers/media Kconfig's: fix bugzilla #12204
      V4L/DVB (9875): gspca - main: Fix vidioc_s_jpegcomp locking.
      V4L/DVB (9781): [PATCH] Cablestar 2 I2C retries (fix CableStar2 support)
      V4L/DVB (9780): dib0700: Stop repeating after user stops pushing button
    torvalds authored
  3. Linus Torvalds

    Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/tip/linux-2.6-tip
    
    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
      x86: disable X86_PTRACE_BTS
    torvalds authored
  4. Linus Torvalds

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/tiwai/sound-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
      ALSA: hda - Add missing terminators in patch_sigmatel.c
    torvalds authored
  5. ALSA: hda - Add missing terminators in patch_sigmatel.c

    Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
    Cc: stable@kernel.org
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Herton Ronaldo Krzesinski authored tiwai committed
  6. x86: disable X86_PTRACE_BTS

    there's a new ptrace arch level feature in .28:
    
      config X86_PTRACE_BTS
      bool "Branch Trace Store"
    
    it has broken fork() handling: the old DS area gets copied over into
    a new task without clearing it.
    
    Fixes exist but they came too late:
    
      c5dee61: x86, bts: memory accounting
      bf53de9: x86, bts: add fork and exit handling
    
    and are queued up for v2.6.29. This shows that the facility is still not
    tested well enough to release into a stable kernel - disable it for now and
    reactivate in .29. In .29 the hardware-branch-tracer will use the DS/BTS
    facilities too - hopefully resulting in better code.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Ingo Molnar authored
  7. parisc: disable UP-optimized flush_tlb_mm

    flush_tlb_mm's "optimized" uniprocessor case of allocating a new
    context for userspace is exposing a race where we can suddely return
    to a syscall with the protection id and space id out of sync, trapping
    on the next userspace access.
    
    Debugged-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Tested-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Kyle McMartin authored torvalds committed
  8. Linus Torvalds

    Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/airlied/drm-2.6
    
    * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
      drm/radeon: fix correctness of irq_enabled check for radeon.
    torvalds authored

Dec 23, 2008

  1. qcao

    edac: fix edac core deadlock when removing a device

    When deleting an edac device, we have to wait for its edac_dev.work to be
    completed before deleting the whole edac_dev structure.  Since we have no
    idea which work in current edac_poller's workqueue is the work we are
    conerned about, we wait for all work in the edac_poller's workqueue to be
    proceseed.  This is done via flush_cpu_workqueue() which inserts a
    wq_barrier into the tail of the workqueue and then sleeping on the
    completion of this wq_barrier.  The edac_poller will wake up sleepers when
    it is found.
    
    EDAC core creates only one kernel worker thread, edac_poller, to run the
    works of all current edac devices.  They share the same callback function
    of edac_device_workq_function(), which would grab the mutex of
    device_ctls_mutex first before it checks the device.  This is exactly
    where edac_poller and rmmod would have a great chance to deadlock.
    
    In below call trace of rmmod > ... >
    edac_device_del_device >
    edac_device_workq_teardown > flush_workqueue > flush_cpu_workqueue,
    
    device_ctls_mutex would have already been grabbed by
    edac_device_del_device().  So, on one hand rmmod would sleep on the
    completion of a wq_barrier, holding device_ctls_mutex; on the other hand
    edac_poller would be blocked on the same mutex when it's running any one
    of works of existing edac evices(Note, this edac_dev.work is likely to be
    totally irrelevant to the one that is being removed right now)and never
    would have a chance to run the work of above wq_barrier to wake rmmod up.
    
    edac_device_workq_teardown() should not be called within the critical
    region of device_ctls_mutex.  Just like is done in edac_pci_del_device()
    and edac_mc_del_mc(), where edac_pci_workq_teardown() and
    edac_mc_workq_teardown() are called after related mutex are released.
    
    Moreover, an edac_dev.work should check first if it is being removed.  If
    this is the case, then it should bail out immediately.  Since not all of
    existing edac devices are to be removed, this "shutting flag" should be
    contained to edac device being removed.  The current edac_dev.op_state can
    be used to serve this purpose.
    
    The original deadlock problem and the solution have been witnessed and
    tested on actual hardware.  Without the solution, rmmod an edac driver
    would result in below deadlock:
    
    root@localhost:/root> rmmod mv64x60_edac
    EDAC DEBUG: mv64x60_dma_err_remove()
    EDAC DEBUG: edac_device_del_device()
    EDAC DEBUG: find_edac_device_by_dev()
    
    (hang for a moment)
    
    INFO: task edac-poller:2030 blocked for more than 120 seconds.
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    edac-poller   D 00000000     0  2030      2
    Call Trace:
    [df159dc0] [c0071e3c] free_hot_cold_page+0x17c/0x304 (unreliable)
    [df159e80] [c000a024] __switch_to+0x6c/0xa0
    [df159ea0] [c03587d8] schedule+0x2f4/0x4d8
    [df159f00] [c03598a8] __mutex_lock_slowpath+0xa0/0x174
    [df159f40] [e1030434] edac_device_workq_function+0x28/0xd8 [edac_core]
    [df159f60] [c003beb4] run_workqueue+0x114/0x218
    [df159f90] [c003c674] worker_thread+0x5c/0xc8
    [df159fd0] [c004106c] kthread+0x5c/0xa0
    [df159ff0] [c0013538] original_kernel_thread+0x44/0x60
    INFO: task rmmod:2062 blocked for more than 120 seconds.
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    rmmod         D 0ff2c9fc     0  2062   1839
    Call Trace:
    [df119c00] [c0437a74] 0xc0437a74 (unreliable)
    [df119cc0] [c000a024] __switch_to+0x6c/0xa0
    [df119ce0] [c03587d8] schedule+0x2f4/0x4d8
    [df119d40] [c03591dc] schedule_timeout+0xb0/0xf4
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    qcao authored torvalds committed
  2. cgroups: avoid accessing uninitialized data in failure path

    If cgroup_get_rootdir() failed, free_cg_links() will be called in the
    failure path, but tmp_cg_links hasn't been initialized at that time.
    
    I introduced this bug in the 2.6.27 merge window.
    
    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Acked-by: Serge Hallyn <serue@us.ibm.com>
    Cc: Paul Menage <menage@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Li Zefan authored torvalds committed
  3. cgroups: suppress bogus warning messages

    Remove spurious warning messages that are thrown onto the console during
    cgroup operations.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Sharyathi Nagesh <sharyathi@in.ibm.com>
    Acked-by: Serge E. Hallyn <serge@hallyn.com>
    Cc: Paul Menage <menage@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Sharyathi Nagesh authored torvalds committed
  4. w1: fix slave selection on big-endian systems

    During test of the w1-gpio driver i found that in "w1.c:679
    w1_slave_found()" the device id is converted to little-endian with
    "cpu_to_le64()", but its not converted back to cpu format in "w1_io.c:293
    w1_reset_select_slave()".
    
    Based on a patch created by Andreas Hummel.
    
    [akpm@linux-foundation.org: remove unneeded cast]
    Reported-by: Andreas Hummel <andi_hummel@gmx.de>
    Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Evgeniy Polyakov authored torvalds committed
  5. Chris Elston

    rtc: rtc-isl1208: reject invalid dates

    This patch for the rtc-isl1208 driver makes it reject invalid dates.
    
    Signed-off-by: Chris Elston <celston@katalix.com>
    [a.zummo@towertech.it: added comment explaining the check]
    Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
    Cc: Hebert Valerio Riedel <hvr@gnu.org>
    Cc: David Brownell <david-b@pacbell.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    cdelston authored torvalds committed
  6. V4L/DVB (9920): em28xx: fix NULL pointer dereference in call to VIDIO…

    …C_INT_RESET command
    
    Fix a NULL pointer dereference that would occur if the video decoder tied to
    the em28xx supports the VIDIOC_INT_RESET call (for example: the cx25840 driver)
    
    Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Devin Heitmueller authored Mauro Carvalho Chehab committed
  7. drm/radeon: fix correctness of irq_enabled check for radeon.

    This check was introduced with the logic the wrong way around.
    
    Fixes regression: http://bugzilla.kernel.org/show_bug.cgi?id=12216
    
    Tested-by: François Valenduc <francois.valenduc@tvcablenet.be>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Dave Airlie authored

Dec 22, 2008

  1. Linus Torvalds

    Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/lenb/linux-acpi-2.6
    
    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
      ACPI: don't cond_resched() when irqs_disabled()
      ACPI: fix 2.6.28 acpi.debug_level regression
    torvalds authored
  2. Linus Torvalds

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6

    * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
      drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test
    torvalds authored
  3. JuliaLawall

    drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test

    In each case, if the NULL test is necessary, then the dereference should be
    moved below the NULL test.
    
    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)
    
    // <smpl>
    @@
    type T;
    expression E;
    identifier i,fld;
    statement S;
    @@
    
    - T i = E->fld;
    + T i;
      ... when != E
          when != i
      if (E == NULL) S
    + i = E->fld;
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    JuliaLawall authored bzolnier committed
  4. Linus Torvalds

    Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-…

    …linus
    
    * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
      MIPS: MIPS64R2: Fix buggy __arch_swab64
      MIPS: Fix preprocessor warnings flaged by GCC 4.4
    torvalds authored
  5. Linus Torvalds

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
      ppp: fix segfaults introduced by netdev_priv changes
      net: Fix module refcount leak in kernel_accept()
    torvalds authored
  6. MIPS: MIPS64R2: Fix buggy __arch_swab64

    The way the code is written it was assuming dshd has the function of a
    hypothetical dshw instruction ...
    
    Signed-off-by: David Daney <ddaney@caviumnetworks.com>
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    David Daney authored ralfbaechle committed
  7. MIPS: Fix preprocessor warnings flaged by GCC 4.4

    Signed-off-by: David Daney <ddaney@caviumnetworks.com>
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    David Daney authored ralfbaechle committed

Dec 20, 2008

  1. Null pointer deref with hrtimer_try_to_cancel()

    Impact: Prevent kernel crash with posix timer clockid CLOCK_MONOTONIC_RAW
    
    commit 2d42244 (clocksource:
    introduce CLOCK_MONOTONIC_RAW) introduced a new clockid, which is only
    available to read out the raw not NTP adjusted system time.
    
    The above commit did not prevent that a posix timer can be created
    with that clockid. The timer_create() syscall succeeds and initializes
    the timer to a non existing hrtimer base. When the timer is deleted
    either by timer_delete() or by the exit() cleanup the kernel crashes.
    
    Prevent the creation of timers for CLOCK_MONOTONIC_RAW by setting the
    posix clock function to no_timer_create which returns an error code.
    
    Reported-and-tested-by: Eric Sesterhenn <snakebyte@gmx.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Thomas Gleixner authored torvalds committed
  2. Linus Torvalds

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/ericvh/v9fs
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
      fs/9p: change simple_strtol to simple_strtoul
      9p: convert d_iname references to d_name.name
      9p: Remove potentially bad parameter from function entry debug print.
    torvalds authored
  3. Linus Torvalds

    Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/tip/linux-2.6-tip
    
    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
      x86: fix resume (S2R) broken by Intel microcode module, on A110L
      x86 gart: don't complain if no AMD GART found
      AMD IOMMU: panic if completion wait loop fails
      AMD IOMMU: set cmd buffer pointers to zero manually
      x86: re-enable MCE on secondary CPUS after suspend/resume
      AMD IOMMU: allocate rlookup_table with __GFP_ZERO
    torvalds authored
  4. Dmitry Adamushko

    x86: fix resume (S2R) broken by Intel microcode module, on A110L

    Impact: fix deadlock
    
    This is in response to the following bug report:
    
    Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id=12100
    Subject         : resume (S2R) broken by Intel microcode module, on A110L
    Submitter       : Andreas Mohr <andi@lisas.de>
    Date            : 2008-11-25 08:48 (19 days old)
    Handled-By      : Dmitry Adamushko <dmitry.adamushko@gmail.com>
    
    [ The deadlock scenario has been discovered by Andreas Mohr ]
    
    I think I might have a logical explanation why the system:
    
      (http://bugzilla.kernel.org/show_bug.cgi?id=12100)
    
    might hang upon resuming, OTOH it should have likely hanged each and every time.
    
    (1) possible deadlock in microcode_resume_cpu() if either 'if' section is
    taken;
    
    (2) now, I don't see it in spec. and can't experimentally verify it (newer
    ucodes don't seem to be available for my Core2duo)... but logically-wise, I'd
    think that when read upon resuming, the 'microcode revision' (MSR 0x8B) should
    be back to its original one (we need to reload ucode anyway so it doesn't seem
    logical if a cpu doesn't drop the version)... if so, the comparison with
    memcmp() for the full 'struct cpu_signature' is wrong... and that's how one of
    the aforementioned 'if' sections might have been triggered - leading to a
    deadlock.
    
    Obviously, in my tests I simulated loading/resuming with the ucode of the same
    version (just to see that the file is loaded/re-loaded upon resuming) so this
    issue has never popped up.
    
    I'd appreciate if someone with an appropriate system might give a try to the
    2nd patch (titled "fix a comparison && deadlock...").
    
    In any case, the deadlock situation is a must-have fix.
    
    Reported-by: Andreas Mohr <andi@lisas.de>
    Signed-off-by: Dmitry Adamushko <dmitry.adamushko@gmail.com>
    Tested-by: Andreas Mohr <andi@lisas.de>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Cc: <stable@kernel.org>
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    stablebits authored Ingo Molnar committed

Dec 19, 2008

  1. JuliaLawall

    fs/9p: change simple_strtol to simple_strtoul

    Since v9ses->uid is unsigned, it would seem better to use simple_strtoul that
    simple_strtol.
    
    A simplified version of the semantic patch that makes this change is as
    follows: (http://www.emn.fr/x-info/coccinelle/)
    
    // <smpl>
    @r2@
    long e;
    position p;
    @@
    
    e = simple_strtol@p(...)
    
    @@
    position p != r2.p;
    type T;
    T e;
    @@
    
    e =
    - simple_strtol@p
    + simple_strtoul
      (...)
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Acked-by: Eric Van Hensbergen <ericvh@gmail.com>
    JuliaLawall authored ericvh committed
  2. 9p: convert d_iname references to d_name.name

    d_iname is rubbish for long file names.
    Use d_name.name in printks instead.
    
    Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
    Acked-by: Eric Van Hensbergen <ericvh@gmail.com>
    Wu Fengguang authored ericvh committed
  3. Duane Griffin

    9p: Remove potentially bad parameter from function entry debug print.

    Signed-off-by: Duane Griffin <duaneg@dghda.com>
    Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
    duaneg authored ericvh committed
  4. Linus Torvalds

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixe…

    …s-2.6
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
      [SCSI] mpt fusion: clear list of outstanding commands on host reset
      [SCSI] scsi_lib: only call scsi_unprep_request() under queue lock
      [SCSI] ibmvstgt: move crq_queue_create to the end of initialization
      [SCSI] libiscsi REGRESSION: fix passthrough support with older iscsi tools
      [SCSI] aacraid: disable Dell Percraid quirk on Adaptec 2200S and 2120S
    torvalds authored
  5. Linus Torvalds

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/tiwai/sound-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
      ALSA: Fix a Oops bug in omap soc driver.
      ALSA: hda - Remove non-working headphone control for Dell laptops
      ALSA: hda - Add no-jd model for IDT 92HD73xx
      ALSA: Revert "ALSA: hda: removed unneeded hp_nid references"
      ALSA: hda - Add quirk for Dell Studio 17
      ALSA: hda - Fix silent HP output on D975
    torvalds authored
  6. Linus Torvalds

    Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block

    * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
      cciss: fix problem that deleting multiple logical drives could cause a panic
    torvalds authored
  7. Linus Torvalds

    Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/airlied/drm-2.6
    
    * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
      drm/i915: GEM on PAE has problems - disable it for now.
      drm/i915: Don't return busy for buffers left on the flushing list.
    torvalds authored
  8. Linus Torvalds

    Merge branch 'for-linus' of git://neil.brown.name/md

    * 'for-linus' of git://neil.brown.name/md:
      md: Don't read past end of bitmap when reading bitmap.
    torvalds authored
  9. Linus Torvalds

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/jbarnes/pci-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
      PCI hotplug: ibmphp: Fix module ref count underflow
      PCI hotplug: acpiphp wants a 64-bit _SUN
      PCI: pciehp: fix unexpected power off with pciehp_force
      PCI: fix aer resume sanity check
    torvalds authored
Something went wrong with that request. Please try again.