1. 07 Mar, 2008 19 commits
    • Bartlomiej Zolnierkiewicz's avatar
      ide-cd: mark REQ_TYPE_ATA_PC write requests with REQ_RW flag · b348487f
      Bartlomiej Zolnierkiewicz authored
      On Thursday 06 March 2008, walt wrote:
      
      > For me, this commit causes the problem it's intended to fix:
      > 
      > commit 9f10d9ee
      > Author: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      > Date:   Tue Feb 26 21:50:35 2008 +0100
      > 
      >      ide-cd: fix 'ireason' handling for REQ_TYPE_ATA_PC requests
      > 
      >      This fixes some hangs caused by not finishing the transfer before ending
      >      the request and also makes use of 'ireason == 1' quirk for spurious IRQs.
      > 
      > When I mount a CD there is a long delay, and I see this error message:
      > 
      > hdc: ide_cd_check_ireason: wrong transfer direction!
      > cdrom: failed setting lba address space
      > hdc: status error: status=0x58 { DriveReady SeekComplete DataRequest }
      > ide: failed opcode was: unknown
      > hdc: drive not ready for command
      > <repeated many times>
      > 
      > When I revert this commit everything works properly again, including
      > CD burning.
      
      It turned out that REQ_TYPE_ATA_PC write requests were not marked as such
      (the previous commit assumed them to be).
      Reported-by: default avatarwalt <w41ter@gmail.com>
      Tested-by: default avatarwalt <w41ter@gmail.com>
      Reviewed-by: default avatarBorislav Petkov <petkovbb@googlemail.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b348487f
    • Tilman Schmidt's avatar
      gigaset: fix Oops on module unload regression · 5d49c101
      Tilman Schmidt authored
      The card state mutex was only initialized when a device was connected,
      but used during unload unconditionally, leading to an Oops if a driver
      was loaded and unloaded again without ever connecting a device.
      
      Fix this by initializing the mutex as soon as the structure is allocated.
      Also add a missing mutex unlock revealed in the same execution path.
      
      This fixes a possible Oops in 2.6.25-rc that was introduced by commit
      e468c048 ("Gigaset: permit module
      unload").
      
      Thanks to Roland Kletzing for reporting this problem.
      Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
      Tested-by: default avatarRoland Kletzing <devzero@web.de>
      Cc: Hansjoerg Lipp <hjlipp@web.de>
      Cc: Karsten Keil <kkeil@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5d49c101
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of... · 1d6789c3
      Linus Torvalds authored
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel:
        sched: don't allow rt_runtime_us to be zero for groups having rt tasks
        sched: rt-group: fixup schedulability constraints calculation
        sched: fix the wrong time slice value for SCHED_FIFO tasks
        sched: export task_nice
        sched: balance RT task resched only on runqueue
        sched: retain vruntime
      1d6789c3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 · 0a9e0703
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
        x86-boot: don't request VBE2 information
        x86: re-add reboot fixups
        x86: fix typo in step.c
        x86: fix merge mistake in i387.c
        x86: clear DF before calling signal handler
      0a9e0703
    • Ingo Molnar's avatar
      drivers/char/esp.c: fix bootup lockup · 80d38f9a
      Ingo Molnar authored
      randconfig testing found a bootup lockup in drivers/char/esp.c because
      of a spinlock that wasn't correctly initialized.
      
      I'm not sure why it became more prominent in 2.6.25-rc4, the bug seems
      rather old and i've been doing allyesconfig bootups for ages with
      CONFIG_ESP enabled.
      
      This fixes this bootup lockup:
      
       PM: Adding info for No Bus:ttyP63
       ttyP32 at 0x0240 (irq = 0) is an ESP primary port
       BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
       Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
        [<c08649be>] _spin_lock_irqsave+0x5e/0x80
        [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
        [<c0b9fbfe>] espserial_init+0x2be/0x6e0
        [<c0b877a3>] kernel_init+0x83/0x260
        [<c0b9f940>] ? espserial_init+0x0/0x6e0
        [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
        [<c0b87720>] ? kernel_init+0x0/0x260
        [<c0b87720>] ? kernel_init+0x0/0x260
        [<c0104507>] kernel_thread_helper+0x7/0x10
        =======================
      
      kzalloc() is not the way to initialize spinlocks anymore.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      80d38f9a
    • Dhaval Giani's avatar
      sched: don't allow rt_runtime_us to be zero for groups having rt tasks · 521f1a24
      Dhaval Giani authored
      This patch checks if we can set the rt_runtime_us to 0. If there is a
      realtime task in the group, we don't want to set the rt_runtime_us as 0
      or bad things will happen. (that task wont get any CPU time despite
      being TASK_RUNNNG)
      Signed-off-by: default avatarDhaval Giani <dhaval@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      521f1a24
    • Peter Zijlstra's avatar
      sched: rt-group: fixup schedulability constraints calculation · 2692a240
      Peter Zijlstra authored
      it was only possible to configure the rt-group scheduling parameters
      beyond the default value in a very small range.
      
      that's because div64_64() has a different calling convention than
      do_div() :/
      
      fix a few untidies while we are here; sysctl_sched_rt_period may overflow
      due to that multiplication, so cast to u64 first. Also that RUNTIME_INF
      juggling makes little sense although its an effective NOP.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2692a240
    • Miao Xie's avatar
      sched: fix the wrong time slice value for SCHED_FIFO tasks · 1868f958
      Miao Xie authored
      Function sys_sched_rr_get_interval returns wrong time slice value for
      SCHED_FIFO tasks. The time slice for SCHED_FIFO tasks should be 0.
      Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1868f958
    • Pavel Roskin's avatar
      sched: export task_nice · 150d8bed
      Pavel Roskin authored
      The API is trivial, and so is the implementation.
      Signed-off-by: default avatarPavel Roskin <proski@gnu.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      150d8bed
    • Steven Rostedt's avatar
      sched: balance RT task resched only on runqueue · 6fa46fa5
      Steven Rostedt authored
      Sripathi Kodi reported a crash in the -rt kernel:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=435674
      
      this is due to a place that can reschedule a task without holding
      the tasks runqueue lock.  This was caused by the RT balancing code
      that pulls RT tasks to the current run queue and will reschedule the
      current task.
      
      There's a slight chance that the pulling of the RT tasks will release
      the current runqueue's lock and retake it (in the double_lock_balance).
      During this time that the runqueue is released, the current task can
      migrate to another runqueue.
      
      In the prio_changed_rt code, after the pull, if the current task is of
      lesser priority than one of the RT tasks pulled, resched_task is called
      on the current task. If the current task had migrated in that small
      window, resched_task will be called without holding the runqueue lock
      for the runqueue that the task is on.
      
      This race condition also exists in the mainline kernel and this patch
      adds a check to make sure the task hasn't migrated before calling
      resched_task.
      Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
      Tested-by: default avatarSripathi Kodi <sripathik@in.ibm.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      6fa46fa5
    • Peter Zijlstra's avatar
      sched: retain vruntime · 810b3817
      Peter Zijlstra authored
      Kei Tokunaga reported an interactivity problem when moving tasks
      between control groups.
      
      Tasks would retain their old vruntime when moved between groups, this
      can cause funny lags. Re-set the vruntime on group move to fit within
      the new tree.
      Reported-by: default avatarKei Tokunaga <tokunaga.keiich@jp.fujitsu.com>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      810b3817
    • Peter Korsgaard's avatar
      x86-boot: don't request VBE2 information · 1722770f
      Peter Korsgaard authored
      The new x86 setup code (4fd06960) broke booting on an old P3/500MHz
      with an onboard Voodoo3 of mine. After debugging it, it turned out
      to be caused by the fact that the vesa probing now asks for VBE2 data.
      
      Disassembing the video BIOS shows that it overflows the vesa_general_info
      structure when VBE2 data is requested because the source addresses for the
      information strings which get strcpy'ed to the buffer lie outside the 32K
      BIOS code (and hence contain long sequences of 0xff's).
      
      E.G.:
      
      get_vbe_controller_info:
      00002A9C  60                pushaw
      00002A9D  1E                push ds
      00002A9E  0E                push cs
      00002A9F  1F                pop ds
      00002AA0  2BC9              sub cx,cx
      00002AA2  6626813D56424532  cmp dword [es:di],0x32454256 ; "VBE2"
      00002AAA  7501              jnz .1
      00002AAC  41                inc cx
      .1:
      00002AAD  51                push cx
      00002AAE  B91400            mov cx,0x14
      00002AB1  BED47F            mov si, controller_header
      00002AB4  57                push di
      00002AB5  F3A4              rep movsb ; copy vbe1.2 header
      
      00002AB7  B9EC00            mov cx,0xec
      00002ABA  2AC0              sub al,al
      00002ABC  F3AA              rep stosb ; zero pad remainder
      
      00002ABE  5F                pop di
      00002ABF  E8EB0D            call word get_memory
      00002AC2  C1E002            shl ax,0x2
      00002AC5  26894512          mov [es:di+0x12],ax ; total memory
      00002AC9  26C745040003      mov word [es:di+0x4],0x300 ; VBE version
      00002ACF  268C4D08          mov [es:di+0x8],cs
      00002AD3  268C4D10          mov [es:di+0x10],cs
      00002AD7  59                pop cx
      00002AD8  E361              jcxz .done ; VBE2 requested?
      00002ADA  8D9D0001          lea bx,[di+0x100]
      00002ADE  53                push bx
      00002ADF  87DF              xchg bx,di ; di now points to 2nd half
      00002AE1  26C747140001      mov word [es:bx+0x14],0x100 ; sw rev
      
      00002AE7  26897F06          mov [es:bx+0x6],di		; oem string
      00002AEB  268C4708          mov [es:bx+0x8],es
      00002AEF  BE5280            mov si,0x8052 ; oem string
      00002AF2  E87A1B            call word strcpy
      
      00002AF5  26897F0E          mov [es:bx+0xe],di ; video mode list
      00002AF9  268C4710          mov [es:bx+0x10],es
      00002AFD  B91E00            mov cx,0x1e
      00002B00  BEE87F            mov si,vidmodes
      00002B03  F3A5              rep movsw
      
      00002B05  26897F16          mov [es:bx+0x16],di ; oem vendor
      00002B09  268C4718          mov [es:bx+0x18],es
      00002B0D  BE2480            mov si,0x8024 ; oem vendor
      00002B10  E85C1B            call word strcpy
      
      00002B13  26897F1A          mov [es:bx+0x1a],di ; oem product
      00002B17  268C471C          mov [es:bx+0x1c],es
      00002B1B  BE3880            mov si,0x8038 ; oem product
      00002B1E  E84E1B            call word strcpy
      
      00002B21  26897F1E          mov [es:bx+0x1e],di ; oem product rev
      00002B25  268C4720          mov [es:bx+0x20],es
      00002B29  BE4580            mov si,0x8045 ; oem product rev
      00002B2C  E8401B            call word strcpy
      
      00002B2F  58                pop ax
      00002B30  B90001            mov cx,0x100
      00002B33  2BCF              sub cx,di
      00002B35  03C8              add cx,ax
      00002B37  2AC0              sub al,al
      00002B39  F3AA              rep stosb ; zero pad
      .done:
      00002B3B  1F                pop ds
      00002B3C  61                popaw
      00002B3D  B84F00            mov ax,0x4f
      00002B40  C3                ret
      
      (The full BIOS can be found at http://peter.korsgaard.com/vgabios.bin
      if interested).
      
      The old setup code didn't ask for VBE2 info, and the new code doesn't
      actually do anything with the extra information, so the fix is to simply
      not request it. Other BIOS'es might have the same problem.
      Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1722770f
    • Ingo Molnar's avatar
      x86: re-add reboot fixups · 7432d149
      Ingo Molnar authored
      Jan Beulich noticed that the reboot fixups went missing during
      reboot.c unification.
      
      (commit 4d022e35)
      
      Geode and a few other rare boards with special reboot quirks are
      affected.
      Reported-by: default avatarJan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7432d149
    • Jan Beulich's avatar
      x86: fix typo in step.c · d032b31a
      Jan Beulich authored
      TIF_DEBUGCTLMSR has no meaning in the actual MSR...
      Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d032b31a
    • Jan Beulich's avatar
      x86: fix merge mistake in i387.c · 609b5297
      Jan Beulich authored
      convert_fxsr_to_user() in 2.6.24's i387_32.c did this, and
      convert_to_fxsr() also does the inverse, so I assume it's an oversight
      that it is no longer being done.
      
      [ mingo@elte.hu:
      
        we encode it this way because there's no space for the 'FPU Last
        Instruction Opcode' (->fop) field in the legacy user_i387_ia32_struct
        that PTRACE_GETFPREGS/PTRACE_SETFPREGS uses.
      
        it's probably pure legacy - i'd be surprised if any user-space relied on
        the FPU Last Opcode in any way. But indeed we used to do it previously
        so the most conservative thing is to preserve that piece of information.
      ]
      Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      609b5297
    • Aurelien Jarno's avatar
      x86: clear DF before calling signal handler · e40cd10c
      Aurelien Jarno authored
      The Linux kernel currently does not clear the direction flag before
      calling a signal handler, whereas the x86/x86-64 ABI requires that.
      
      Linux had this behavior/bug forever, but this becomes a real problem
      with gcc version 4.3, which assumes that the direction flag is
      correctly cleared at the entry of a function.
      
      This patches changes the setup_frame() functions to clear the
      direction before entering the signal handler.
      Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Acked-by: default avatarH. Peter Anvin <hpa@zytor.com>
      e40cd10c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.25 · ce4796d1
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.25:
        sh: Fix up the sh64 build.
        sh: Fix up SH7710 VoIP-GW build.
        sh: Flag PMB support as EXPERIMENTAL.
        sh: Update r7780mp defconfig.
        fb: hitfb: Balance probe/remove section annotations.
        sh: hp6xx: Fix up hp6xx_apm build failure.
        fb: pvr2fb: Fix up remaining section mismatch.
        sh: Fix up section mismatches.
        sh: hp6xx: Correct APM output.
        sh: update se7780 defconfig
        sh: replace remaining __FUNCTION__ occurrences
        sh: export copy-page() to modules
        sh_ksyms_32.c update for gcc 4.3
        sh/mm/pg-sh7705.c must #include <linux/fs.h>
      ce4796d1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 · 46fbdf89
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6:
        [Blackfin] arch: current_l1_stack_save is a pointer, so use NULL rather than 0
        [Blackfin] arch: fix atomic and32/xor32 comments and ENDPROC markings
        [Blackfin] arch: fix bug - allow SDH driver to be used as module
        [Blackfin] arch: to kill syscalls missing warning by adding new timerfd syscalls
      46fbdf89
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 · a0863130
      Linus Torvalds authored
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
        [IA64] kprobes arch consolidation build fix
        [IA64] update efi region debugging to use MB, GB and TB as well as KB
        [IA64] use dev_printk in video quirk
        [IA64] remove remaining __FUNCTION__ occurrences
        [IA64] remove unnecessary nfs includes from sys_ia32.c
        [IA64] remove CONFIG_SMP ifdef in ia64_send_ipi()
        [IA64] arch_ptrace() cleanup
        [IA64] remove duplicate code from arch_ptrace()
        [IA64] convert sys_ptrace to arch_ptrace
        [IA64] remove find_thread_for_addr()
        [IA64] do not sync RBS when changing PT_AR_BSP or PT_CFM
        [IA64] access user RBS directly
      a0863130
  2. 06 Mar, 2008 21 commits