2002-11-27 23:01:26

by Linus Torvalds

[permalink] [raw]
Subject: Linux v2.5.50


Taking a small thanksgiving break, but before that here's 2.5.50.

Merges from Alan, Dave and Andrew. ACPI, USB, LSM and SCSI updates. Sparc,
ARM and v850 architecture updates.

I wish you all a Happy Thanksgiving (*).

Linus

(*) For the non-US aware of you out there: it's the time of year when the
whole country turns into one big turkey-filled trough, and pretty much
everybody just pigs out. The amount of turkey consumed would roughly reach
5.4 times to the moon and back, if all the turkeys were laid in a straight
line. Small black holes form where enough fat people get together. It's
not pretty. And I'll do my best to blend in ;^).

----

Summary of changes from v2.5.49 to v2.5.50
============================================

<[email protected]>:
o drivers/acpi/ac.c: convert to seq_file
o acpi: convert drivers/acpi/button.c to seq_file
o acpi: convert drivers/acpi/power.c to seq_file
o acpi: convert drivers/acpi/processor.c to seq_file
o acpi: convert drivers/acpi/sleep.c to seq_file
o acpi: convert drivers/acpi/thermal.c
o acpi: convert drivers/acpi/toshiba_acpi.c to seq_file

<[email protected]>:
o usbdevfs: finalize urbs on interface release

<[email protected]>:
o added support for insmod options to specify vendor/product id. this

<[email protected]>:
o USB: [patch] fix vicam disconnect/locking
o [patch] speed/clean up vicam_decode_color

<[email protected]>:
o USB ov511 driver: Update to version 1.63

Alan Cox <[email protected]>:
o mips people cant spell either
o trivial exception typo fix in m68k
o fix journalling api doc
o update mouse drivers doc
o big much needed magic number update from Petr Baudis
o acpi people can't spell
o update nbd driver to large sizes etc
o AGP defines for intel 7505
o rescue ftape from the ravages of that Rusty chap
o fix up ip2main for rusty
o add extra pad/app mappings for ARM/PC98 keyboars
o fix tpqic02 + tidy it up
o fixups for error path on sc1200 wdog
o fix cpq asm
o Make IDEDMA handled by a tuning option not masses of ifdef
o switch ide taskfile to new DMA policy
o remove IDE DMA conditionals from tape
o add printk levels to ide taskfile
o put back the comment someone randomly deleted
o printk levels for cmd640
o add prototype Cyrix 5510/5520 driver for IDE PIO VDMA
o clean up cs5530 driver DMA ifdef
o clean up generic IDE dma for new ifdefs
o clean up ite ide for new ifdef stuff
o clean up highpoint ide for new dma ifdef stuff
o clean up natsemi IDE for new ifdef stuff
o clean up nvidia dma for new ifdef stuff, fox pci res type
o clean up opti ide for new ifdef stuff
o clean up promise IDE, ifdefs, unused code etc
o clean up pdc adma for new dma bits
o clean up intel PIIX for new style dma ifdefs
o driver for National SCx200 IDE
o clean up serverworks DMA handling, fix /proc bugs etc
o clean up siiimage ide for new ifdef style
o clean up trm290 for new ifdef style
o clean up sis ide for new ifdef style
o clean up via dma for new ifdef stuff
o split up setup-pci further
o update amd7xx ide for new dma bits
o update ALi IDE for new ifdefs, avoid ali/ati combo
o update cmd64x for new ide bits
o update cy82c693 ide for new dma bits
o update aec ide for new ifdefs
o add new ide stuff to makefile
o update ide i/o ops to new dma, saner naming
o remove io related stuff from ide.c
o update ide-disk
o add new ide config entries fix cmd680 doc
o clean up ide floppy
o IDE DMA updates
o put ide i/o code from ide.c into ide-io.c and comment it
o update ide makefile for split ide
o ide-probe bits
o ide headers
o make some gameports compile again
o isdn people cant spell
o make bttv compile
o update sa7111/7185 to new i2c
o dvb updates - mostly typedef to structs and other similar cleaning
o make arcnet compile
o bring i2o back into sync, clean up oddments
o mpt fusion update from vendor
o make ewrk3/depca work again
o update baycom drivers, remove soundmodem deps
o locking for dmascc
o kill soundmodem makefile entry
o make aironet compile
o fix missing PCMCIA timer inits
o make vlsi IR compile
o kill soundmodem
o more people cant spell
o printk levels for slip
o fix tokenring builds
o fix hostess driver for 2.5
o add missing attributions to pc300
o update sealevel isa sync card to 2.5.x
o add a fixme for the pci
o update nec pci idents
o update quirks
o add sis apic workaround support
o sanitize pnp init order
o davem cant spell 8()
o 3ware needs interrupt.h
o domex driver needs interrupt.h
o more scsi header cleanup/fixes
o fix eata_pio
o i60scsi to new eh
o fix in2000 compile
o inia header
o new eh for inia wrapper too
o switch ips to request_region check
o dont include removed header
o pas16 needs interrupt.h
o restore lost proc_print_scsi prototype
o t128 needs interrupt.h
o ultrastor reset callback bug
o 68328 frame buffer
o fix vga16 build until James console updates are merged
o proc is in the wrong order
o dvb header updates
o more pci ident defines
o reserve a serio bit for PC98
o we can kill off the soundmodem headers too now
o remove junk from vlsi_ir
o dm updates merged with 2.5.49 ones
o place pnp early but after acpi
o forward port 2.4 isa handling
o 2.4 pci ops fix backport
o kill soundmodem docs
o update /proc/sys doc
o fix mce setup for SMP with cpus=1
o fix cs46xx build
o update to OSDL DAC960 driver
o cyrix cpu optimisations
o fix crap in cs4281 pm save
o update i810 audio
o fix lxdialog behaviour
o fix sound kconfig file locations
o fix wanrouter build
o quieten ATM noise
o fix wrong check in BUG() test for UDMA on serverworks

Andrew Morton <[email protected]>:
o IDE fix for -ac merge
o blk_run_queues() locking fix
o misc fixes
o Allow for profile_buf size = kernel text size
o kernel_stat cleanup
o Updated Documentation/kernel-parameters.txt
o shrink task_struct by removing per_cpu utime and stime
o reduced context switch rate in writeback
o Add some low-latency scheduling points
o realtime swapspace accounting
o swapoff accounting cleanup
o Add a scheduling point to page reclaim
o Don't hold BKL across sync_blockdev() in blkdev_put()
o reduced latency in dentry and inode cache shrinking
o oprofile build fix

Andries E. Brouwer <[email protected]>:
o Silence debugging message

Andy Grover <[email protected]>:
o ACPI: Interpreter update to 20021122 Fixed a problem with RefOf and
named fields Fixed a protection fault involving Packages with
Null/nested packages Fixed GPE initialization to handle a
pathological case
o ACPI: Fix IRQ assignment on Tiger (JI Lee)

Anton Blanchard <[email protected]>:
o fix build with IDE disabled

Arnaldo Carvalho de Melo <[email protected]>:
o acpi/processor.o: fix up seq_file conversion, add missing comma

Christoph Hellwig <[email protected]>:
o remove sys_security
o remove unused include in scsi_ioctl.c
o split busy check out of scsi_remove_host
o make a few more routines private to scsi_lib.c
o cleanup code for /proc add/remove single device
o get rid of scan_scsis
o remove useless includes from scsi.h
o some HBA compile warning fixes
o turn scsi_allocate_device into readable code

Dave Jones <[email protected]>:
o CONFIG_DEBUG_SPINLOCK_SLEEP
o Extra ID for aic7770
o incorrect flags sizes
o Coding style police
o make cardbus PCI enable earlier
o Remove unused 486 string copies
o Overflow checks in i2c
o Jiffies wrap fix for w9966 driver
o sb_card addition/deletion
o Plug memory leak in iph5526
o hd64465 region handling cleanup
o Indentation brain damage
o missing kmalloc check in airo_cs
o missing kmalloc check in qnx4fs
o cmpxchg8b needs lock prefix
o missing unlock_kernel()'s in reboot path
o Mobility_pp parport support
o memleak in myri_sbus
o i810 audio - skip softmodems
o MCE fixes
o delete obsolete includes from sdla_fr
o OSS Makefile fixes
o speed clarification in sb_audio
o MODULE_DESCRIPTION doesn't need a \n
o nm256 dell latitude fix
o Fix PPPoE oops
o i810 audio new idents
o cs4232 memleak
o region handling cleanups for ali-ircc
o MPU401 resource cleanups
o sbc60xxwdt region fix
o stradis overflow check
o sf16fmi janitor work
o wan sbni region cleanups
o microoptimise do_exit()
o Mem leak in sunbmac
o rocket driver janitor bits
o pcmcia tcic region cleanups
o request_region fix in madgemc.c
o scsi scan blacklist update
o extern inline -> static inline
o unwrapped var usage in unbz64wrap
o Make various bits of synclink static
o named struct initialiser updates
o add missing clipping for zr36067
o Check request_region() in inia100
o region cleanups etc in ips driver
o remove unused EISA_bus__is_a_macro macro
o Remove unneeded verify_area from sg.c
o region handling cleanups for appletalk ltpc
o extra parport IDs
o si1_isa board addition to sx driver
o memleak in macsonic
o region handling cleanup for de600
o watchdog compile fixes
o Credits update
o CONFIG_FRAME_POINTER

David Brownell <[email protected]>:
o drivers/base/hotplug.c, fix $DEVPATH
o remove CONFIG_USB_LONG_TIMEOUT
o ohci uses less slab memory

David S. Miller <[email protected]>:
o [ELF] Enter KERNEL_DS after fill_psinfo, which does user acceses
o [SPARC64]: Fix spinlock init in sparc64 parport support
o [SPARC]: Update elf coredump macros for recent threading changes
o [SPARC]: Ignore SIGURG if not caught
o [SPARC]: Add DEBUG_SPINLOCK_SLEEP config option
o [AIC7XXX]: aic7xxx_osm.h needs asm/io.h
o [SPARC ESP]: Convert to slave_{attach,destroy}

David S. Miller <[email protected]>:
o sys_swapoff bug

Doug Ledford <[email protected]>:
o aic7xxx_old: fix up the biosparam function to do 64bit math safely
o aic7xxx_old: update biosparam function with the (ugly) detail that
cylinder values > 65535 get truncated
o scsi.c, scsi.h, scsi_syms.c, aic7xxx_old: add new function to track
queue full events at the mid layer instead of at the low level
device driver
o st.c: Clean up init failure paths Fix the detach code so it
doesn't call sysfs unregister with a lock held
o fs/proc/inode.c: Make proc use new module loader semantics so that
touching a /proc/* file doesn't pin a module in memory
o scsi: Update lldd API to slave_alloc/slave_configure/slave_destroy
interface instead of slave_attach/slave_detach interface. Change
all users
o Convert from host->host_queue to host->my_devices list usage Add in
usage of new same_target_siblings list Add
scsi_release_commandblocks() call to scsi_free_sdev() Make all scsi
device freeing use scsi_free_sdev()

Ganesh Varadarajan <[email protected]>:
o uninitialized spinlock in ipaq.c

Greg Kroah-Hartman <[email protected]>:
o LSM: add #include <linux/security.h> to a lot of files as they all
have security calls in them
o LSM: Create CONFIG_SECURITY and disable it by default for now
o LSM: change all usages of security_ops->ptrace() to
security_ptrace()
o LSM: change all security bprm related calls to the new format
o LSM: change all of the VFS related security calls to the new format
o LSM: convert over the remaining security calls to the new format
o LSM: remove last remanants of sys_security missed by last patch
o driver core: fix compiler warning if CONFIG_HOTPLUG is not defined
o USB: added Palm Tungsten W support
o LSM: fix up some needed header file #includes
o LSM: Move the definition of capable() into sched.h if
CONFIG_SECURITY is set to help make the #include nightmare more
managable.
o LSM: put CONFIG_SECURITY back into the Kconfig file (was lost in
the merge)
o USB serial: move the ezusb functions into their own file
o USB serial: split the generic functions out into their own file

Kai Germaschewski <[email protected]>:
o ISDN: Simplify chip init
o ISDN: Un-split inithscxisac
o ISDN: Move transmitter reset into initisac()
o ISDN: Remove compatibility ifdefs
o ISDN: Introduce .owner
o ISDN: Remove unused commands
o ISDN: Move isdn_slot into isdn_driver
o ISDN: Introduce get/put_slot()
o ISDN: Update eicon driver for removal of pcibios_*
o ISDN: Remove cli()/.. from hisax/hscx driver
o ISDN/HiSax: Don't call back up in hard-IRQ context
o ISDN/HiSax: Remove pcibios_* leftovers
o ISDN/HiSax: Shared function for scheduling a B-channel event
o ISDN/HiSax: Unified xmit_complete_b()
o ISDN/HiSax: Separate out xmit_ready_b()
o ISDN/HiSax: Shared xmit_data_req() for B-channel
o ISDN/HiSax: Shared PH_PULL handling for B-Channel
o ISDN/HiSax: Share XPR interrupt handling for B-Channel
o ISDN/HiSax: Share code for retransmitting frame on B-channel
o ISDN/HiSax: Share XDU handling for B-Channel
o ISDN/HiSax: Share fill_fifo() for B-Channels
o ISDN/HiSax: Shared xmit_fill_fifo() for D-Channel
o ISDN/HiSax: Shared sched_event() for D-channel
o ISDN/HiSax: Share xmit_ready_d()
o ISDN/HiSax: Consolidate D-Channel XPR interrupt handling
o ISDN/HiSax: Share D-Channel XDU interrupt handling
o ISDN/HiSax: Move more code into the shared xmit_xpr_d()
o ISDN/HiSax: Share D-channel PH_DATA request handling
o ISDN/HiSax: Share D-Channel PH_PULL code
o ISDN/HiSax: Remove broken home-made lock primitives

Linus Torvalds <[email protected]>:
o Undo bogon from the -dj merge
o Revert duplicate initialization from -ac merge Cset exclude:
[email protected]|ChangeSet|20021126021252|43411
o Revert over-eager memory leak "fix" from the -dj merge
o Revert bad PCI bridge resource handling from -dj tree Cset exclude:
[email protected]|ChangeSet|20021126023731|33210
o Fix up Alan's huge patch set. It couldn't have compiled for him
either. Tssk, tssk.

Miles Bader <[email protected]>:
o Consolidate various v850 platform banner printks
o Fix some minor type problems in v850 code
o Add asm macros on v850 so the size of asm data objects can be
recorded
o Add v850 support for new module loader
o Add v850 versions of dump_stack and show_stack
o Add support for AS85EP1 platform to v850 arch
o Add v850 nanosecond stat fields
o Make NB85E_UART_CKSR_MAX_FREQ (in nb85e_uart driver) overridable
o Update `nb85e_uart' driver for recent serial framework changes
o Random minor fixes for v850 `anna' platform
o Add v850 support for initramfs
o Update v850 usage of do_fork to supply new args
o Add TASK_UNMAPPED_BASE for v850
o The v850 doesn't need sys_old_getrlimit
o Update v850 to use kstat_cpu in irqs.c
o Update includes in v850 files to reflect recent header changes
o Add my name to CREDITS file
o Random whitespace tweaks in v850 files
o Tweak some v850 name strings
o Change the default baud rate of the `nb85e_uart' driver to 115200
o Update make variable used by initramfs `binary blob' creation on
v850
o Make the v850 leds driver's seek routine always return a value
o Give a compile-time error on the v850 if MAX_ORDER is too large
o Add id for v850 `nb85e_uart' to serial_core.h
o Make v850 syscall6 macro support both old and new gcc versions
o Change type of v850 function `gbus_int_disable_irqs' to void
o Shrink v850 exception-trap handling code a bit
o Add `unlikely' to error-return path in v850 __syscall_return macro

Nemosoft Unv. <[email protected]>:
o [PATCH] PWC 8.9

Patrick Mansfield <[email protected]>:
o current scsi-misc-2.5 include files
o cleanup code for /proc add/remove single device

Paul Mackerras <[email protected]>:
o PPC32: update for recent changes to clone system call

Pete Zaitcev <[email protected]>:
o [sparc]: Clobber %l3 in switch_to

Ralf B?chle <[email protected]>:
o do_mounts.c ioctl fix

Randy Dunlap <[email protected]>:
o USB: use time_before() to compare times
o tiglusb timeouts

Russell King <[email protected]>:
o [ARM] 2.5.49 Build fixes
o [ARM PATCH] 1311/1: BadgePAD 4 PCMCIA Update
o [ARM PATCH] 1329/1: Shark: new def-config
o [ARM PATCH] 1330/1: Shark: Fixes for via PCI
o [ARM PATCH] 1331/1: Shark: Compilation fixes
o [ARM PATCH] 1332/1: DMA Scatter-Gather Primitives for SA-1111
Bounce Buffer Layer

Stuart MacDonald <[email protected]>:
o usb-serial.c disconnect race
o WhiteHEAT update



2002-11-28 00:42:10

by Udo A. Steinberg

[permalink] [raw]
Subject: Re: Linux v2.5.50

On Wed, 27 Nov 2002 15:07:38 -0800 (PST) Linus Torvalds (LT) wrote:

LT> Alan Cox <[email protected]>:
LT> o make bttv compile

Alan,

bttv still doesn't compile in all cases. What is needed to make things work
is this patch from Gerd Knorr which applied cleanly to 2.5.48 and 2.5.49.
With the compile fix introduced in 2.5.50 there's one reject.

http://bytesex.org/patches/2.5/patch-2.5.48-kraxel.gz

In case you want to try out what the problem still is, I've attached my
config for 2.5.50

Regards,
-Udo.


Attachments:
.config (21.50 kB)

2002-11-28 02:36:44

by Paul

[permalink] [raw]
Subject: [uPATCH] NCR5380.c compile fix Re: Linux v2.5.50

Linus Torvalds <[email protected]>, on Wed Nov 27, 2002 [03:07:38 PM] said:
>
> Taking a small thanksgiving break, but before that here's 2.5.50.
>

Hi;

Needed this so NCR5380.c would compile. (via pas16)

Paul
[email protected]

--- 2.5.50.virgin/drivers/scsi/NCR5380.c 2002-11-12 21:18:00.000000000 -0500
+++ 2.5.50/drivers/scsi/NCR5380.c 2002-11-27 21:20:26.000000000 -0500
@@ -1477,8 +1477,8 @@
int len;
unsigned long timeout;
unsigned char value;
- NCR5380_setup(instance);
int err;
+ NCR5380_setup(instance);

if (hostdata->selecting) {
if(instance->irq != IRQ_NONE)

2002-11-28 04:47:47

by Paul

[permalink] [raw]
Subject: [oops] BUG at mm/highmem.c:455 Re: Linux v2.5.50

Linus Torvalds <[email protected]>, on Wed Nov 27, 2002 [03:07:38 PM] said:
>
> Taking a small thanksgiving break, but before that here's 2.5.50.
>

Hi;

This looks pretty much like the oops I posted against the
-mcp kernel, but this is the first time I have gotten a vanilla
2.5 kernel to compile/boot for my LVM test box. (It still wont
mount root if I have devfs in there.)
I dont have highmen on.
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
# CONFIG_MTRR is not set
This is reproducible by simply moving an fs with tar.
Also, this time I got copious messages after the oops, which
may help someone. I can provide more info and test things if
anyone wants me to. (Jens seemed interested at one point, but
I think he forgot about me:)

Paul
[email protected]

[here is only a tiny snip of endless streams of this, after the
oops]

Nov 27 23:24:48 gentoo kernel: __end_that: dev hdc: flags = REQ_RW REQ_CMD REQ_STARTED
Nov 27 23:24:48 gentoo kernel: sector 1608403, nr/cnr 2/0
Nov 27 23:24:48 gentoo kernel: bio c7fa3720, biotail c7fa3720, buffer c6f5c000, data 00000000, len 0
Nov 27 23:24:48 gentoo kernel: __end_that_request_first: bio idx 0 >= vcnt 0
Nov 27 23:24:48 gentoo kernel: __end_that: dev hdc: flags = REQ_RW REQ_CMD REQ_STARTED
Nov 27 23:24:48 gentoo kernel: sector 1608403, nr/cnr 2/0
Nov 27 23:24:48 gentoo kernel: bio c7fa3720, biotail c7fa3720, buffer c6f5c000, data 00000000, len 0

[ and the oops, decoded on another machine ]

ksymoops 2.4.7 on i686 2.4.20-rc2. Options used
-v vmlinux (specified)
-K (specified)
-L (specified)
-O (specified)
-m System.map (specified)

Nov 27 23:24:43 gentoo kernel: kernel BUG at mm/highmem.c:455!
Nov 27 23:24:43 gentoo kernel: invalid operand: 0000
Nov 27 23:24:43 gentoo kernel: CPU: 0
Nov 27 23:24:43 gentoo kernel: EIP: 0060:[blk_queue_bounce+18/112] Not tainted
Nov 27 23:24:43 gentoo kernel: EIP: 0060:[<c0130ee2>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
Nov 27 23:24:43 gentoo kernel: EFLAGS: 00010202
Nov 27 23:24:43 gentoo kernel: eax: c7fa3860 ebx: c03d56f8 ecx: c11a3c7c edx: 00000001
Nov 27 23:24:43 gentoo kernel: esi: 00000002 edi: 00000400 ebp: c03d56f8 esp: c11a3c3c
Nov 27 23:24:43 gentoo kernel: ds: 0068 es: 0068 ss: 0068
Nov 27 23:24:43 gentoo kernel: Stack: c7ee72e0 c02250de c03d56f8 c11a3c7c c7ee72e0 00000002 c03d56f8 c7fa3860
Nov 27 23:24:43 gentoo kernel: 00188ad5 c11a1860 00000004 00000001 00000000 c013bad1 c02255c1 c03d56f8
Nov 27 23:24:43 gentoo kernel: c7fa3860 c7e5df10 c7fa3860 c7fa3860 c881e020 c0262d75 c7fa3860 00000002
Nov 27 23:24:43 gentoo kernel: Call Trace: [<c02250de>] [<c013bad1>] [<c02255c1>] [<c0262d75>] [<c0262f3a>] [<c0262fe9>] [<c02630f0>] [<c02255c1>] [<c0225626>] [<c01512b2>] [<c0151b77>] [<c0225626>] [<c0151e3d>] [<c017750c>] [<c01784a6>] [<c0178788>] [<c0177996>] [<c017750c>] [<c01327f4>] [<c0150a6a>] [<c0150bd1>] [<c0150d63>] [<c0150e38>] [<c013270b>] [<c01321f0>] [<c0132298>] [<c01322a3>] [<c013266c>] [<c0108925>]
Nov 27 23:24:43 gentoo kernel: Code: 0f 0b c7 01 57 af 2e c0 8d b6 00 00 00 00 f6 83 9c 00 00 00


>>EIP; c0130ee2 <blk_queue_bounce+12/70> <=====

>>ebx; c03d56f8 <ide_hwifs+818/4998>
>>ebp; c03d56f8 <ide_hwifs+818/4998>

Trace; c02250de <__make_request+4a/3ec>
Trace; c013bad1 <bio_alloc+31/1cc>
Trace; c02255c1 <generic_make_request+141/154>
Trace; c0262d75 <__map_bio+3d/dc>
Trace; c0262f3a <__clone_and_map+72/b4>
Trace; c0262fe9 <__split_bio+6d/100>
Trace; c02630f0 <dm_request+74/8c>
Trace; c02255c1 <generic_make_request+141/154>
Trace; c0225626 <submit_bio+52/5c>
Trace; c01512b2 <mpage_bio_submit+22/28>
Trace; c0151b77 <mpage_writepage+41f/4b4>
Trace; c0225626 <submit_bio+52/5c>
Trace; c0151e3d <mpage_writepages+231/324>
Trace; c017750c <ext2_get_block+0/36c>
Trace; c01784a6 <ext2_update_inode+3e/330>
Trace; c0178788 <ext2_update_inode+320/330>
Trace; c0177996 <ext2_writepages+12/18>
Trace; c017750c <ext2_get_block+0/36c>
Trace; c01327f4 <do_writepages+18/2c>
Trace; c0150a6a <__sync_single_inode+6e/164>
Trace; c0150bd1 <__writeback_single_inode+71/78>
Trace; c0150d63 <sync_sb_inodes+18b/214>
Trace; c0150e38 <writeback_inodes+4c/90>
Trace; c013270b <wb_kupdate+9f/fc>
Trace; c01321f0 <__pdflush+150/1f8>
Trace; c0132298 <pdflush+0/14>
Trace; c01322a3 <pdflush+b/14>
Trace; c013266c <wb_kupdate+0/fc>
Trace; c0108925 <kernel_thread_helper+5/c>

Code; c0130ee2 <blk_queue_bounce+12/70>
00000000 <_EIP>:
Code; c0130ee2 <blk_queue_bounce+12/70> <=====
0: 0f 0b ud2a <=====
Code; c0130ee4 <blk_queue_bounce+14/70>
2: c7 01 57 af 2e c0 movl $0xc02eaf57,(%ecx)
Code; c0130eea <blk_queue_bounce+1a/70>
8: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
Code; c0130ef0 <blk_queue_bounce+20/70>
e: f6 83 9c 00 00 00 00 testb $0x0,0x9c(%ebx)

2002-11-28 04:49:58

by Nathan Walp

[permalink] [raw]
Subject: Re: Linux v2.5.50

On Wed, Nov 27, 2002 at 03:07:38PM -0800, Linus Torvalds wrote:
>
> Taking a small thanksgiving break, but before that here's 2.5.50.
>
> Merges from Alan, Dave and Andrew. ACPI, USB, LSM and SCSI updates. Sparc,
> ARM and v850 architecture updates.
>
> I wish you all a Happy Thanksgiving (*).
>
> Linus
>

Hrmm then that would make the 2.5.x tree one year old now. Hats off to
all of you who have accomplished so much in 12 short months.

Nathan

--
Nathan Walp || [email protected]
GPG Fingerprint: || http://faceprint.com/
5509 6EF3 928B 2363 9B2B DA17 3E46 2CDC 492D DB7E


Attachments:
(No filename) (616.00 B)
(No filename) (189.00 B)
Download all attachments

2002-11-28 09:42:44

by Gerd Knorr

[permalink] [raw]
Subject: Re: Linux v2.5.50

> bttv still doesn't compile in all cases. What is needed to make things work
> is this patch from Gerd Knorr which applied cleanly to 2.5.48 and 2.5.49.
> With the compile fix introduced in 2.5.50 there's one reject.

I'll rediff and put up a new patch later today for download (and resend
stuff to Linus ...).

Ge- "downloading 2.5.50" rd

2002-11-28 10:08:09

by Sebastian Benoit

[permalink] [raw]
Subject: drivers/pci/quirks.c / Re: Linux v2.5.50


with CONFIG_X86_IO_APIC=y I get

gcc -Wp,-MD,drivers/pci/.quirks.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=quirks -DKBUILD_MODNAME=quirks -c -o drivers/pci/quirks.o drivers/pci/quirks.c
drivers/pci/quirks.c: In function `quirk_ioapic_rmw':
drivers/pci/quirks.c:354: `sis_apic_bug' undeclared (first use in this function)
drivers/pci/quirks.c:354: (Each undeclared identifier is reported only once
drivers/pci/quirks.c:354: for each function it appears in.)
make[2]: *** [drivers/pci/quirks.o] Error 1
make[1]: *** [drivers/pci] Error 2
make: *** [drivers] Error 2


fixed by

--- drivers/pci/quirks.c.old Tue Nov 26 20:40:02 2002
+++ drivers/pci/quirks.c Tue Nov 26 20:39:54 2002
@@ -18,6 +18,7 @@
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/delay.h>
+#include <asm/io_apic.h>

#undef DEBUG


/B.
--
Sebastian Benoit <[email protected]>
My mail is GnuPG signed -- Unsigned ones are bogus -- http://www.gnupg.org/
GnuPG 0x5BA22F00 2001-07-31 2999 9839 6C9E E4BF B540 C44B 4EC4 E1BE 5BA2 2F00


Attachments:
(No filename) (1.21 kB)
(No filename) (240.00 B)
Download all attachments

2002-11-28 11:47:44

by Gerd Knorr

[permalink] [raw]
Subject: Re: Linux v2.5.50

> I'll rediff and put up a new patch later today for download (and resend
> stuff to Linus ...).

Available now at http://bytesex.org/patches/2.5/

Gerd

--
You can't please everybody. And usually if you _try_ to please
everybody, the end result is one big mess.
-- Linus Torvalds, 2002-04-20

2002-11-28 13:10:58

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: Linux v2.5.50

On Wed, 27 Nov 2002, Linus Torvalds wrote:
> Alan Cox <[email protected]>:
> o remove io related stuff from ide.c

ide_intr_lock() is used in ide-io.c (new file in 2.5.50), but it's static in
ide.c.

--- linux-2.5.50/drivers/ide/ide.c Thu Nov 28 10:19:40 2002
+++ linux-m68k-2.5.50/drivers/ide/ide.c Thu Nov 28 12:02:23 2002
@@ -186,7 +186,7 @@
* ide_lock is used by the Atari code to obtain access to the IDE interrupt,
* which is shared between several drivers.
*/
-static int ide_intr_lock;
+int ide_intr_lock;
#endif /* IDE_ARCH_LOCK */

#ifdef CONFIG_IDEDMA_AUTO
diff -u --recursive --exclude-from=/home/geert/diff-excludes-linux --new-file ./linux-m68k-2.5.50/include/linux/ide.h testing/linux-m68k-2.5.50/include/linux/ide.h
--- linux-2.5.50/include/linux/ide.h Thu Nov 28 10:20:12 2002
+++ linux-m68k-2.5.50/include/linux/ide.h Thu Nov 28 12:02:01 2002
@@ -358,8 +358,10 @@
# define ide_ack_intr(hwif) (1)
#endif

+#ifdef IDE_ARCH_LOCK
/* Currently only Atari needs it */
-#ifndef IDE_ARCH_LOCK
+extern int ide_intr_lock;
+#else
# define ide_release_lock(lock) do {} while (0)
# define ide_get_lock(lock, hdlr, data) do {} while (0)
#endif /* IDE_ARCH_LOCK */

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2002-11-28 15:46:35

by Alan

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, 2002-11-28 at 10:15, Sebastian Benoit wrote:
>
> with CONFIG_X86_IO_APIC=y I get
>
> gcc -Wp,-MD,drivers/pci/.quirks.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=quirks -DKBUILD_MODNAME=quirks -c -o drivers/pci/quirks.o drivers/pci/quirks.c
> drivers/pci/quirks.c: In function `quirk_ioapic_rmw':
> drivers/pci/quirks.c:354: `sis_apic_bug' undeclared (first use in this function)
> drivers/pci/quirks.c:354: (Each undeclared identifier is reported only once
> drivers/pci/quirks.c:354: for each function it appears in.)
> make[2]: *** [drivers/pci/quirks.o] Error 1
> make[1]: *** [drivers/pci] Error 2
> make: *** [drivers] Error 2
>

I'll send Linus the code I actually originally meant to send him, that
tidies this stuff up IMHO a lot better

2002-11-28 16:55:42

by Ivan Kokshaysky

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, Nov 28, 2002 at 04:25:43PM +0000, Alan Cox wrote:
> On Thu, 2002-11-28 at 10:15, Sebastian Benoit wrote:
> > make[2]: *** [drivers/pci/quirks.o] Error 1
> > make[1]: *** [drivers/pci] Error 2
> > make: *** [drivers] Error 2
> >
>
> I'll send Linus the code I actually originally meant to send him, that
> tidies this stuff up IMHO a lot better

Actually a LOT of fixups in drivers/pci/quirks.c are 100% x86 specific
and therefore don't belong in there.
What about this patch?
It moves most obvious stuff (northbridges quirks) to the proper
place (arch/i386/pci/fixups.c).

Ivan.

--- 2.5.50/arch/i386/pci/fixup.c Thu Nov 28 01:36:15 2002
+++ linux/arch/i386/pci/fixup.c Thu Nov 28 19:21:30 2002
@@ -187,6 +187,179 @@ static void __devinit pci_fixup_transpar
dev->transparent = 1;
}

+/* Deal with broken BIOS'es that neglect to enable passive release,
+ which can cause problems in combination with the 82441FX/PPro MTRRs */
+static void __devinit quirk_passive_release(struct pci_dev *dev)
+{
+ struct pci_dev *d = NULL;
+ unsigned char dlc;
+
+ /* We have to make sure a particular bit is set in the PIIX3
+ ISA bridge, so we have to go out and find it. */
+ while ((d = pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_0, d))) {
+ pci_read_config_byte(d, 0x82, &dlc);
+ if (!(dlc & 1<<1)) {
+ printk(KERN_ERR "PCI: PIIX3: Enabling Passive Release on %s\n", d->slot_name);
+ dlc |= 1<<1;
+ pci_write_config_byte(d, 0x82, dlc);
+ }
+ }
+}
+
+/*
+ * Triton requires workarounds to be used by the drivers
+ */
+
+static void __devinit quirk_triton(struct pci_dev *dev)
+{
+ if((pci_pci_problems&PCIPCI_TRITON)==0)
+ {
+ printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
+ pci_pci_problems|=PCIPCI_TRITON;
+ }
+}
+
+/*
+ * VIA Apollo VP3 needs ETBF on BT848/878
+ */
+
+static void __devinit quirk_viaetbf(struct pci_dev *dev)
+{
+ if((pci_pci_problems&PCIPCI_VIAETBF)==0)
+ {
+ printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
+ pci_pci_problems|=PCIPCI_VIAETBF;
+ }
+}
+
+static void __devinit quirk_vsfx(struct pci_dev *dev)
+{
+ if((pci_pci_problems&PCIPCI_VSFX)==0)
+ {
+ printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
+ pci_pci_problems|=PCIPCI_VSFX;
+ }
+}
+
+
+/*
+ * Natoma has some interesting boundary conditions with Zoran stuff
+ * at least
+ */
+
+static void __devinit quirk_natoma(struct pci_dev *dev)
+{
+ if((pci_pci_problems&PCIPCI_NATOMA)==0)
+ {
+ printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
+ pci_pci_problems|=PCIPCI_NATOMA;
+ }
+}
+
+/*
+ * ATI Northbridge setups MCE the processor if you even
+ * read somewhere between 0x3b0->0x3bb or read 0x3d3
+ */
+
+static void __devinit quirk_ati_exploding_mce(struct pci_dev *dev)
+{
+ printk(KERN_INFO "ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.\n");
+ /* Mae rhaid in i beidio a edrych ar y lleoliad I/O hyn */
+ request_region(0x3b0, 0x0C, "RadeonIGP");
+ request_region(0x3d3, 0x01, "RadeonIGP");
+}
+
+#ifdef CONFIG_X86_IO_APIC
+extern int nr_ioapics;
+
+/*
+ * VIA 686A/B: If an IO-APIC is active, we need to route all on-chip
+ * devices to the external APIC.
+ *
+ * TODO: When we have device-specific interrupt routers,
+ * this code will go away from quirks.
+ */
+static void __devinit quirk_via_ioapic(struct pci_dev *dev)
+{
+ u8 tmp;
+
+ if (nr_ioapics < 1)
+ tmp = 0; /* nothing routed to external APIC */
+ else
+ tmp = 0x1f; /* all known bits (4-0) routed to external APIC */
+
+ printk(KERN_INFO "PCI: %sbling Via external APIC routing\n",
+ tmp == 0 ? "Disa" : "Ena");
+
+ /* Offset 0x58: External APIC IRQ output control */
+ pci_write_config_byte (dev, 0x58, tmp);
+}
+
+/*
+ * The AMD io apic can hang the box when an apic irq is masked.
+ * We check all revs >= B0 (yet not in the pre production!) as the bug
+ * is currently marked NoFix
+ *
+ * We have multiple reports of hangs with this chipset that went away with
+ * noapic specified. For the moment we assume its the errata. We may be wrong
+ * of course. However the advice is demonstrably good even if so..
+ */
+
+static void __devinit quirk_amd_ioapic(struct pci_dev *dev)
+{
+ u8 rev;
+
+ pci_read_config_byte(dev, PCI_REVISION_ID, &rev);
+ if(rev >= 0x02)
+ {
+ printk(KERN_WARNING "I/O APIC: AMD Errata #22 may be present. In the event of instability try\n");
+ printk(KERN_WARNING " : booting with the \"noapic\" option.\n");
+ }
+}
+
+static void __devinit quirk_ioapic_rmw(struct pci_dev *dev)
+{
+ if (dev->devfn == 0 && dev->bus->number == 0)
+ sis_apic_bug = 1;
+}
+
+#endif /* CONFIG_X86_IO_APIC */
+
+/*
+ * VIA VT82C598 has its device ID settable and many BIOSes
+ * set it to the ID of VT82C597 for backward compatibility.
+ * We need to switch it off to be able to recognize the real
+ * type of the chip.
+ */
+static void __devinit quirk_vt82c598_id(struct pci_dev *dev)
+{
+ pci_write_config_byte(dev, 0xfc, 0);
+ pci_read_config_word(dev, PCI_DEVICE_ID, &dev->device);
+}
+
+/*
+ * Following the PCI ordering rules is optional on the AMD762. I'm not
+ * sure what the designers were smoking but let's not inhale...
+ *
+ * To be fair to AMD, it follows the spec by default, its BIOS people
+ * who turn it off!
+ */
+
+static void __devinit quirk_amd_ordering(struct pci_dev *dev)
+{
+ u32 pcic;
+ pci_read_config_dword(dev, 0x4C, &pcic);
+ if((pcic&6)!=6)
+ {
+ pcic |= 6;
+ printk(KERN_WARNING "BIOS failed to enable PCI standards compliance, fixing this error.\n");
+ pci_write_config_dword(dev, 0x4C, pcic);
+ pci_read_config_dword(dev, 0x84, &pcic);
+ pcic |= (1<<23); /* Required in this mode */
+ pci_write_config_dword(dev, 0x84, pcic);
+ }
+}
+
struct pci_fixup pcibios_fixups[] = {
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82451NX, pci_fixup_i450nx },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82454GX, pci_fixup_i450gx },
@@ -199,11 +372,33 @@ struct pci_fixup pcibios_fixups[] = {
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_10, pci_fixup_ide_trash },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_11, pci_fixup_ide_trash },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_9, pci_fixup_ide_trash },
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, pci_fixup_ncr53c810 },
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_fixup_transparent_bridge },
+
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8363_0, pci_fixup_via_northbridge_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8622, pci_fixup_via_northbridge_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8361, pci_fixup_via_northbridge_bug },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8367_0, pci_fixup_via_northbridge_bug },
- { PCI_FIXUP_HEADER, PCI_VENDOR_ID_NCR, PCI_DEVICE_ID_NCR_53C810, pci_fixup_ncr53c810 },
- { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_fixup_transparent_bridge },
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_vt82c598_id },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82437, quirk_triton },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82437VX, quirk_triton },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82439, quirk_triton },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82439TX, quirk_triton },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_natoma },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443LX_0, quirk_natoma },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443LX_1, quirk_natoma },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_0, quirk_natoma },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_1, quirk_natoma },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_2, quirk_natoma },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576, quirk_vsfx },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_viaetbf },
+#ifdef CONFIG_X86_IO_APIC
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_ioapic },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7410, quirk_amd_ioapic },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_SIS, PCI_ANY_ID, quirk_ioapic_rmw },
+#endif
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_IGP, quirk_ati_exploding_mce },
{ 0 }
};
--- 2.5.50/drivers/pci/quirks.c Thu Nov 28 01:35:48 2002
+++ linux/drivers/pci/quirks.c Thu Nov 28 15:57:19 2002
@@ -21,25 +21,6 @@

#undef DEBUG

-/* Deal with broken BIOS'es that neglect to enable passive release,
- which can cause problems in combination with the 82441FX/PPro MTRRs */
-static void __devinit quirk_passive_release(struct pci_dev *dev)
-{
- struct pci_dev *d = NULL;
- unsigned char dlc;
-
- /* We have to make sure a particular bit is set in the PIIX3
- ISA bridge, so we have to go out and find it. */
- while ((d = pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_0, d))) {
- pci_read_config_byte(d, 0x82, &dlc);
- if (!(dlc & 1<<1)) {
- printk(KERN_ERR "PCI: PIIX3: Enabling Passive Release on %s\n", d->slot_name);
- dlc |= 1<<1;
- pci_write_config_byte(d, 0x82, dlc);
- }
- }
-}
-
/* The VIA VP2/VP3/MVP3 seem to have some 'features'. There may be a workaround
but VIA don't answer queries. If you happen to have good contacts at VIA
ask them for me please -- Alan
@@ -74,19 +55,6 @@ static void __devinit quirk_nopcipci(str
}

/*
- * Triton requires workarounds to be used by the drivers
- */
-
-static void __devinit quirk_triton(struct pci_dev *dev)
-{
- if((pci_pci_problems&PCIPCI_TRITON)==0)
- {
- printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
- pci_pci_problems|=PCIPCI_TRITON;
- }
-}
-
-/*
* VIA Apollo KT133 needs PCI latency patch
* Made according to a windows driver based patch by George E. Breese
* see PCI Latency Adjust on http://www.viahardware.com/download/viatweak.shtm
@@ -147,42 +115,6 @@ static void __devinit quirk_vialatency(s
}

/*
- * VIA Apollo VP3 needs ETBF on BT848/878
- */
-
-static void __devinit quirk_viaetbf(struct pci_dev *dev)
-{
- if((pci_pci_problems&PCIPCI_VIAETBF)==0)
- {
- printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
- pci_pci_problems|=PCIPCI_VIAETBF;
- }
-}
-static void __devinit quirk_vsfx(struct pci_dev *dev)
-{
- if((pci_pci_problems&PCIPCI_VSFX)==0)
- {
- printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
- pci_pci_problems|=PCIPCI_VSFX;
- }
-}
-
-
-/*
- * Natoma has some interesting boundary conditions with Zoran stuff
- * at least
- */
-
-static void __devinit quirk_natoma(struct pci_dev *dev)
-{
- if((pci_pci_problems&PCIPCI_NATOMA)==0)
- {
- printk(KERN_INFO "Limiting direct PCI/PCI transfers.\n");
- pci_pci_problems|=PCIPCI_NATOMA;
- }
-}
-
-/*
* S3 868 and 968 chips report region size equal to 32M, but they decode 64M.
* If it's needed, re-allocate the region.
*/
@@ -212,19 +144,6 @@ static void __devinit quirk_io_region(st
}

/*
- * ATI Northbridge setups MCE the processor if you even
- * read somewhere between 0x3b0->0x3bb or read 0x3d3
- */
-
-static void __devinit quirk_ati_exploding_mce(struct pci_dev *dev)
-{
- printk(KERN_INFO "ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.\n");
- /* Mae rhaid in i beidio a edrych ar y lleoliad I/O hyn */
- request_region(0x3b0, 0x0C, "RadeonIGP");
- request_region(0x3d3, 0x01, "RadeonIGP");
-}
-
-/*
* Let's make the southbridge information explicit instead
* of having to worry about people probing the ACPI areas,
* for example.. (Yes, it happens, and if you read the wrong
@@ -300,64 +219,6 @@ static void __devinit quirk_vt82c686_acp
}


-#ifdef CONFIG_X86_IO_APIC
-extern int nr_ioapics;
-
-/*
- * VIA 686A/B: If an IO-APIC is active, we need to route all on-chip
- * devices to the external APIC.
- *
- * TODO: When we have device-specific interrupt routers,
- * this code will go away from quirks.
- */
-static void __devinit quirk_via_ioapic(struct pci_dev *dev)
-{
- u8 tmp;
-
- if (nr_ioapics < 1)
- tmp = 0; /* nothing routed to external APIC */
- else
- tmp = 0x1f; /* all known bits (4-0) routed to external APIC */
-
- printk(KERN_INFO "PCI: %sbling Via external APIC routing\n",
- tmp == 0 ? "Disa" : "Ena");
-
- /* Offset 0x58: External APIC IRQ output control */
- pci_write_config_byte (dev, 0x58, tmp);
-}
-
-/*
- * The AMD io apic can hang the box when an apic irq is masked.
- * We check all revs >= B0 (yet not in the pre production!) as the bug
- * is currently marked NoFix
- *
- * We have multiple reports of hangs with this chipset that went away with
- * noapic specified. For the moment we assume its the errata. We may be wrong
- * of course. However the advice is demonstrably good even if so..
- */
-
-static void __devinit quirk_amd_ioapic(struct pci_dev *dev)
-{
- u8 rev;
-
- pci_read_config_byte(dev, PCI_REVISION_ID, &rev);
- if(rev >= 0x02)
- {
- printk(KERN_WARNING "I/O APIC: AMD Errata #22 may be present. In the event of instability try\n");
- printk(KERN_WARNING " : booting with the \"noapic\" option.\n");
- }
-}
-
-static void __init quirk_ioapic_rmw(struct pci_dev *dev)
-{
- if (dev->devfn == 0 && dev->bus->number == 0)
- sis_apic_bug = 1;
-}
-
-
-#endif /* CONFIG_X86_IO_APIC */
-
-
/*
* Via 686A/B: The PCI_INTERRUPT_LINE register for the on-chip
* devices, USB0/1, AC97, MC97, and ACPI, has an unusual feature:
@@ -429,18 +290,6 @@ static void __devinit quirk_piix3_usb(st
}

/*
- * VIA VT82C598 has its device ID settable and many BIOSes
- * set it to the ID of VT82C597 for backward compatibility.
- * We need to switch it off to be able to recognize the real
- * type of the chip.
- */
-static void __devinit quirk_vt82c598_id(struct pci_dev *dev)
-{
- pci_write_config_byte(dev, 0xfc, 0);
- pci_read_config_word(dev, PCI_DEVICE_ID, &dev->device);
-}
-
-/*
* CardBus controllers have a legacy base address that enables them
* to respond as i82365 pcmcia controllers. We don't want them to
* do this even if the Linux CardBus driver is not loaded, because
@@ -454,29 +303,6 @@ static void __devinit quirk_cardbus_lega
}

/*
- * Following the PCI ordering rules is optional on the AMD762. I'm not
- * sure what the designers were smoking but let's not inhale...
- *
- * To be fair to AMD, it follows the spec by default, its BIOS people
- * who turn it off!
- */
-
-static void __devinit quirk_amd_ordering(struct pci_dev *dev)
-{
- u32 pcic;
- pci_read_config_dword(dev, 0x4C, &pcic);
- if((pcic&6)!=6)
- {
- pcic |= 6;
- printk(KERN_WARNING "BIOS failed to enable PCI standards compliance, fixing this error.\n");
- pci_write_config_dword(dev, 0x4C, pcic);
- pci_read_config_dword(dev, 0x84, &pcic);
- pcic |= (1<<23); /* Required in this mode */
- pci_write_config_dword(dev, 0x84, pcic);
- }
-}
-
-/*
* DreamWorks provided workaround for Dunord I-3000 problem
*
* This card decodes and responds to addresses not apparently
@@ -520,8 +346,6 @@ static void __init quirk_mediagx_master(

static struct pci_fixup pci_fixups[] __devinitdata = {
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_DUNORD, PCI_DEVICE_ID_DUNORD_I3000, quirk_dunord },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release },
/*
* Its not totally clear which chipsets are the problematic ones
* We know 82C586 and 82C596 variants are affected.
@@ -532,24 +356,12 @@ static struct pci_fixup pci_fixups[] __d
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_1, quirk_isa_dma_hangs },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_868, quirk_s3_64M },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_968, quirk_s3_64M },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82437, quirk_triton },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82437VX, quirk_triton },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82439, quirk_triton },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82439TX, quirk_triton },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_natoma },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443LX_0, quirk_natoma },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443LX_1, quirk_natoma },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_0, quirk_natoma },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_1, quirk_natoma },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_2, quirk_natoma },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5597, quirk_nopcipci },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496, quirk_nopcipci },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8363_0, quirk_vialatency },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8371_1, quirk_vialatency },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8361, quirk_vialatency },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576, quirk_vsfx },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_viaetbf },
- { PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_vt82c598_id },
+ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8361, quirk_vialatency },
+
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_vt82c586_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_vt82c686_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi },
@@ -557,20 +369,11 @@ static struct pci_fixup pci_fixups[] __d
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_2, quirk_piix3_usb },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_2, quirk_piix3_usb },
{ PCI_FIXUP_FINAL, PCI_ANY_ID, PCI_ANY_ID, quirk_cardbus_legacy },
-
-#ifdef CONFIG_X86_IO_APIC
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_ioapic },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7410, quirk_amd_ioapic },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_SIS, PCI_ANY_ID, quirk_ioapic_rmw },
-#endif
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_acpi },
{ PCI_FIXUP_HEADER, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_acpi },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irqpic },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irqpic },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_6, quirk_via_irqpic },
-
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_700C, quirk_amd_ordering },
- { PCI_FIXUP_FINAL, PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RADEON_IGP, quirk_ati_exploding_mce },
/*
* i82380FB mobile docking controller: its PCI-to-PCI bridge
* is subtractive decoding (transparent), and does indicate this

2002-11-28 17:02:40

by Alan

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, 2002-11-28 at 17:02, Ivan Kokshaysky wrote:
> Actually a LOT of fixups in drivers/pci/quirks.c are 100% x86 specific
> and therefore don't belong in there.
> What about this patch?
> It moves most obvious stuff (northbridges quirks) to the proper
> place (arch/i386/pci/fixups.c).

What about x86_64 ?

Can the x86_64 folks verify these are not going to appear in x86_64
systems at all ?

2002-11-28 17:25:34

by Dave Jones

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, Nov 28, 2002 at 08:02:07PM +0300, Ivan Kokshaysky wrote:

> +static void __devinit quirk_ati_exploding_mce(struct pci_dev *dev)
> +{
> + printk(KERN_INFO "ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.\n");
> + /* Mae rhaid in i beidio a edrych ar y lleoliad I/O hyn */

You gotta be kidding me ? Amusing as the welsh language may be,
comments really should be readable to more than 0.01% of those likely
to be looking at them.

Dave

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-11-28 17:26:25

by Dave Jones

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, Nov 28, 2002 at 05:41:41PM +0000, Alan Cox wrote:
> > It moves most obvious stuff (northbridges quirks) to the proper
> > place (arch/i386/pci/fixups.c).
> What about x86_64 ?
> Can the x86_64 folks verify these are not going to appear in x86_64
> systems at all ?

I would hope no-one has the idea to wire a hammer up to a
triton/natoma chipset. The VIA ones are more questionable.

Dave

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-11-28 17:35:15

by Ivan Kokshaysky

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, Nov 28, 2002 at 05:31:20PM +0000, Dave Jones wrote:
> I would hope no-one has the idea to wire a hammer up to a
> triton/natoma chipset. The VIA ones are more questionable.

AFAIK, hammers need their own very specific host bridges and
won't work with anything else.

I'm aware of the only one case where x86 northbridges are wired to
non-x86 CPU - AMD-750 and AMD-760 (Irongate) and Alpha ev6.
None of these chips are listed in the quirks though.

Ivan.

2002-11-28 18:15:04

by Alan

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, 2002-11-28 at 17:30, Dave Jones wrote:
> On Thu, Nov 28, 2002 at 08:02:07PM +0300, Ivan Kokshaysky wrote:
>
> > +static void __devinit quirk_ati_exploding_mce(struct pci_dev *dev)
> > +{
> > + printk(KERN_INFO "ATI Northbridge, reserving I/O ports 0x3b0 to 0x3bb.\n");
> > + /* Mae rhaid in i beidio a edrych ar y lleoliad I/O hyn */
>
> You gotta be kidding me ? Amusing as the welsh language may be,
> comments really should be readable to more than 0.01% of those likely
> to be looking at them.

Some people have no sense of humour.


2002-11-28 18:21:02

by Dave Jones

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On Thu, Nov 28, 2002 at 06:54:12PM +0000, Alan Cox wrote:
> > > + /* Mae rhaid in i beidio a edrych ar y lleoliad I/O hyn */
> > You gotta be kidding me ? Amusing as the welsh language may be,
> > comments really should be readable to more than 0.01% of those likely
> > to be looking at them.
> Some people have no sense of humour.

Maybe I just have too many not so fond memories of compulsory welsh classes
in my youth 8-)

Dave

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-11-28 18:23:34

by Mike Dresser

[permalink] [raw]
Subject: Re: drivers/pci/quirks.c / Re: Linux v2.5.50

On 28 Nov 2002, Alan Cox wrote:

> Some people have no sense of humour.

Iway onderway enwhay ethay igpay-atinlay gccay ompilercay illway eby
evelopedday andway idelyway implementedway.

ikemay

2002-11-30 19:59:19

by Adrian Bunk

[permalink] [raw]
Subject: Re: Linux v2.5.50

On Wed, Nov 27, 2002 at 03:07:38PM -0800, Linus Torvalds wrote:

>...
> Summary of changes from v2.5.49 to v2.5.50
> ============================================

2.5.50 includes two changes that have the following in common:
- Alan forwarded them to you
- they were originally sent by me
- they are buggy

Below are explanations and fixes.

>...
> Alan Cox <[email protected]>:
>...
> o remove junk from vlsi_ir
>...

1. the maintainer prefers to leave the LINUX_VERSION_CODE und to add an
#include <linux/version.h> to make it easier to have the same driver
in both 2.4 and 2.5
2. my removal of pci_dma_prep_single was complete nonsense (no, it's not
part of the comment...)

The following patch fixes it:

--- linux-2.5.50/include/net/irda/vlsi_ir.h.old 2002-11-30 20:50:10.000000000 +0100
+++ linux-2.5.50/include/net/irda/vlsi_ir.h 2002-11-30 20:50:20.000000000 +0100
@@ -27,6 +27,26 @@
#ifndef IRDA_VLSI_FIR_H
#define IRDA_VLSI_FIR_H

+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,4)
+#ifdef CONFIG_PROC_FS
+/* PDE() introduced in 2.5.4 */
+#define PDE(inode) ((inode)->u.generic_ip)
+#endif
+#endif
+
+/*
+ * #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,xx)
+ *
+ * missing pci-dma api call to give streaming dma buffer back to hw
+ * patch floating on lkml - probably present in 2.5.26 or later
+ * otherwise defining it as noop is ok, since the vlsi-ir is only
+ * used on two oldish x86-based notebooks which are cache-coherent
+ */
+#define pci_dma_prep_single(dev, addr, size, direction) /* nothing */
+/*
+ * #endif
+ */
+
/* ================================================================ */

/* non-standard PCI registers */
--- linux-2.5.50/drivers/net/irda/vlsi_ir.c.old 2002-11-30 20:51:12.000000000 +0100
+++ linux-2.5.50/drivers/net/irda/vlsi_ir.c 2002-11-30 20:51:39.000000000 +0100
@@ -44,6 +44,7 @@
#include <linux/time.h>
#include <linux/proc_fs.h>
#include <linux/smp_lock.h>
+#include <linux/version.h>
#include <asm/uaccess.h>

#include <net/irda/irda.h>


> o fix sound kconfig file locations
>...

The changed file locations are OK, wrond is my addition of the question
strings to MSNDCLAS_HAVE_BOOT are MSNDPIN_HAVE_BOOT. As Roman Zippel
told me in another thread they were define_bool in the old kconfig.

The following patch corrects this:

--- linux-2.5.50/sound/oss/Kconfig.old 2002-11-30 20:47:01.000000000 +0100
+++ linux-2.5.50/sound/oss/Kconfig 2002-11-30 20:47:25.000000000 +0100
@@ -293,7 +293,7 @@
depends on SOUND_PRIME && SOUND_MSNDCLAS=y

config MSNDCLAS_HAVE_BOOT
- bool "Have MSNDINIT.BIN firmware file"
+ bool
depends on SOUND_MSNDCLAS=y
default y

@@ -355,7 +355,7 @@
depends on SOUND_PRIME && SOUND_MSNDPIN=y

config MSNDPIN_HAVE_BOOT
- bool "Have PNDSPINI.BIN firmware file"
+ bool
depends on SOUND_MSNDPIN=y
default y




Sorry
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2002-12-01 14:33:42

by Adrian Bunk

[permalink] [raw]
Subject: Re: Linux v2.5.50

On Wed, Nov 27, 2002 at 03:07:38PM -0800, Linus Torvalds wrote:

>...
> Summary of changes from v2.5.49 to v2.5.50
> ============================================
>...
> Doug Ledford <[email protected]>:
>...
> o Convert from host->host_queue to host->my_devices list usage Add in
> usage of new same_target_siblings list Add
> scsi_release_commandblocks() call to scsi_free_sdev() Make all scsi
> device freeing use scsi_free_sdev()
>...

The change to eata_pio_proc.c contains a typo:

<-- snip -->

...
gcc -Wp,-MD,drivers/scsi/.eata_pio.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=k6 -Iarch/i386/mach-generic
-nostdinc -iwithprefix include -DKBUILD_BASENAME=eata_pio
-DKBUILD_MODNAME=eata_pio
-c -o drivers/scsi/eata_pio.o drivers/scsi/eata_pio.c
In file included from drivers/scsi/eata_pio.c:94:
drivers/scsi/eata_pio_proc.c:88: macro `list_for_each_entry' used with only 2 args
In file included from drivers/scsi/eata_pio.c:94:
drivers/scsi/eata_pio_proc.c: In function `eata_pio_proc_info':
drivers/scsi/eata_pio_proc.c:88: parse error before `)'
...
make[2]: *** [drivers/scsi/eata_pio.o] Error 1

<-- snip -->


The fix is simple:


--- linux-2.5.50/drivers/scsi/eata_pio_proc.c.old 2002-12-01 15:32:22.000000000 +0100
+++ linux-2.5.50/drivers/scsi/eata_pio_proc.c 2002-12-01 15:32:50.000000000 +0100
@@ -85,7 +85,7 @@
len += size;
pos = begin + len;

- list_for_each_entry(scd, &HBA_ptr->my_devices; siblings) {
+ list_for_each_entry(scd, &HBA_ptr->my_devices, siblings) {
proc_print_scsidevice(scd, buffer, &size, len);
len += size;
pos = begin + len;


cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2002-12-04 10:45:24

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [uPATCH] NCR5380.c compile fix Re: Linux v2.5.50

On Wed, 27 Nov 2002, Paul wrote:
> Linus Torvalds <[email protected]>, on Wed Nov 27, 2002 [03:07:38 PM] said:
> >
> > Taking a small thanksgiving break, but before that here's 2.5.50.
> >
>
> Hi;
>
> Needed this so NCR5380.c would compile. (via pas16)
>
> Paul
> [email protected]
>
> --- 2.5.50.virgin/drivers/scsi/NCR5380.c 2002-11-12 21:18:00.000000000 -0500
> +++ 2.5.50/drivers/scsi/NCR5380.c 2002-11-27 21:20:26.000000000 -0500
> @@ -1477,8 +1477,8 @@
> int len;
> unsigned long timeout;
> unsigned char value;
> - NCR5380_setup(instance);
> int err;
> + NCR5380_setup(instance);
>
> if (hostdata->selecting) {
> if(instance->irq != IRQ_NONE)

And you need one more to compile the Mac/m68k SCSI driver:

Compile fixes for the NCR5380 core support:
- All variable declarations must come first in C
- Fix curly braces

--- linux-2.5.50/drivers/scsi/NCR5380.c Sun Dec 1 21:45:41 2002
+++ linux-m68k-2.5.x/drivers/scsi/NCR5380.c Mon Nov 11 20:54:18 2002
@@ -1477,8 +1477,8 @@
int len;
unsigned long timeout;
unsigned char value;
- int err;
NCR5380_setup(instance);
+ int err;

if (hostdata->selecting) {
if(instance->irq != IRQ_NONE)
@@ -2489,9 +2489,8 @@
hostdata->issue_queue;
hostdata->issue_queue = (Scsi_Cmnd *) cmd;
dprintk(NDEBUG_QUEUES, ("scsi%d : REQUEST SENSE added to head of issue queue\n", instance->host_no));
- } else
+ } else {
#endif /* def AUTOSENSE */
- {
collect_stats(hostdata, cmd);
cmd->scsi_done(cmd);
}

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds