1. 14 Apr, 2003 40 commits
    • Andrew Morton's avatar
      [PATCH] flush_work_queue() fixes · 92b817f8
      Andrew Morton authored
      The workqueue code currently has a notion of a per-cpu queue being "busy".
      flush_scheduled_work()'s responsibility is to wait for a queue to be not busy.
      
      Problem is, flush_scheduled_work() can easily hang up.
      
      - The workqueue is deemed "busy" when there are pending delayed
        (timer-based) works.  But if someone repeatedly schedules new delayed work
        in the callback, the queue will never fall idle, and flush_scheduled_work()
        will not terminate.
      
      - If someone reschedules work (not delayed work) in the work function, that
        too will cause the queue to never go idle, and flush_scheduled_work() will
        not terminate.
      
      So what this patch does is:
      
      - Create a new "cancel_delayed_work()" which will try to kill off any
        timer-based delayed works.
      
      - Change flush_scheduled_work() so that it is immune to people re-adding
        work in the work callout handler.
      
        We can do this by recognising that the caller does *not* want to wait
        until the workqueue is "empty".  The caller merely wants to wait until all
        works which were pending at the time flush_scheduled_work() was called have
        completed.
      
        The patch uses a couple of sequence numbers for that.
      
      So now, if someone wants to reliably remove delayed work they should do:
      
      
      	/*
      	 * Make sure that my work-callback will no longer schedule new work
      	 */
      	my_driver_is_shutting_down = 1;
      
      	/*
      	 * Kill off any pending delayed work
      	 */
      	cancel_delayed_work(&my_work);
      
      	/*
      	 * OK, there will be no new works scheduled.  But there may be one
      	 * currently queued or in progress.  So wait for that to complete.
      	 */
      	flush_scheduled_work();
      
      
      The patch also changes the flush_workqueue() sleep to be uninterruptible.
      We cannot legally bale out if a signal is delivered anyway.
      92b817f8
    • Andrew Morton's avatar
      [PATCH] Fix oprofile on hyperthreaded P4's · ec7708a2
      Andrew Morton authored
      From: Philippe Elie <phil.el@wanadoo.fr>
      
      - oprofile is currently only profiling one sibling.  Fix that with
        appropriate register settings.
      
      - fix an oops which could occur if the userspace driver were to request a
        non-existent resource.
      
      - in NMI handler counter_config[i].event is accessible from user space so
        user can change the event during profiling by echo xxx >
        /dev/oprofile/event
      
      - event mask was wrong, the bit field is 6 bits length not 5, events
        SSE_INPUT_ASSIST and X87_SIMD_MOVES_UOP was affected by masking high bit of
        event number.
      ec7708a2
    • Andrew Morton's avatar
      [PATCH] missing file_lock conversions · 4e09bf0b
      Andrew Morton authored
      A few places were missing the rwlock->spinlock conversion.
      4e09bf0b
    • Linus Torvalds's avatar
    • Linus Torvalds's avatar
      Make the x86 flags save/restore code check the type of the · 81da5c11
      Linus Torvalds authored
      macro argument, so that portability issues will be found in
      a timely manner.
      81da5c11
    • Greg Kroah-Hartman's avatar
      [PATCH] Input: change input_init() to be a subsys initcall · 44d3f356
      Greg Kroah-Hartman authored
      This fixes oopses when it and the hid core are compiled into the kernel.
      44d3f356
    • Ben Collins's avatar
      [PATCH] Fix nodemgr.c compile · 57cf0f92
      Ben Collins authored
      57cf0f92
    • Arnaldo Carvalho de Melo's avatar
    • Geert Uytterhoeven's avatar
      [PATCH] Amiga Gayle IDE fixes · df27e778
      Geert Uytterhoeven authored
      Amiga Gayle IDE fixes: Set hwif->mmio to 2 to prevent the generic IDE core from
      messing with our resources
      df27e778
    • Geert Uytterhoeven's avatar
      [PATCH] Amiga keyboard updates · fdff3db6
      Geert Uytterhoeven authored
      Amiga keyboard: fix default keyboard mappings:
        - Map the parentheses keys on the numeric keypad to KPLEFTPAREN and
          KPRIGHTPAREN (was: NUMLOCK and SCROLLLOCK)
        - Map the Help key to HELP (was: F11)
        - Map the Amiga keys to LEFTMETA and RIGHTMETA (was: RESERVED)
      fdff3db6
    • Geert Uytterhoeven's avatar
      [PATCH] M68k IDE irq · ae3c937c
      Geert Uytterhoeven authored
      IDE: Print IRQ number in decimal on m68k
      ae3c937c
    • Geert Uytterhoeven's avatar
      [PATCH] M68k module support · 80502a1b
      Geert Uytterhoeven authored
      M68k: Add module support (from Roman Zippel)
      80502a1b
    • Geert Uytterhoeven's avatar
      [PATCH] Atari Atyfb fixes · d2da867a
      Geert Uytterhoeven authored
      Atyfb fixes for Atari:
        - Add missing allocation of default_par
        - Kill warnings in assignments
      d2da867a
    • Linus Torvalds's avatar
      Store EDID only when CONFIG_VIDEO_SELECT is set and edid · 58ebb0e6
      Linus Torvalds authored
      function actually exists.
      58ebb0e6
    • Linus Torvalds's avatar
      Remove all of arch/s390x and include/asm-s390x, since the 390x · 29ace1f8
      Linus Torvalds authored
      architecture is now just a 64-bit configuration option of the
      basic s390 architecture.
      29ace1f8
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (7/7) · 06da5d99
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      06da5d99
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (6/7) · e6268940
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      e6268940
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (5/7) · 71000494
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      71000494
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (4/7) · 042b54a1
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      042b54a1
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (3/7) · b50819c2
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      b50819c2
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (2/7) · 9491d77e
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      9491d77e
    • Martin Schwidefsky's avatar
      [PATCH] s390/s390x unification (1/7) · a922abe4
      Martin Schwidefsky authored
      Merge s390x and s390 to one architecture.
      a922abe4
    • Martin Schwidefsky's avatar
      [PATCH] s390: dasd driver coding style (2/2) · 0bde4b78
      Martin Schwidefsky authored
      s390 dasd driver:
       - Coding style adaptions. Removed almost all typedefs from the dasd driver.
      0bde4b78
    • Martin Schwidefsky's avatar
      [PATCH] s390: dasd driver coding style (1/2) · d96d6867
      Martin Schwidefsky authored
      s390 dasd driver:
       - Coding style adaptions. Removed almost all typedefs from the dasd driver.
      d96d6867
    • Martin Schwidefsky's avatar
      [PATCH] s390: dasd driver fixes. · 616dea43
      Martin Schwidefsky authored
      s390 dasd driver fixes:
       - Take request queue lock in dasd_end_request.
       - Make it work with CONFIG_DEVFS_FS=y.
       - Properly wait for the root device.
       - Cope with requests killed due to failed channel path.
       - Improve reference counting.
       - Remove devno from struct dasd_device.
       - Remove unnecessary bdget/bdput calls.
      616dea43
    • Martin Schwidefsky's avatar
      [PATCH] s390: uni-processor builds. · db165cde
      Martin Schwidefsky authored
      Fixes for s390 kernel configured with CONFIG_SMP=n.
      db165cde
    • Martin Schwidefsky's avatar
      [PATCH] s390: console changes. · a863aaa3
      Martin Schwidefsky authored
      s390 console fixes for 3215 and sclp.
      a863aaa3
    • Martin Schwidefsky's avatar
      [PATCH] s390: common i/o layer update. · fefe4ef5
      Martin Schwidefsky authored
      Common i/o layer fixes:
       - Fix for path no operational condition in cio_start.
       - Fix handling of user interruption parameter.
       - Add code to wait for devices in init_ccw_bus_type.
       - Move qdio states out of main cio state machine.
       - Reworked chsc data structures.
       - Add ccw_device_start_timeout.
       - Handle path verification required flag.
      fefe4ef5
    • Martin Schwidefsky's avatar
      [PATCH] s390: syscall numbers > 255. · 71e25a79
      Martin Schwidefsky authored
      Add support for system calls with numbers > 255.
      71e25a79
    • Martin Schwidefsky's avatar
      [PATCH] s390: base s390 fixes. · 2e1e5016
      Martin Schwidefsky authored
      s390 fixes:
       - Initialize timing related variables first and then enable the timer interrupt.
       - Normalize nano seconds to micro seconds in do_gettimeofday.
       - Add types for __kernel_timer_t and __kernel_clockid_t.
       - Fix ugly bug in switch_to: set prev to the return value of resume, otherwise
         prev still contains the previous process at the time resume was called and
         not the previous process at the time resume returned. They differ...
       - Add missing include to get the kernel compiled.
       - Get a closer match with the i386 termios.h file.
       - Cope with INITIAL_JIFFIES.
       - Define cpu_relax to do a cpu yield on VM and LPAR.
       - Don't reenable interrupts in program check handler.
       - Add pte_file definitions.
       - Fix PT_IEEE_IP special case in ptrace.
       - Use compare and swap to release the lock in _raw_spin_unlock.
       - Introduce invoke_softirq to switch to async. interrupt stack.
      2e1e5016
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk/linux-2.5-rmk · c3cc27c9
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      c3cc27c9
    • Russell King's avatar
      [PATCH] flush_cache_mm in zap_page_range · e0aceaae
      Russell King authored
      unmap_vmas() eventually calls tlb_start_vma(), where most architectures
      flush caches as necessary.  The flush here seems to make the
      flush_cache_range() in zap_page_range() redundant, and therefore can be
      removed.
      e0aceaae
    • Linus Torvalds's avatar
      Merge http://fbdev.bkbits.net/fbdev-2.5 · 9a72322d
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      9a72322d
    • Kai Mäkisara's avatar
      [PATCH] SCSI tape sysfs and module parameter additions · cb22f9fc
      Kai Mäkisara authored
      This contains the following changes:
       - export some driver parameters in sysfs
       - use new module parameter definitions
      cb22f9fc
    • Kai Mäkisara's avatar
      [PATCH] SCSI tape EOT write fixes · 6b38193b
      Kai Mäkisara authored
      This contains the following changes:
       - EOT detection fixed when writing in fixed block mode
       - asynchronous writes in fixed block mode and write threshold removed
         to enable the EOT fixes (the parameter accepted for compatibility)
      6b38193b
    • Kai Mäkisara's avatar
      [PATCH] SCSI tape ILI and timeout fixes · 69ca9ecd
      Kai Mäkisara authored
      This contains the following changes:
       - ILI fixed to work with really old drives
       - message printed in case block larger than read()
       - long timeout used when creating a tape partition
      69ca9ecd
    • Mikael Pettersson's avatar
      [PATCH] lapic_nmi_watchdog resume fix · d8ff1505
      Mikael Pettersson authored
      I managed to add a bug to the local APIC NMI watchdog's
      resume procedure in the driver model conversion for 2.5.67.
      The problem is that the resume procedure simply calls the
      enable procedure. If the NMI watchdog has been disabled by
      another driver (like oprofile or perfctr), then the NMI
      watchdog will incorrectly be re-enabled.
      
      I discovered this when updating the perfctr driver for 2.5.67
      and seeing unexpected NMIs after a resume from apm --suspend.
      
      We can fix this by unregistering the NMI watchdog from the
      driver model when disabling it (like the code did before the
      driver model changes), or by remembering the previous state
      at suspend and checking it at resume. The patch below uses
      the second, simpler, approach. Tested, please apply.
      d8ff1505
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/sparc-2.5 · ffc06ab0
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      ffc06ab0
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.5 · 612e744c
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      612e744c
    • James Bottomley's avatar
      fix scsi queue plugging behaviour · c2afc04e
      James Bottomley authored
      Following recent changes removing blk_queue_empty(), we were
      incorrectly plugging the queue some times (most often as part of
      the SCSI scan process).  This was causing a non-deterministic panic
      in the scan code because a destroyed queue was sometimes being
      unplugged and run.
      c2afc04e