1. 09 Dec, 2004 4 commits
    • David Brownell's avatar
      [PATCH] USB: EHCI qh update race fix · 6679699c
      David Brownell authored
      This makes the EHCI driver stop trying to update a live QH ... it's
      not like OHCI, that can't be done safely because of a hardware race.
      The fix:
      
          - Unlinks the QH before updating it; only the tail can safely be
            updated "live", not the queue head.  The async schedule (all
            control/bulk QHs) and periodic schedule (interrupt QH) work a
            bit differently ... high bandwidth transfers will hiccup.
      
          - Moves "update QH" and "clear toggle" logic into one new
            qh_refresh() routine, used in several places.
      
      The race shows readily enough under load with the right hardware.
      The controller silicon might be relatively slow, or maybe it's the
      bus that's slow/busy:
      
      	Host			Controller
      	---			----------
      				reads two TD pointers
      	update two TD pointers
      	wmb()
      	activate QH
      				reads rest of QH
      
      Net result is that the HC treated old TD pointers as valid, and things
      started misbehaving.  Busy controllers would misbehave worse; some systems
      wouldn't notice more than a slowdown, especially with light USB loads.
      
      This affects behavior in two cases.  The uncommon one is when an endpoint
      gets an error and halts.  The more common one happens when the controller
      runs off the end of its queue and overlays an inactive "dummy" TD into
      the QH ... something the spec says shouldn't happen, but which more
      silicon seems to be doing.  (Presumably to reduce DMA chatter.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      6679699c
    • Alan Stern's avatar
      [PATCH] USB UHCI: minor bugfix for port resume · 114c173d
      Alan Stern authored
      This patch fixes two small problems in the port suspend/resume handling
      for the UHCI driver.  There were a couple of spots where I neglected to
      store I/O addresses in unsigned _long_ variables (required for 64-bit
      architectures).  And it turns out the host controller will continue to
      indicate a resume is in progress for a few microseconds after it has been
      turned off, so an extra delay is needed.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      114c173d
    • Randy Dunlap's avatar
      [PATCH] PCI/x86-64: build with PCI=n · d84ab56d
      Randy Dunlap authored
      Fix (most of) x64-64 kernel build for CONFIG_PCI=n.  Fixes these 2 errors:
      
      1. arch/x86_64/kernel/built-in.o(.text+0x8186): In function `quirk_intel_irqbalance':
      : undefined reference to `raw_pci_ops'
      
      Kconfig change:
      2. arch/x86_64/kernel/pci-gart.c:194: error: `pci_bus_type' undeclared (first use in this function)
      
      Still does not fix this one:
      drivers/built-in.o(.text+0x3dcd8): In function `pnpacpi_allocated_resource':
      : undefined reference to `pcibios_penalize_isa_irq'
      Signed-off-by: default avatarRandy Dunlap <rddunlap@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      d84ab56d
    • Pavel Pisa's avatar
      [PATCH] VM86 interrupt emulation fix · 90732a8a
      Pavel Pisa authored
      Fixes faulty IRQ_NONE value returning by VM86 irq_handler().
      
      The IRQ source is blocked as well until userspace confirms processing.
      This should enable to use VM86 code even for level triggered interrupt
      sources. 
      Signed-off-by: default avatarPavel Pisa <pisa@cmp.felk.cvut.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      90732a8a
  2. 08 Dec, 2004 10 commits
  3. 07 Dec, 2004 26 commits
    • Nick Piggin's avatar
      [PATCH] Fix broken domain debugging (aka "isolcpus option broken") · bea1dc68
      Nick Piggin authored
      Fix an oops in sched_domain_debug when using the isolcpus= option.
      
      Also move a debug check for validating groups into the "for-each-group"
      loop, where it should be.
      Signed-off-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bea1dc68
    • Linus Torvalds's avatar
      Revert isolcpus option fix, pending better fix from Nick. · d6f0f257
      Linus Torvalds authored
      The real bug was in the debugging code, not the actual domain data
      structure setup.
      
      Cset exclude: sivanich@sgi.com[torvalds]|ChangeSet|20041207160443|30564
      d6f0f257
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.6 · cb746226
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      cb746226
    • Patrick McHardy's avatar
      [PKT_SCHED]: Fix hard freeze with QoS in 2.6.10-rc3 · 81563af3
      Patrick McHardy authored
      The problem is in tcf_action_copy_stats, it assumes a->priv has
      the same layout as struct tcf_act_hdr, which is not true for
      struct tcf_police. This patch rearranges struct tcf_police to
      match tcf_act_hdr.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81563af3
    • Mitchell Blank Jr.'s avatar
    • David S. Miller's avatar
      Merge nuts.davemloft.net:/disk1/BK/sparcwork-2.6 · a886eaab
      David S. Miller authored
      into nuts.davemloft.net:/disk1/BK/sparc-2.6
      a886eaab
    • Linus Torvalds's avatar
      Merge bk://gkernel.bkbits.net/libata-2.6 · dcd9a626
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      dcd9a626
    • Douglas Gilbert's avatar
      [PATCH] off-by-1 libata-scsi INQUIRY VPD pages 0x80 and 0x83 · 21d3de02
      Douglas Gilbert authored
      I have some code (in sginfo) that requests the first 4 bytes
      of SCSI INQUIRY VPD pages to get their length then asks for
      that exact length in a follow up request to fetch the payload.
      Just like I saw with 36 byte standard INQUIRYs (no fixed)
      I get a buffer  full or zeroes.
      
      BTW SCSI standards dictate that in situations where the allocation
      length (in the cdb) is less than what is needed that what can be
      sent shall be sent (i.e. truncated and without any error indication
      or modification to the part of the response returned).
      In other words it is up the the application client to take remedial
      action.
      
      Changelog:
         - fix off-by-1 allocation length issue with SCSI
           INQUIRY VPD pages 0x80 and 0x83
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      21d3de02
    • Jeff Garzik's avatar
      [libata] only DMA map data for DMA commands (fix >=4GB bug) · 046de9be
      Jeff Garzik authored
      libata made the assumption that (for PIO commands in this case)
      it could modify DMA memory at the kernel-virtual address, after
      mapping this.  This is incorrect, and fails on e.g. platforms that
      copy DMA memory back and forth (swiotlb on Intel EM64T and IA64).
      
      Remove this assumption by ensuring that we only call the DMA mapping
      routines if we really are going to use DMA for data xfer.
      
      Also:  remove a bogus WARN_ON() in ata_sg_init_one() which caused
      bug reports (but no problems).
      046de9be
    • Linus Torvalds's avatar
      Revert recent ext3_dx_readdir changes · 5c6b5243
      Linus Torvalds authored
      They turn out to be buggy, and result in the same filename being
      reported twice when htree directory indexing is enabled.
      
      Thanks for Kris Karas for helping chase it down. Also reported
      by Holger Kiehl.
      
      Cset exclude: akpm@osdl.org[torvalds]|ChangeSet|20041108040801|49372
      5c6b5243
    • Gerd Knorr's avatar
      [PATCH] msp3400 quick fix · 29770305
      Gerd Knorr authored
      The new "simpler" opmode added by the recent merge from ivtv breaks msp3400
      support for other tv cards.  Not figured yet why.
      
      This patch disables the "simpler" mode by default (can still be enabled by
      insmod option) as quick fix for 2.6.10.
      Signed-off-by: default avatarGerd Knorr <kraxel@bytesex.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      29770305
    • Michael Hunold's avatar
      [PATCH] dvb: follow changes in dvb-ttpci and budget drivers · 919243ea
      Michael Hunold authored
      - [DVB] dvb-ttpci, budget: updated to fix problems with some CAMs on KNC1
        cards
      
      - [DVB] dvb-ttpci, budget: make needlessly global code static, whitespace
        and newline cleanups, thanks to Adrian Bunk <bunk@stusta.de>
      
      - [DVB] dvb-ttpci, budget: follow frontend changes in driver
      
      - [DVB] dvb-ttpci, budget: fix drivers to use new
        wait_for_debi_done(...,nobusywait) routine.
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      919243ea
    • Michael Hunold's avatar
      [PATCH] dvb: remove dead files · f569744d
      Michael Hunold authored
      - [DVB] remove obsolete grundig_29504-401, grundig_29504-491, alps_tdlb7 and
        alps_tdmb7 frontend drivers
      
      - [DVB] remove sp887x firmware file, it's unused thanks to firmware_class
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f569744d
    • Michael Hunold's avatar
      [PATCH] dvb: core changes · 9d49da8a
      Michael Hunold authored
      - [DVB] dvb-core: follow Linux coding style, kill dvb_ksyms.c and move the
        EXPORT_SYMBOLs to the files where the functions are, thanks to Adrian Bunk
        <bunk@stusta.de>
      
      - [DVB] dvb-core: #if 0'ing unused code, make needlessly global code static,
        whitespace and newline cleanups, thanks to Adrian Bunk <bunk@stusta.de>
      
      - [DVB] dvb_ca_en50221.c: support for KNC1/Cinergy CI modules, fix
        segfaults, enhanced poll_slot_status to support non-IRQ interfaces, Fix
        module usage count problem
      
      - [DVB] dvb-frontend.c: core changes to support the refactorized frontend
        drivers
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9d49da8a
    • Michael Hunold's avatar
      [PATCH] dvb: dibusb driver update · b0da8f73
      Michael Hunold authored
      - [DVB] dibusb: added remote control event handling, thanks to David
        Matthews.
      
      - [DVB] dibusb: added support for special Artec devices (with AN2235 usb
        controller)
      
      - [DVB] dibusb: enable several new devices (even the broken Artec T1)
      
      - [DVB] dibusb: #if 0'ing unused code
      
      - [DVB] dibusb: follow frontend changes
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      b0da8f73
    • Michael Hunold's avatar
      [PATCH] dvb: Cinergy T2 update · c26eb345
      Michael Hunold authored
      - [DVB] cinergyT2: update driver to exploit hardware capabilities
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c26eb345
    • Michael Hunold's avatar
      [PATCH] dvb: follow frontend changes in drivers · ea609508
      Michael Hunold authored
      - [DVB] dvb-ttusb-dec, dvb-ttusb-budget, skystar2, bt878 + dvb-bt8xx: follow
        frontend changes in driver
      
      - [DVB] DST isn't a real frontend, it's an interface to a frontend
        microcontroller, so move the hardware dependend stuff to the right place
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ea609508
    • Michael Hunold's avatar
      [PATCH] dvb: saa7146 changes · 9edd313d
      Michael Hunold authored
      - [DVB] saa7146_core.c, saa7146_video.c: MODULE_PARM -> module_param, added
        non-busy waiting option for saa7146_wait_for_debi_done(), make needlessly
        global code static and remove unused code (thanks to Adrian Bunk
        <bunk@stusta.de)
      
      - [DVB] saa7146_core.c: dev is kmalloc'ed twice, add missing
        pci_disable_device(), rename goto labels, propagate the error code from the
        underlying layers when possible, pci_request_region replaces
        request_mem_region, other minor cleanups (thanks to Francois Romieu)
      
      - [DVB] saa7146_fops.c, saa7146_i2c.c, saa7146_hlp.c, saa7146_vbi.c: make
        needlessly global code static, remove unused code (thanks to Adrian Bunk
        <bunk@stusta.de>)
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9edd313d
    • Michael Hunold's avatar
      [PATCH] dvb: frontend driver refactoring · 780a9fc0
      Michael Hunold authored
      - [DVB] reafactor or add the following frontend drivers: at76c651, cx22700,
        ves1x93, ves1820, tda80xx, tda8083, cx22702, tda1004x, tda10021, cx24110,
        dvb_dummy_fe, l64781, mt312, mt352, stv0299, sp887x, stv0297, nxt6000,
        sp8870
      
      - [DVB] remove dib3000mb from frontends, it's handled by the hw dependent
        driver now
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      780a9fc0
    • Michael Hunold's avatar
      [PATCH] dvb: collateral frontend changes · 53a618cd
      Michael Hunold authored
      - [DVB] get_dvb_firmware: rework to reflect new frontend design, added
        additional firmware location
      
      - [DVB] Kconfig and Makefile changes all over the place, remove Makefile.lib
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      53a618cd
    • Michael Hunold's avatar
      [PATCH] dvb: documentation update · 1a6b6b96
      Michael Hunold authored
      Start of a big DVB update.
      
      
      The reasons for revamping the DVB frontend architecture:
      
      Just as analog TV cards, DVB cards need some sort of tuner to tune to the
      desired frequency of the digital transponder.  Tuning alone doesn't give you a
      digital DVB datastream, however, you need a demodulator as well.  The
      combination of tuner and demodulator is called frontend in the DVB world.
      Tuner and demodulator are both accessed via the serial i2c bus on all DVB
      cards out there.  So, technically a frontend consists of two i2c helper
      chipsets.
      
      In former times when there was only a handful of different DVB cards, the
      frontend was encapsulated in one tin box.  Some people had the idea that there
      should be one "frontend driver" instead of dedicated tuner and demodulator
      drivers.  A bad idea.
      
      As time went on, different manufacturers used the same tuner and demodulator
      combination, but used a different wiring for the tuner or did other technical
      changes.  The only possibility to support different cards with one combined
      frontend driver was to add hardware dependent tuner code inside the generic
      i2c frontend drivers.  Yuck.
      
      So there was a need for communication between the i2c frontend driver and the
      hardware depenedent driver, for example to exchange initialization code for
      the tuner.  Unfortunately, the i2c infrastructure is one way, from the i2c
      client to the i2c adapter using a non-typesafe ioctl() like interface, which
      is ugly by itself.  Greg K-H and others refused the idea to add an iotctl()
      like interface from the i2c adapter to the i2c client and instead proposed to
      use a typesafe interface instead.  We all agreed with that.
      
      The existing i2c infrastructure heavily depends on the probing facility, ie.
      clients probe for their existence on i2c busses.  This is dumb for most i2c
      busses out there that sit on dedicated hardware.  A DVB card is uniquely
      identified with pci or usb subvendor and subsystem ids, so on that particular
      bus we exactly *know* which kinds of i2c helper chipsets sit on there.
      
      Up to now this wasn't a problem, because we could fix all conflicts manually
      until half a year ago.  By that date, we found two different DVB designs which
      used different demodulators that unfortunately use the same i2c address and
      which cannot be distinguished by hardware tricks (ie.  different number of
      registers, some fixed hw dependent register,...)
      
      Getting a usable DVB card depended on the load order of the modules, because
      the i2c core probed the demodulator drivers one after another and the first
      one won the race.  Compiling all drivers statically into the kernel resulted
      in non-working cards.
      
      Our solution is as follows: we agreed to keep the basic underlying kernel i2c
      infrastructure, but we decided not to register our bussed and chipsets to the
      kernel i2c "probing" infrastructure.  Instead, we killed the tuner parts of
      the frontend drivers and put them into the dedicated hardware drivers (this is
      were they technically belong, they are highly hardware dependent) and we
      changed the frontend drivers to pure demodulator drivers (which are hardware
      independend).  There is now a type-safe functional dependency between the
      drivers and the demodulator drivers, the drivers explicitely ask the
      demodulator drivers to attach to their i2c bus.  The only negative aspect of
      that approach is that for some hardware there are now more dependencies to
      demodulator drivers than needed, ie.  a small amount of memory is wasted.
      
      This patch:
      
      - [DVB] cards.txt: added the USB devices to the card-list
      - [DVB] README.dibusb: follow changes in dibusb-driver
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1a6b6b96
    • Linus Torvalds's avatar
      Revert double patch application. · cb5f814b
      Linus Torvalds authored
      Heh. usually these come through Andrew, but this time it was all me.
      
      Noted by BenH.
      
      Cset exclude: paulus@samba.org[torvalds]|ChangeSet|20041207181541|44524
      cb5f814b
    • Andries E. Brouwer's avatar
      [PATCH] restore BLKRRPART semantics · 6695ad97
      Andries E. Brouwer authored
      In 2.6.8 the code for the BLKRRPART ioctl was changed
      to return EIO when no partitions were found, such as
      on an empty disk. This breaks some partitioning programs
      and is also confusing: "Input/Output error" while in fact
      nothing was wrong with this brand new all blank disk.
      
      This restores old behaviour.
      6695ad97
    • Alan Cox's avatar
      [PATCH] Intel/Cyrix typo · ddc6d43e
      Alan Cox authored
      Self explanatory.. Based on a report on l/k
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ddc6d43e
    • Paul Mackerras's avatar
      [PATCH] PPC64 Close firmware stdin · c22df075
      Paul Mackerras authored
      We recently found a problem that was causing memory corruption during
      boot on IBM POWER5 machines.  The problem was that the if you have a
      USB keyboard and it is set to the input device for the firmware, it
      will still be active when the kernel is started.  That means that the
      OHCI controller has pointers to various memory areas that it polls for
      transfers to do.  When we start using that same memory in the kernel,
      bad things can happen.  (This isn't a problem on powermacs because the
      Apple OF implements a "quiesce" call which turns off all the devices
      it is using.)
      
      This patch fixes the problem by calling the Open Firmware "close"
      method for the input device.  Stephen Rothwell and I have verified
      that doing this fixes the problem on the POWER5 machine where we
      observed it.  I verified that this patch doesn't cause any problems on
      powermacs.
      
      I think this patch should go into 2.6.10 since it fixes a nasty memory
      corruption bug that can cause rather subtle and hard-to-diagnose
      problems during boot.  (The symptom on the POWER5 machine with the
      particular kernel that we were using was that reading /proc/net/tcp
      would oops, due to one of the pointers in tcp_ehash being corrupted.)
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c22df075
    • Parag Warudkar's avatar
      [PATCH] ohci1394.c - Correct kmalloc usage in interrupt · 99827021
      Parag Warudkar authored
      alloc_dma_rcv_ctx is called in interrupt and Kernel Spinlock debugging code
      cribs about it via "Debug: sleeping function called in interrupt context". 
      See sample stack traces below.
      
      The patch below corrects ohci1394.c to use GFP_ATOMIC instead of
      GFP_KERNEL.  Tested to work fine with 2 different Camcorder devices for
      fairly long periods and connect/disconnects.
      Signed-off-by: default avatarParag Warudkar <kernel-stuff@comcast.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      99827021