1. 24 Oct, 2005 7 commits
    • Bjorn Helgaas's avatar
      [SERIAL] support the Exsys EX-4055 4S four-port card · add7b58e
      Bjorn Helgaas authored
      
      Tested by Wolfgang Denk with this device:
      
          00:0f.0 Network controller: PLX Technology, Inc. PCI <-> IOBus Bridge (rev 01)
              Subsystem: Exsys EX-4055 4S(16C550) RS-232
              Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
              Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
              Interrupt: pin A routed to IRQ 10
              Region 0: Memory at 80100000 (32-bit, non-prefetchable) [size=128]
              Region 1: I/O ports at 7080 [size=128]
              Region 2: I/O ports at 7400 [size=32]
      
          00:0f.0 Class 0280: 10b5:9050 (rev 01)
              Subsystem: d84d:4055
      
      Results with this patch:
      
          Serial: 8250/16550 driver $Revision: 1.90 $ 32 ports, IRQ sharing enabled
          ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
          PCI: Found IRQ 10 for device 0000:00:0f.0
          ttyS4 at I/O 0x7400 (irq = 10) is a 16550A
          ttyS5 at I/O 0x7408 (irq = 10) is a 16550A
          ttyS6 at I/O 0x7410 (irq = 10) is a 16550A
          ttyS7 at I/O 0x7418 (irq = 10) is a 16550A
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      add7b58e
    • Takashi Iwai's avatar
      [PATCH] ALSA: Fix Oops of suspend/resume with generic drivers · d5c5d8fe
      Takashi Iwai authored
      
      The patch fixes Oops from sound drivers using generic platform device
      but have no suspend/resume callbacks.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d5c5d8fe
    • Miklos Szeredi's avatar
      [PATCH] uml: fix compile failure for TT mode · 10ded949
      Miklos Szeredi authored
      
      Without this patch, uml compile fails with:
      
        LD      .tmp_vmlinux1
      arch/um/kernel/built-in.o: In function `config_gdb_cb':
      arch/um/kernel/tt/gdb.c:129: undefined reference to `TASK_EXTERN_PID'
      
      Tested on i386, but fix needed on x86_64 too AFAICS.
      Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      10ded949
    • Oleg Nesterov's avatar
      [PATCH] posix-timers: fix posix_cpu_timer_set() vs run_posix_cpu_timers() race · a69ac4a7
      Oleg Nesterov authored
      
      This might be harmless, but looks like a race from code inspection (I
      was unable to trigger it).  I must admit, I don't understand why we
      can't return TIMER_RETRY after 'spin_unlock(&p->sighand->siglock)'
      without doing bump_cpu_timer(), but this is what original code does.
      
      posix_cpu_timer_set:
      
      	read_lock(&tasklist_lock);
      
      	spin_lock(&p->sighand->siglock);
      	list_del_init(&timer->it.cpu.entry);
      	spin_unlock(&p->sighand->siglock);
      
      We are probaly deleting the timer from run_posix_cpu_timers's 'firing'
      local list_head while run_posix_cpu_timers() does list_for_each_safe.
      
      Various bad things can happen, for example we can just delete this timer
      so that list_for_each() will not notice it and run_posix_cpu_timers()
      will not reset '->firing' flag. In that case,
      
      	....
      
      	if (timer->it.cpu.firing) {
      		read_unlock(&tasklist_lock);
      		timer->it.cpu.firing = -1;
      		return TIMER_RETRY;
      	}
      
      sys_timer_settime() goes to 'retry:', calls posix_cpu_timer_set() again,
      it returns TIMER_RETRY ...
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a69ac4a7
    • Oleg Nesterov's avatar
      [PATCH] posix-timers: exit path cleanup · ca531a0a
      Oleg Nesterov authored
      
      No need to rebalance when task exited
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ca531a0a
    • Oleg Nesterov's avatar
      [PATCH] posix-timers: remove false BUG_ON() from run_posix_cpu_timers() · 3de463c7
      Oleg Nesterov authored
      
      do_exit() clears ->it_##clock##_expires, but nothing prevents
      another cpu to attach the timer to exiting process after that.
      
      After exit_notify() does 'write_unlock_irq(&tasklist_lock)' and
      before do_exit() calls 'schedule() local timer interrupt can find
      tsk->exit_state != 0. If that state was EXIT_DEAD (or another cpu
      does sys_wait4) interrupted task has ->signal == NULL.
      
      At this moment exiting task has no pending cpu timers, they were cleaned
      up in __exit_signal()->posix_cpu_timers_exit{,_group}(), so we can just
      return from irq.
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3de463c7
    • Oleg Nesterov's avatar
      [PATCH] posix-timers: fix cleanup_timers() and run_posix_cpu_timers() races · 108150ea
      Oleg Nesterov authored
      
      1. cleanup_timers() sets timer->task = NULL under tasklist + ->sighand locks.
         That means that this code in posix_cpu_timer_del() and posix_cpu_timer_set()
      
         		lock_timer(timer);
      		if (timer->task == NULL)
      			return;
      		read_lock(tasklist);
      		put_task_struct(timer->task)
      
         is racy. With this patch timer->task modified and accounted only under
         timer->it_lock. Sadly, this means that dead task_struct won't be freed
         until timer deleted or armed.
      
      2. run_posix_cpu_timers() collects expired timers into local list under
         tasklist + ->sighand again. That means that posix_cpu_timer_del()
         should check timer->it.cpu.firing under these locks too.
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      108150ea
  2. 23 Oct, 2005 14 commits
  3. 22 Oct, 2005 3 commits
  4. 21 Oct, 2005 12 commits
  5. 20 Oct, 2005 4 commits