1. 26 Apr, 2004 24 commits
    • Andrew Morton's avatar
      [PATCH] Use workqueue for call_usermodehelper · 35f4fc9f
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      call_usermodehelper uses keventd to create a thread, guaranteeing a nice,
      clean kernel thread.  Unfortunately, there is a case where
      call_usermodehelper is called with &bus->subsys.rwsem held (via
      bus_add_driver()), but keventd could be running bus_add_device(), which is
      blocked on the same lock.  The result is deadlock, and it comes from using
      keventd for both.
      
      In this case, it can be fixed by using a completely independent thread for
      call_usermodehelper, or an independent workqueue.  Workqueues have the
      infrastructure we need, so we use one.
      
      Move EXPORT_SYMBOL while we're there, too.
      
      akpm fixes: Make it compile with !CONFIG_KMOD
      35f4fc9f
    • Andrew Morton's avatar
      [PATCH] create singlethread_workqueue() · bf9e688d
      Andrew Morton authored
      From: Rusty Russell <rusty@rustcorp.com.au>
      
      Workqueues are a great primitive for running things from user context from
      a completely clean environment.  Unfortunately, they currently insist on
      creating one thread per CPU, which is overkill for many situations, so the
      more generic keventd workqueue is used for these.  Recently deadlocks using
      keventd were demonstrated, showing that it is not suitable for all uses.
      
      1) Clean up CPU iterators.  Always a nice touch.
      
      2) Add __create_workqueue() and create_singlethread_workqueue(),
         keeping source compatibility.
      
      3) Put workqueues in workqueue list even if !CONFIG_HOTPLUG_CPU (means
         we need a lock to protect that list).  Now we can tell if a wq is
         single-threaded using list_empty(&wq->list).
      
      4) For single-threaded workqueues, override CPU in queue_work,
         delayed_work_timer_fn and flush_workqueue to be 0.  flush_workqueue
         now does redundant passes for single-threaded workqueues, but the
         code remains simple.
      
      5) Make create_workqueue_thread return the thread, so we can easily
         kthread_bind for multi-threaded workqueues.
      
      
      akpm fixes:
      
      - Fix up is_single_threaded() handling
      
      - single-threaded wq thread does not have "/0" appended.
      bf9e688d
    • David Brownell's avatar
      [PATCH] One more USB fix · 18d0f151
      David Brownell authored
      Here's another fix it'd be good to merge ...
      
      No changes to the Linux code at all, but it'll makes the Windows
      configuration of a Linux device running the Ethernet/RNDIS gadget behave
      correctly on more versions of Windows.  (It might prevent some
      Bluescreening too.)
      18d0f151
    • Linus Torvalds's avatar
      Merge http://lia64.bkbits.net/to-linus-2.5 · 830cb0bc
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      830cb0bc
    • Greg Edwards's avatar
      [PATCH] ia64: Remove SN PDA page overflow check · 67cd8c87
      Greg Edwards authored
      There's an obsolete check in sn_init_pdas() left over from the 2.4
      days that panics if the cpu PDA and cpu_data area span more than a page.
      With 2.6, we're not limited to a page, so remove the check entirely.
      67cd8c87
    • Alex Williamson's avatar
      [PATCH] ia64: bug w/ shared interrupts · d88ad34e
      Alex Williamson authored
      I just ran into a bug introduced by the most recent iosapic.c patch.
      The scenario is a builtin driver is up and running happily.  A module
      loads for a devices that happens to share the same interrupt vector,
      in this case a network driver.  The module calls pci_enable_device()
      as it should, which eventually lands in iosapic_enable_intr().  We
      then proceed to mask the interrupt and kill the device that's already
      running.  As a bonus, request_interrupt() doesn't fix the problem
      because we only call the startup for the interrupt handler on the
      first action attached to the interrupt.
      
      I think the best way out of this is simply to detect when an action is
      already attached to a vector and leave it alone.  This also prevents
      interrupts from moving to other cpus (on boxes w/o irq redirection)
      for no good reason.
      d88ad34e
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/gregkh/linux/fix-2.6 · 85283764
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      85283764
    • Jens Axboe's avatar
      [PATCH] correct LoEj logic · 09b9f933
      Jens Axboe authored
      The logic got a little foo-bar'ed in the last patch, we should have keep
      the old logic.  Ie LoEj bit (2nd) must always be set, just clear it for
      known non-capable of loading drives.
      09b9f933
    • Greg Kroah-Hartman's avatar
    • Greg Kroah-Hartman's avatar
      [PATCH] USB: fix up fake usb_interface structure in hiddev · d07cc72d
      Greg Kroah-Hartman authored
      This fixes a oops in the current kernel tree.
      d07cc72d
    • Jens Axboe's avatar
      [PATCH] don't log drive loading failures · 3dcad070
      Jens Axboe authored
      This is an old bug that often confuses people, rightfully.
      
      For some laptop and server type cdroms, the drives advertise themselves
      as tray loading even if they are caddy-like or slot-in loaders.  This
      means they cannot insert the media on their own, and this generates a
      5/24/00 error to START_STOP_UNIT.
      
      This prevents the logging of such a failure, and also fixes the
      generation of such a bad command in case the mech type was correctly set
      by the drive.
      3dcad070
    • Armin Schindler's avatar
      [PATCH] ISDN CAPI: add ncci list semaphore · 303729f3
      Armin Schindler authored
      Fix race conditions of ISDN CAPI's internal ncci list handling by using
      a per capidev semaphore.
      303729f3
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.6 · 5ac16be8
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      5ac16be8
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/sparc-2.6 · 2ce6c0f5
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      2ce6c0f5
    • Linus Torvalds's avatar
      Merge DVB updates · 804ca075
      Linus Torvalds authored
      804ca075
    • Michael Hunold's avatar
      [PATCH] DVB: Follow saa7146 changes in affected V4L drivers · 2a4e095a
      Michael Hunold authored
       - [V4L] follow changes in saa7146 driver: mxb, dpc7146, hexium_orion,
         hexium_gemini
      2a4e095a
    • Michael Hunold's avatar
      [PATCH] DVB: Misc. DVB USB driver updates · b8bd49a4
      Michael Hunold authored
       - [DVB] ttusb-dec:
         - Add a parameter to dvb_filter_pes2ts function to specify whether
           the packet is a payload unit start or not
         - Use the hotplug firmware loader for 2.6 kernels instead of
           compiling the firmware into the module. 
         - Correct the USB id of the DEC3000-s, add basic support
      
       - [DVB] ttusb-budget:
          - Remove spurious discontinuity message when starting streaming
      b8bd49a4
    • Michael Hunold's avatar
      [PATCH] DVB: Misc. DVB frontend driver updates · 76aec2dc
      Michael Hunold authored
       - [DVB] follow changes in dvb-core for frontend drivers (ves1x93,
         ves1820, nxt6000, sp887x, tda1004x, stv0299, mt312, alps_tdlb7,
         alps_tdmb7, at76c651, cx24110, dst, dvb_dummy_fe, grundig_29504-401,
         grundig_29504-491)
       - [DVB] tda1004x: updated timeout to 800ms, implemented FE_SLEEP
       - [DVB] cx24110: add FE_CAN_RECOVER to reduce kdvb-fe CPU load
       - [DVB] grundig_29504-401: added 200ms delay after first FE_INIT,
         Implemented FE_GET_FRONTEND
       - [DVB] alps_tdlb7, alps_tdmb7: upped tuning delays to fix tuning
      76aec2dc
    • Michael Hunold's avatar
      [PATCH] DVB: AV7110 DVB driver updates · a652d124
      Michael Hunold authored
       - [DVB] av7110 update:
         - speed up firmware loading
         - follow internal API changes in saa7146 driver
         - introduced some symbolic constants for a/v dec cmds
         - change default for hw_sections to 0 to enable crc checks
      a652d124
    • Michael Hunold's avatar
      [PATCH] DVB: Other DVB core updates · eb5908c7
      Michael Hunold authored
       - [DVB] remove superflous memset() which caused section data to be
         overwritten when a) there are two sections in one TS packet, and b)
         the first section was smaller than 18 bytes; thanks to Jean-Claude
         Repetto for tracking this down
       - [DVB] starting a ts filter on a running section filter's pid did
         break the section filter; fixed. 
       - [DVB] integrate ULE Decapsulation code, thanks to gcs - Global
         Communication & Services GmbH.  and Institute for Computer Sciences
         Salzburg University.  Hilmar Linder <hlinder@cosy.sbg.ac.at> and
         Wolfram Stering <wstering@cosy.sbg.ac.at>
       - [DVB] fix the module use count bugs, thanks to Hernan A.Perez Masci
         for his initial work on this problem
       - [DVB] if dvb_frontend_internal_ioctl() returns an error code, be sure
         to deliver it to the calling application, don't ignore it (fixes the
         bug that the frontend0 doesn't respond properly to unknown ioctls...)
       - [DVB] major frontend code clean up, rewritten core tuning loop.
         Thanks to Andrew de Quincey.
       - [DVB] follow changes in dvb-core in skystar2, dvb-bt8xx
      eb5908c7
    • Michael Hunold's avatar
      [PATCH] DVB: Add EN50221 cam support to dvb-core · 7679ba7b
      Michael Hunold authored
       - [DVB] add generic functions for EN50221 CAM interfaces
      7679ba7b
    • Michael Hunold's avatar
      [PATCH] DVB: Update DVB budget drivers · 2b7f4a04
      Michael Hunold authored
       - [DVB] budget-av: patch by Kenneth Aafløy to add support for Typhoon
         DVB-S budget card
       - [DVB] budget.c: support for Fujitsu-Siemens Activy Card
       - [DVB] budget-ci: add preliminary CI support
      2b7f4a04
    • Michael Hunold's avatar
      [PATCH] DVB: Documentation and Kconfig updazes · 2343a8c0
      Michael Hunold authored
       - [DVB] misc. documentation updates, KConfig help file updates
       - [DVB] make Twinhan driver depend on bt8xx
      2343a8c0
    • Michael Hunold's avatar
      [PATCH] V4L: Update the saa7146 driver · 9dab501b
      Michael Hunold authored
       - [DVB] saa7146 driver updates:
         - remove bogus v_calc and h_calc parameters, which can be easily
           retrieved from other values
         - add class parameter to i2c initialization
         - let resource handling provide more useful informations
         - sanitize overlay/capture locking
      9dab501b
  2. 25 Apr, 2004 16 commits