- 09 Dec, 2004 4 commits
-
-
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: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
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: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
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: Randy Dunlap <rddunlap@osdl.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
-
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: Pavel Pisa <pisa@cmp.felk.cvut.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
- 08 Dec, 2004 10 commits
-
-
Jeremy Huddleston authored
Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
We were using 0x08000000 instead of TASK_UNMAPPED_BASE so that running something like "/lib/ld-linux.so.2 emacs" would work. The issue there was that wherever /lib/ld-linux.so.2 gets mapped (controlled by ELF_ET_DYN_BASE), that is where the BSS start for the process ends up. Now, emacs allocates dynamic memory for LISP objects from the BSS, and needs the top 4 bits of the virtual address to be clear so that it can encode LISP type and GC marking information there. But making this obscure emacs case work breaks lots of other stuff. For example, programs with a reasonably large data section fail to load via direct ld.so interpreter execution because the data section is large enough to begin overlapping with the ELF_ET_DYN_BASE area. The /lib/ld-linux.so.2 emacs case does not work on a lot of platforms due to this issue, including i386, so it is not worth making work on sparc either. It is indeed useful sometimes when debugging a new experimental build of glibc for example, but people doing that can hack the value of ELF_ET_DYN_BASE in their kernels. Perhaps at some point we will make a sysctl controllable value. Signed-off-by: David S. Miller <davem@davemloft.net>
-
Jurij Smakov authored
We forget to check the BRK condition in the interrupt status register when deciding to call receive_chars() or not, which is where BRK handling occurs. Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
Noticed by Bob Breuer. Signed-off-by: David S. Miller <davem@davemloft.net>
-
Patrick McHardy authored
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
Signed-off-by: David S. Miller <davem@davemloft.net>
-
Herbert Xu authored
Noticed by Georgi Guninski. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
If the user makes ip_cmsg_send call ip_options_get multiple times, we leak kmalloced IP options data. Noticed by Georgi Guninski. Signed-off-by: David S. Miller <davem@davemloft.net>
-
Hideaki Yoshifuji authored
Signed-off-by: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
- 07 Dec, 2004 26 commits
-
-
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: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
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: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Mitchell Blank Jr. authored
Signed-off-by: Mitchell Blank Jr <mitch@sfgoth.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
into nuts.davemloft.net:/disk1/BK/sparc-2.6
-
bk://gkernel.bkbits.net/libata-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
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: Jeff Garzik <jgarzik@pobox.com>
-
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).
-
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
-
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: Gerd Knorr <kraxel@bytesex.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Michael Hunold authored
- [DVB] cinergyT2: update driver to exploit hardware capabilities Signed-off-by: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Michael Hunold <hunold@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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
-
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.
-
Alan Cox authored
Self explanatory.. Based on a report on l/k Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
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: Parag Warudkar <kernel-stuff@comcast.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-