All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: IDE-CD and VT8235 issue!!!
From: Marcelo Tosatti @ 2002-12-18 19:27 UTC (permalink / raw)
  To: AnonimoVeneziano; +Cc: John Reiser, linux-kernel, Vojtech Pavlik, black666
In-Reply-To: <3E00F161.8090501@tin.it>



On Wed, 18 Dec 2002, AnonimoVeneziano wrote:

> John Reiser wrote:
>
> > Vojtech Pavlik wrote:
> >
> >> One more here, if you can try it (and remove the two previous ones
> >> first).
> >
> >
> > The earlier vt8235-dvd patch worked for me, but the later vt8235-min
> > did not.
> >
> > Mitsumi FX4830T ATAPI CD-ROM, MSI KT3 Ultra2 (KT333) mainboard, vt8235.
> > -----
> > kernel: hdc: status error: status=0x58 { DriveReady SeekComplete
> > DataRequest }
> > kernel: hdc: drive not ready for command
> > kernel: hdc: status timeout: status=0xd1 { Busy }
> > kernel: hdc: DMA disabled
> > kernel: hdc: drive not ready for command
> > kernel: hdc: ATAPI reset complete
> > kernel: hdc: status timeout: status=0xd1 { Busy }
> > kernel: hdc: drive not ready for command
> > -----
>
> Hunks error? during the patching?
>
> byez
>
> Marcello

Hi,

The lattest workaround from Vojtech fixed the problem for you ?

^ permalink raw reply

* Re: Freezing.. (was Re: Intel P6 vs P7 system call performance)
From: John Bradford @ 2002-12-18 22:37 UTC (permalink / raw)
  To: Larry McVoy; +Cc: lm, alan, torvalds, davej, vonbrand, linux-kernel, akpm
In-Reply-To: <20021218140845.L7976@work.bitmover.com>

> > This forthcoming BK-related flamewar falls in to category 1, I.E. is
> > not a 2.6 feature :-)
> 
> I don't understand why BK is part of the conversation.  It has nothing to
> do with it.  If every time I post to this list the assumption is that it's
> "time to beat larry up about BK" then it's time for me to get off
> the list.
> I can understand it when we're discussing BK; other than that, it's pretty
> friggin lame.  If that's what was behind your posts, Alan, there is an
> easy procmail fix for that.

My interpretation was that that is what he meant.  If I was wrong, I
appologise.

I was trying to point out in an amusing way that a repeat of the BK
flamewar we've seen on LKML was inappropriate.

John.

^ permalink raw reply

* Re: [parisc-linux] still problems with PCI IDE controller
From: Joerg Steindlberger @ 2002-12-18 22:18 UTC (permalink / raw)
  To: Grant Grundler; +Cc: parisc-linux
In-Reply-To: <20021218212455.GG17944@dsl2.external.hp.com>

Hi Grant

On Wednesday 18 December 2002 22:24, Grant Grundler wrote:
> IDE in PIO Mode (ie not using DMA) does not play well with the
> rest of the system.
Okay. I now set hdparm -c 1 /dev/... and hdparm -d 1 /dev/... -- before=20
starting the softwareRAID. The RAID1 is syncing this moment with about 2=20
Mbyte/s. I think I'll stop it now and mount the shorter 80pin cable again=
 and=20
play with some speed settings. My earlier problem with DMA was, that the=20
kernal crashed when setting the CONFIG_IDEDMA_AUTO=3Dy.
> Nope. IDE is EEEeevil ;^)
Yes, I know. But what would You pay for two 80 GB disks?

Regards
Joerg

^ permalink raw reply

* 2.5.52: ejecting 3c575 Cardbus nic oopses pci_remove_device
From: Mikael Pettersson @ 2002-12-18 22:23 UTC (permalink / raw)
  To: linux-kernel

Dell Latitude with a 3c575 Cardbus nic. Kernel 2.5.52.
User-space is RedHat 8.0 with hotplug-2002_04_01.

Inserting the card fails to enable it due to a bogus resource collision:

Dec 18 20:58:22 ??? kernel: cs: cb_alloc(bus 5): vendor 0x10b7, device 0x5057
Dec 18 20:58:22 ??? kernel: PCI: Device 05:00.0 not available because of resource collisions

Ejecting the card then immediately oopses pci_remove_device():

Dec 18 20:58:28 ??? kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004
Dec 18 20:58:28 ??? kernel: c01967df
Dec 18 20:58:28 ??? kernel: *pde = 00000000
Dec 18 20:58:28 ??? kernel: Oops: 0002
Dec 18 20:58:28 ??? kernel: CPU:    0
Dec 18 20:58:28 ??? kernel: EIP:    0060:[<c01967df>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
Dec 18 20:58:28 ??? kernel: EFLAGS: 00010286
Dec 18 20:58:28 ??? kernel: eax: 00000000   ebx: c7edc000   ecx: 05c00558   edx: 00000000
Dec 18 20:58:28 ??? kernel: esi: 00000000   edi: c7edc000   ebp: c7ecf800   esp: c7f93f28
Dec 18 20:58:28 ??? kernel: ds: 0068   es: 0068   ss: 0068
Dec 18 20:58:28 ??? kernel: Stack: c7edc000 c01e4c36 c7edc000 c7ecf800 c7ecf800 c01e6bc0 c7feb820 c01e205a 
Dec 18 20:58:28 ??? kernel:        c7ecf800 c7ecf800 c7ecf800 c7ecf80c c7ecf800 00000080 c01e6bc0 c7feb820 
Dec 18 20:58:28 ??? kernel:        c01e2385 c7ecf800 00000003 c7ecf800 c01e23c6 c7ecf800 c033059c c0330558 
Dec 18 20:58:28 ??? kernel:  [<c01e4c36>] cb_free+0x2a/0x60
Dec 18 20:58:28 ??? kernel:  [<c01e6bc0>] yenta_bh+0x0/0x24
Dec 18 20:58:28 ??? kernel:  [<c01e205a>] shutdown_socket+0x76/0xe0
Dec 18 20:58:28 ??? kernel:  [<c01e6bc0>] yenta_bh+0x0/0x24
Dec 18 20:58:28 ??? kernel:  [<c01e2385>] do_shutdown+0x5d/0x64
Dec 18 20:58:28 ??? kernel:  [<c01e23c6>] parse_events+0x3a/0xd8
Dec 18 20:58:28 ??? kernel:  [<c01e6bde>] yenta_bh+0x1e/0x24
Dec 18 20:58:28 ??? kernel:  [<c011fc3d>] worker_thread+0x18d/0x240
Dec 18 20:58:28 ??? kernel:  [<c011fab0>] worker_thread+0x0/0x240
Dec 18 20:58:28 ??? kernel:  [<c01e6bc0>] yenta_bh+0x0/0x24
Dec 18 20:58:28 ??? kernel:  [<c0113710>] default_wake_function+0x0/0x34
Dec 18 20:58:28 ??? kernel:  [<c0113710>] default_wake_function+0x0/0x34
Dec 18 20:58:28 ??? kernel:  [<c0106ddd>] kernel_thread_helper+0x5/0xc
Dec 18 20:58:28 ??? kernel: Code: 89 50 04 89 02 8b 53 04 8b 03 89 50 04 89 02 53 e8 a4 ff ff 


>>EIP; c01967df <pci_remove_device+17/38>   <=====

>>ebx; c7edc000 <END_OF_CODE+7ba2b28/????>
>>ecx; 05c00558 Before first symbol
>>edi; c7edc000 <END_OF_CODE+7ba2b28/????>
>>ebp; c7ecf800 <END_OF_CODE+7b96328/????>
>>esp; c7f93f28 <END_OF_CODE+7c5aa50/????>

Code;  c01967df <pci_remove_device+17/38>
00000000 <_EIP>:
Code;  c01967df <pci_remove_device+17/38>   <=====
   0:   89 50 04                  mov    %edx,0x4(%eax)   <=====
Code;  c01967e2 <pci_remove_device+1a/38>
   3:   89 02                     mov    %eax,(%edx)
Code;  c01967e4 <pci_remove_device+1c/38>
   5:   8b 53 04                  mov    0x4(%ebx),%edx
Code;  c01967e7 <pci_remove_device+1f/38>
   8:   8b 03                     mov    (%ebx),%eax
Code;  c01967e9 <pci_remove_device+21/38>
   a:   89 50 04                  mov    %edx,0x4(%eax)
Code;  c01967ec <pci_remove_device+24/38>
   d:   89 02                     mov    %eax,(%edx)
Code;  c01967ee <pci_remove_device+26/38>
   f:   53                        push   %ebx
Code;  c01967ef <pci_remove_device+27/38>
  10:   e8 a4 ff ff 00            call   ffffb9 <_EIP+0xffffb9>

This all works fine in 2.4 kernels.
It used to work in 2.5 kernels, up to early-mid 2.5.4x or so.

UP, no preemption, no modules. HOTPLUG, CARDBUS, and VORTEX enabled.

/Mikael

^ permalink raw reply

* Linux 2.4.21-pre2
From: Marcelo Tosatti @ 2002-12-18 19:22 UTC (permalink / raw)
  To: lkml


Hi,

Better late than never, here goes -pre2.


Summary of changes from v2.4.21-pre1 to v2.4.21-pre2
============================================

<agruen@suse.de>:
  o ia64: Extended Attribute VFS syscalls

<alex_williamson@hp.com[helgaas]>:
  o ia64: If no CPE interrupt, poll periodically for CPEs

<bjorn_helgaas@hp.com[helgaas]>:
  o ia64: Fix race between TLB purges and reload_context
  o ia64: Avoid holding tasklist_lock across routines that do IPIs (such as flush_tlb_all())
  o ia64: Avoid holding task lock while calling access_process_vm()
  o ia64: Update defconfig with 2.4.20 defaults, build in ext3
  o ia64: Move simeth, simserial, simscsi back to drivers/ for init ordering
  o ia64: break trap: die_if_kernel only if break value is 0
  o ia64: Alternate signal stack fix.  Patch from David Mosberger

<davidm@tiger.hpl.hp.com[helgaas]>:
  o ia64: Some formatting cleanups
  o ia64: Patch by Venkatesh Pallipadi to fix IA-32 signal handling to restore instruction and data pointers.
  o ia64: Fix unaligned memory access handler

<eranian@frankl.hpl.hp.com>:
  o ia64: perfmon update

<eranian@frankl.hpl.hp.com[helgaas]>:
  o ia64: perfmon: This patch adds

<grundym@us.ibm.com>:
  o 2.4.21-pre1 compile fixes for s390(x)

<jkt@helius.com>:
  o uhci corruption on usb_submit_urb when already -EINPROGRESS

<jsm@udlkern.fc.hp.com>:
  o ia64: Preserve f11-f15 around calls into firmware
  o ia64: Use virtual mem map automatically if >1GB gap found

<kernel@steeleye.com>:
  o Fix NULL pointer dereference in ide.c

<kuba@mareimbrium.org>:
  o USB: ftdi-sio update

<m.c.p@wolk-project.de>:
  o Eliminate warning in drivers/usb/hc_sl811.c

<marekm@amelek.gda.pl>:
  o Datafab KECF-USB / Sagatek DCS-CF / Simpletech UCF-100

<mikael.starvik@axis.com>:
  o CRIS architecture update for 2.4.21

<mlocke@mvista.com>:
  o serial.c fix: ELAN fix breaks others

<nobita@t-online.de>:
  o support for Sony Cybershot F717 digital camera / usb-storage

<petkan@mastika.dce.bg>:
  o set_mac_address is now added to the driver.  thanks to Orjan Friberg <orjan.friberg@axis.com>

<petkan@rakia.dce.bg>:
  o USB: pegasus: the data for the control requests is now stored in DMA able memory

<stelian@popies.net>:
  o usbnet typo

<venkatesh.pallipadi@intel.com[helgaas]>:
  o ia64: Save/Restore of IA32 fpstate in sigcontext
  o ia64: Clearing of exception status before calling IA32 user signal handler
  o ia64: IA-32 ptrace: xmm reg support, fpstate 'tag' fix, fp TOS fix

<wahrenbruch@kobil.de>:
  o USB: add kobil_sct driver
  o USB: kobil_sct driver bugfix

<willy@fc.hp.com>:
  o ia64: Remove support for HP prototypes
  o ia64: Discard *.text.exit and *.data.exit sections
  o ia64: ACPI tidy-up

Alan Cox <alan@lxorguk.ukuu.org.uk>:
  o IDE changes for CRIS
  o ppc structure mangling for ide
  o Add NS32 author to CREDITS
  o Add NinjaSCSI author to CREDITS
  o ide config tweaks
  o ninja 32 help
  o config for beos fs
  o pcigame now does ali5451
  o clean drm object
  o fix pci game double unregister
  o update serial_cs from pcmcia updates
  o update parisc gsc/hil drivers
  o ad scx200 i2c drivers
  o typo in ide config
  o fix port types to be long for IDE iops, fix ppc mess
  o ide-tape driver updates
  o fix u32->ulong for IDE bars
  o fix ali u32->ulong on bars also fix oops on boot with xmeta
  o ; more ide fixes for ulong
  o fix hpt, print message when we abort due to overclocking
  o more ide u32->ulong
  o clean up u32/ulong/mmio etc on siimage (DaveM)
  o final bits of ide pci driver fixup
  o add sf16fmr2 driver
  o fix sign bug in pms
  o make the cache line printk nicer and < 80 cols
  o config for ninja32 scsi
  o further cpqfcts fixes
  o fix section clash in in2000
  o makefile for NSP32
  o comment purpose of a blacklist entry
  o ad1889 audio driver
  o makefile for ad1889
  o midibuf data loss fixes
  o fix cirrus driver for 7548
  o add hppa fbmem rule
  o update parisc st driver
  o ugly but signed wrap isnt defined
  o make alpha use generic iops
  o more idea headers
  o the generic iops
  o x86 uses generic ios
  o bring mode ide headers back into line
  o make ia64 macro in/out safer
  o parisc ide bits
  o bring parisc system_irqsave into sync
  o bring ppc irq bits into sync
  o ide update bits for sparc
  o default iops for x86-64
  o arcnet header update
  o update core IDE to reflect ulong port
  o interrupt.h might need system.h
  o tidy misc.h
  o reserve value used in 2.5
  o reserve ident for the sf16
  o pcmcia id/header updates
  o maintainer updates
  o ide setup-pci u32->ulong for dma base
  o AGP Gart setup

Alan Cox <alan@redhat.com>:
  o SIS5513 fixes

Alex Williamson <alex_williamson@hp.com>:
  o ia64: Fix potential MCA and silent data corruption in HP zx1 IOMMU driver.

Andreas Schwab <schwab@suse.de>:
  o ia64: Add missing symbol exports for modules
  o ia64: Remove many warnings

Andrew Morton <akpm@digeo.com>:
  o ext3 deadlock fix
  o ext3 use-after-free bugfix

Arjan van de Ven <arjanv@redhat.com>:
  o USB pwc deadlock fixes

Ben Collins <bcollins@debian.org>:
  o Linux1394 Firewire

Bjorn Helgaas <bjorn_helgaas@hp.com>:
  o ia64: Reserve syscall numbers 1238-1242 for AIO
  o ia64: If more than NR_CPUS found, ignore the extras
  o ia64: Move simeth, simserial, simscsi to arch/ia64/hp/sim
  o ia64: Rename ia64_alloc_irq to ia64_alloc_vector
  o ia64: Print EFI call status in hex, not decimal
  o ia64: Remove McKinley A-step config stuff
  o ia64: Sync with pcibios_enable_device interface change
  o Remove include/asm-ia64/offsets.h
  o ia64: Add PCI_DMA_BUS_IS_PHYS definition
  o ia64: support scatterlist page/offset in sba_iommu.c
  o ia64: Remove obsolete McKinley A0 workaround
  o ia64: Reserve hugetlb syscall numbers
  o ia64: Optimize load/save FPU (Fenghua Yu, Intel)
  o ia64: more scatterlist page/offset cleanup
  o ia64: Scan PCI buses 0-255 (not 0-254)
  o ia64: Skip blind PCI probe when root bridges are reported by ACPI
  o ia64: Detect HP ZX1 AGP bridge via ACPI instead of the old, unmaintainable "fake PCI device" scheme.
  o ia64: Restore "fake PCI device" support, for XFree86.  This is intended to go away in 2.5.x.
  o ia64: Rename __flush_tlb_all() to local_flush_tlb_all()
  o ia64: Make flush_tlb_mm() work for multi-threaded address-spaces on SMP machines
  o ia64: Fix ACPI_ACQUIRE_GLOBAL_LOCK and ACPI_RELEASE_GLOBAL_LOCK
  o ia64: Fix efi_memmap_walk() to work with more complicated memory maps
  o ia64: Make mremap() work properly when returning "negative" addresses
  o ia64: Workaround for old toolchain (__get_user() in perfmon)
  o ia64: Include vendor/function ID for "Unknown" IOCs
  o ia64: Fix typo in unaligned memory access handler (no functional change)
  o joydev: fix HZ->millisecond transformation
  o Remove bogus AGP/DRM assumptions

Charles White <charles.white@hp.com>:
  o cpqfc fixes

Christoph Hellwig <hch@sgi.com>:
  o CREDITS update
  o fix small style error in arch/i386/config.in

David Brownell <david-b@pacbell.net>:
  o remove CONFIG_USB_LONG_TIMEOUT
  o usbnet:  framing, sync with 2.5

David Mosberger <davidm@tiger.hpl.hp.com>:
  o ia64: Fix I/O macros in asm-ia64/io.h.  Based on patch by Andreas Schwab
  o ia64: Fix x86 struct ipc_kludge (reported by R Sreelatha, fix proposed by Dave Miller).
  o ia64: Fix return path of signal delivery for sigaltstack() case
  o ia64: Fix narrow window during which signal could be delivered with only the memory stack switched over to the alternate signal stack.
  o ia64: Fix edge-triggered IRQ handling.  See Linus's 2.5 cset 1.611 for details
  o ia64: Create dummy file include/asm-ia64/mc146818rtc.h since ide-geometry.c continues to insist on it.
  o ia64: Fix EFI runtime callbacks so they cannot corrupt fp regs
  o ia64: Make it easier to set a breakpoint in the Ski simulator right before starting the kernel (based on patch by Peter Chubb).

Greg Kroah-Hartman <greg@kroah.com>:
  o tipar: fix #include so the driver can compile
  o Dynamic MP_BUSSES and IRQ_SOURCES for 2.4.21-pre1
  o Fix minor code formatting issue on mpparse.c
  o USB: pwc driver: fix compile time warning
  o USB: uhci: fix formatting problem with last patch

J.I. Lee <jung-ik.lee@intel.com>:
  o ia64: PCI hotplug changes for 2.5.39 or later

James Bottomley <james.bottomley@steeleye.com>:
  o Backport of nbd update from 2.5.50

Jean Tourrilhes <jt@bougret.hpl.hp.com>:
  o IrTTP partial rewrite (credit fixes, races)
  o IrDA dongle locking context fix
  o LSAP socket close fixes
  o simultaneour IrNET connect race fix
  o SMC driver region fixes
  o return under spinlock fixes (Stanford checker)
  o Wireless Extension v15 : private command improvements

Jeff Garzik <jgarzik@redhat.com>:
  o [NET] support IPv6 over token ring (from lkml)
  o [netdrvr tg3] a fix, a cleanup, and an optimization

Jenna S. Hall <jenna.s.hall@intel.com>:
  o ia64: Minor MCA bugfixes

Jens Axboe <axboe@suse.de>:
  o cciss driver update
  o cpqarray driver update

John Stultz <johnstul@us.ibm.com>:
  o Fix gettimeofday for Summit based systems

Kenneth W. Chen <kenneth.w.chen@intel.com>:
  o ia64: Change memcpy to return dest address

Manfred Spraul <manfred@colorfullife.com>:
  o sys_poll SuS compliance fix

Marcelo Tosatti <marcelo@freak.distro.conectiva>:
  o Cset exclude: rusty@rustcorp.com.au|ChangeSet|20021217162617|02721
  o Cset exclude: Charles.White@hp.com|ChangeSet|20021217174320|03728
  o Cset exclude: bjorn_helgaas@hp.com|ChangeSet|20021217162948|02321
  o Changed EXTRAVERSION to -pre2

Matt Domsch <matt_domsch@dell.com>:
  o megaraid 1.18f

Matthew Wilcox <willy@debian.org>:
  o Add pci_bus_*() API for 2.4 [1/2]
  o Convert acpiphp to pci_bus_*() API [2/2]

Neil Brown <neilb@cse.unsw.edu.au>:
  o kNFSd - 1 of 7 - Release rpc response when dropping
  o knfsd - Revalidate inodes after filehandle and name lookup in nfsd
  o knfsd - Use correct value for max size for readlink response
  o knfsd - Fix problem with lockd grace period checking
  o knfsd - Ease increasing the max block size for NFS replies
  o knfs - Correct some error codes returned in nfsfh.c
  o MD - avoid races by never no releasing rdev->sb for faulty devices
  o Remove some inappropriate MD_BUG calls when hot_removing
  o Avoid buffer cache when doing IO of RAID superblock

Nemosoft Unv. <nemosoft@smcc.demon.nl>:
  o USB: PWC 8.10 for 2.4.20

Romain Lievin <rlievin@free.fr>:
  o Add tipar char driver

Rusty Russell <rusty@rustcorp.com.au>:
  o fs_reiserfs_fix_node.c, typo: resourses
  o arch_ppc_mm_tlb.c, typo: the the
  o typo: include_linux_pci_ids.h s_DEVIDE_DEVICE
  o 2.5: kconfig missing EXPERIMENTAL (14_14)
  o 2.5: kconfig spurious bool default value (3_3)
  o tiny kmem_cache_destroy doc tweak
  o Labeled elements are not a GNU extension
  o drivers_s390_block_dasd_3990_erp.c, typo: becaus(e),
  o arch_sh_kernel_irq_intc2.c, typo: the the
  o net_irda_irlmp_event.c, typos: the the, whish
  o drivers_block_ll_rw_blk.c, typo: the the
  o include_asm-ppc_semaphore.h, typo: the the
  o remove emacs settings
  o Wrong module name in help file. (fwd)
  o drivers_s390_block_dasd.c, typo: the the, capitalization
  o 2.5: kconfig choice default value
  o arch_ia64_sn_io_sn2_pcibr_pcibr_config.c, typo: the the
  o [Trivial Patch] scsi_register-006
  o [Trivial Patch] Fix misc_register()
  o Fix confusing comment
  o [patch 2.5] at1700 trivial
  o Check for misc_register() return code in wdt285
  o duplicate header in drivers_ieee1394_sbp2.c
  o drivers_net_bonding.c, typo: the the
  o backward ext3 endianness conversion
  o duplicate header in drivers_pcmcia_sa1100_generic.c
  o drivers_net_tulip_interrupt.c, typo: the the
  o arch_i386_kernel_smpboot.c, typo: wierd
  o Typo in linux_arch_i386_mm_init.c
  o Fix path in
  o drivers_isdn_isdn_ppp.c, typo: the the
  o Documentation_networking_bonding.txt, typo: the the
  o Documentation_cciss.txt, typo: the the
  o Documentation_watchdog-api.txt, typo: the the
  o drivers_sound_dmasound_dmasound_core.c, typo: wierd
  o drivers_md_lvm.c, typo: the the
  o update comments in ip_tables.c
  o include_asm-alpha_mmzone.h, typo: the the
  o silence invalidate_bdev() a bit
  o Remove duplicated entry in agpgart_be initialization table
  o include_asm-ia64_sn_alenlist.h, typo: the the
  o Fix request_region handling in epca
  o Domsch zip code change
  o sis900 doesn't free resources
  o Fix misc_register() error handling in nvram.c driver
  o 2.4.19 Documentation_Configure.help CONFIG_FB_TRIDENT
  o Remove reference to timer_exit() from kernel-locking.tmpl,
  o misc_register audit fixes on i2o_config

Stéphane Eranian <eranian@hpl.hp.com>:
  o ia64: Fix perfmon error path missing unlock
  o ia64: Fix perfmon error path leaks

Takayoshi Kouchi <t-kouchi@mvf.biglobe.ne.jp>:
  o ia64: Fix iosapic debug code
  o ia64: ACPI CRS cleanup

Tom Rini <trini@kernel.crashing.org>:
  o Correct the behavior of the int verb in scripts/Configure

Trond Myklebust <trond.myklebust@fys.uio.no>:
  o Fix possible SMP race in nfs_sync_page()
  o Fix accounting error in /proc/net/rpc/nfs
  o Disable Nagle algorithm for NFS over TCP


^ permalink raw reply

* Re: 2.4.19, don't "hdparm -I /dev/hde" if hde is on a Asus A7V133  Promise ctrlr, or...
From: D.A.M. Revok @ 2002-12-18 22:18 UTC (permalink / raw)
  To: John Bradford; +Cc: andre, manish, linux-kernel
In-Reply-To: <200212182204.gBIM48uD000332@darkstar.example.net>

I'd flashed the BIOS awhile ago, and it hasn't been updated since ( that 
I know of, it's an A7V133, so flashing it this year ...

Ah, yes, the scum who maintain the Asus websites don't allow secure 
browser access, so .. switching to Mozilla w/ scripting...
yes, they updated it to deal with the Thoroughbred, .. blockheads don't 
have the flash-util available on the site?
... right, have to go back to download start page..
what drugged official designed the "flow" of this site?

right, I'll check this, possibly flash the 'board, and get back to you.. 
tomorrow, because I've been up too long and am now fried, and I'm not 
flashing BIOS or going through all the setup again while I'm this 
fritzed.

I /hope/ this fixes it, but am not betting anything on it...

... and by the way .. thanks, people, eh?


On Wed 18 December, 2002 17:04, John Bradford wrote:
>> The BIOS is written to prevent one from choosing SCSI-boot and not
>> Promise-boot while the Promise-BIOS is enabled, so I'd disabled it.
>> ... when I re-enabled the Promise-BIOS, the problem disappeared.
>
>Have you checked for a possible BIOS update that might let you leave
>the BIOS enabled, and boot from another device, or alternatively
>initialise the chipset even though the BIOS is disabled?
>
>(I know it sounds odd to look for a BIOS update for an instance when
>you want the BIOS disabled, but, for example, on my Adaptec SCSI
>adaptor, disabling the BIOS means that it doesn't reserve address
>space, but it still initialises the devices.)
>
>I actually have a Promise card that I'm not using.  I bought it, but
>never used it, (I did use the IDE cable that came with it - that must
>have worked out to be the most expensive IDE cable in the world, at
>about 40 quid :-) :-) :-)).
>
>John.

-- 
http://www.drawright.com/
 - "The New Drawing on the Right Side of the Brain" ( Betty Edwards, 
check "Theory", "Gallery", and "Exercises" )
http://www.ldonline.org/ld_indepth/iep/seven_habits.html
 - "The 7 Habits of Highly Effective People" ( this site is same 
principles as Covey's book )
http://www.eiconsortium.org/research/ei_theory_performance.htm
 - "Working With Emotional Intelligence" ( Goleman: this link is 
/revised/ theory, "Working. . . " is practical )
http://www.leadershipnow.com/leadershop/1978-5.html
 - Corps Business: The 30 /Management Principles/ of the U.S. Marines ( 
David Freedman )

^ permalink raw reply

* Re: [PATCH]: fix compiler warnings in the math-emulator
From: Juan Quintela @ 2002-12-18 22:21 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: linux mips mailing list, Ralf Baechle
In-Reply-To: <Pine.GSO.3.96.1021218194246.5977G-100000@delta.ds2.pg.gda.pl>

>>>>> "maciej" == Maciej W Rozycki <macro@ds2.pg.gda.pl> writes:

maciej> On 18 Dec 2002, Juan Quintela wrote:
maciej> Is it needed?  The part that returns .mx should be optimized away by the
maciej> compiler automagically if unused. 
>> 
>> Idea was to make things compile without warnings, that way when you
>> change anything, you search for warnings :(

maciej> The idea is fine, sure.

>> With the changes that I sent, I have put the warnings levels down to
>> (for IP22) to:
>> - 7 C warnings
>> - 2 Asm warnings

maciej> A few warnings are unavoidable -- e.g. there is no way to shut up gas
maciej> complaining about macros expanding into multiple instructions in branch
maciej> delay slots.  Too bad.

I tried the 
  .set nowarn 
and found it didn't work.


maciej> How about this patch? -- it seems to work here (gcc 2.95.4).

Nope, the probem is that in the 3 places that I use the SETANDTEST()
macro they need the returned value.

Later, Juan.

maciej> -- 
maciej> +  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
maciej> +--------------------------------------------------------------+
maciej> +        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

maciej> patch-mips-2.4.20-pre6-20021212-setcx-0
maciej> diff -up --recursive --new-file linux-mips-2.4.20-pre6-20021212.macro/arch/mips/math-emu/ieee754int.h linux-mips-2.4.20-pre6-20021212/arch/mips/math-emu/ieee754int.h
maciej> --- linux-mips-2.4.20-pre6-20021212.macro/arch/mips/math-emu/ieee754int.h	2002-12-16 17:17:55.000000000 +0000
maciej> +++ linux-mips-2.4.20-pre6-20021212/arch/mips/math-emu/ieee754int.h	2002-12-18 18:31:51.000000000 +0000
maciej> @@ -58,10 +58,10 @@
maciej> #define CLPAIR(x,y)	((x)*6+(y))
 
maciej> #define CLEARCX	\
maciej> -  (ieee754_csr.cx = 0)
maciej> +	(ieee754_csr.cx = 0)
 
maciej> #define SETCX(x) \
maciej> -  (ieee754_csr.cx |= (x),ieee754_csr.sx |= (x),ieee754_csr.mx & (x))
maciej> +	({ieee754_csr.cx |= (x); ieee754_csr.sx |= (x); ieee754_csr.mx & (x);})
 
maciej> #define TSTX()	\
maciej> (ieee754_csr.cx & ieee754_csr.mx)


-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy

^ permalink raw reply

* Re: [PATCH]: c-r4k.c, new gcc's don't like empty labels
From: Juan Quintela @ 2002-12-18 22:19 UTC (permalink / raw)
  To: Ralf Baechle; +Cc: linux mips mailing list
In-Reply-To: <20021218225715.A32351@linux-mips.org>

>>>>> "ralf" == Ralf Baechle <ralf@linux-mips.org> writes:

ralf> On Wed, Dec 18, 2002 at 02:43:07AM +0100, Juan Quintela wrote:
>> patch is trivial to eliminate warnings from the compiler

ralf> And yet I didn't like it.  The new syntax requirement isn't only ugly code,
ralf> it's harder to read than a replacing the gotos with a simple return ...

I thought that the gotos to end was there for generation of code
reasons.

It is not good in the first place to have labels called out :(

Later, Juan.


-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy

^ permalink raw reply

* Add mising static's to button.c
From: Pavel Machek @ 2002-12-18 22:11 UTC (permalink / raw)
  To: Andrew Grover, ACPI mailing list

Hi!

Should be obvious, please apply,
							Pavel

--- clean/drivers/acpi/button.c	2002-11-29 21:16:33.000000000 +0100
+++ linux-sensors/drivers/acpi/button.c	2002-12-16 23:20:15.000000000 +0100
@@ -68,8 +68,8 @@
 MODULE_LICENSE("GPL");
 
 
-int acpi_button_add (struct acpi_device *device);
-int acpi_button_remove (struct acpi_device *device, int type);
+static int acpi_button_add (struct acpi_device *device);
+static int acpi_button_remove (struct acpi_device *device, int type);
 static int acpi_button_open_fs(struct inode *inode, struct file *file);
 
 static struct acpi_driver acpi_button_driver = {
@@ -234,7 +234,7 @@
 }
 
 
-int
+static int
 acpi_button_add (
 	struct acpi_device	*device)
 {
@@ -384,7 +384,7 @@
 }
 
 
-int
+static int
 acpi_button_remove (struct acpi_device *device, int type)
 {
 	acpi_status		status = 0;

-- 
Worst form of spam? Adding advertisment signatures ala sourceforge.net.
What goes next? Inserting advertisment *into* email?


-------------------------------------------------------
This SF.NET email is sponsored by: Order your Holiday Geek Presents Now!
Green Lasers, Hip Geek T-Shirts, Remote Control Tanks, Caffeinated Soap,
MP3 Players,  XBox Games,  Flying Saucers,  WebCams,  Smart Putty.
T H I N K G E E K . C O M       http://www.thinkgeek.com/sf/

^ permalink raw reply

* Re: 2.4.19, don't "hdparm -I /dev/hde" if hde is on a Asus A7V133  Promise ctrlr, or...
From: Andre Hedrick @ 2002-12-18 22:01 UTC (permalink / raw)
  To: D.A.M. Revok; +Cc: Manish Lachwani, linux-kernel
In-Reply-To: <200212181635.58164.marvin@synapse.net>

On Wed, 18 Dec 2002, D.A.M. Revok wrote:

> 
> Ah,
> "What you are doing is not out of spec, just how
>   you are are doing it is."
> eh??

Like MC Hammer says, "Can't touch this!"

There are times when you can do things and there are times you can not.
Until I get authorization to expose and correct, I can not do anything.
This is one of the prices I paid to get the docs under NDA.


Andre Hedrick
LAD Storage Consulting Group


^ permalink raw reply

* Re: How do I see all my partitions?
From: Chuck Gelm @ 2002-12-18 22:11 UTC (permalink / raw)
  To: Chris; +Cc: linux-newbie
In-Reply-To: <5.1.0.14.0.20021217222210.00b5fdd8@mail.comcast.net>

cat /var/log/messages|grep hd|grep "server kernel"|grep -v sectors

 Works for me.  However, I'm using a Slackware distribution.

HTH, Chuck


Chris wrote:
> 
> Hi, I'm a new Red Hat user and want to mount
> my winxp partition.  How do I display all the
> partitions, Win/Dos/Linux, in one place so I can
> give mount the correct partition name?
> 
> Thank you,
> Chris
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.linux-learn.org/faqs
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

^ permalink raw reply

* [PATCH] (3/5) improved notifier callback mechanism - use lists
From: Stephen Hemminger @ 2002-12-18 22:14 UTC (permalink / raw)
  To: Linus Torvalds, Alan Cox; +Cc: Kernel List

This patch converts the notifier interface from a single linked list to
using the standard kernel doubly-linked list interface.  The parameters
to notifier_chain_register/unregister changed from being
pointer-to-pointer to notifier_block to pointer list_head.

There is no change in functionality of notifiers, it just makes changing
to RCU easier.

diff -Nru a/arch/i386/kernel/profile.c b/arch/i386/kernel/profile.c
--- a/arch/i386/kernel/profile.c	Wed Dec 18 09:36:46 2002
+++ b/arch/i386/kernel/profile.c	Wed Dec 18 09:36:46 2002
@@ -11,7 +11,7 @@
 #include <linux/irq.h>
 #include <asm/hw_irq.h> 
  
-static struct notifier_block * profile_listeners;
+static LIST_HEAD(profile_listeners);
 static rwlock_t profile_lock = RW_LOCK_UNLOCKED;
  
 int register_profile_notifier(struct notifier_block * nb)
diff -Nru a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
--- a/arch/x86_64/kernel/traps.c	Wed Dec 18 09:36:46 2002
+++ b/arch/x86_64/kernel/traps.c	Wed Dec 18 09:36:46 2002
@@ -75,7 +75,7 @@
 
 extern int exception_trace;
 
-struct notifier_block *die_chain;
+LIST_HEAD(die_chain);
 
 static int kstack_depth_to_print = 10;
 
diff -Nru a/include/asm-x86_64/kdebug.h b/include/asm-x86_64/kdebug.h
--- a/include/asm-x86_64/kdebug.h	Wed Dec 18 09:03:09 2002
+++ b/include/asm-x86_64/kdebug.h	Wed Dec 18 09:03:09 2002
@@ -11,7 +11,7 @@
 	long err; 
 }; 
 
-extern struct notifier_block *die_chain;
+extern LIST_HEAD(die_chain);
 
 /* Grossly misnamed. */
 enum die_val { 
diff -Nru a/include/linux/notifier.h b/include/linux/notifier.h
--- a/include/linux/notifier.h	Wed Dec 18 09:03:09 2002
+++ b/include/linux/notifier.h	Wed Dec 18 09:03:09 2002
@@ -9,21 +9,22 @@
  
 #ifndef _LINUX_NOTIFIER_H
 #define _LINUX_NOTIFIER_H
-#include <linux/errno.h>
 
-struct notifier_block
-{
-	int (*notifier_call)(struct notifier_block *self, unsigned long, void
*);
-	struct notifier_block *next;
+#include <linux/list.h>
+
+struct notifier_block {
+	int (*notifier_call)(struct notifier_block *, unsigned long, void *);
 	int priority;
+
+	struct list_head link;
 };
 
 
 #ifdef __KERNEL__
 
-extern int notifier_chain_register(struct notifier_block **list, struct
notifier_block *n);
-extern int notifier_chain_unregister(struct notifier_block **nl, struct
notifier_block *n);
-extern int notifier_call_chain(struct notifier_block **n, unsigned long
val, void *v);
+extern int notifier_chain_register(struct list_head *, struct
notifier_block *);
+extern int notifier_chain_unregister(struct list_head *, struct
notifier_block *);
+extern int notifier_call_chain(struct list_head *, unsigned long, void
*);
 
 extern int register_panic_notifier(struct notifier_block *);
 extern int unregister_panic_notifier(struct notifier_block *);
diff -Nru a/kernel/cpu.c b/kernel/cpu.c
--- a/kernel/cpu.c	Wed Dec 18 09:03:09 2002
+++ b/kernel/cpu.c	Wed Dec 18 09:03:09 2002
@@ -13,7 +13,7 @@
 /* This protects CPUs going up and down... */
 DECLARE_MUTEX(cpucontrol);
 
-static struct notifier_block *cpu_chain = NULL;
+static LIST_HEAD(cpu_chain);
 
 /* Need to know about CPUs going up/down? */
 int register_cpu_notifier(struct notifier_block *nb)
diff -Nru a/kernel/cpufreq.c b/kernel/cpufreq.c
--- a/kernel/cpufreq.c	Wed Dec 18 09:03:09 2002
+++ b/kernel/cpufreq.c	Wed Dec 18 09:03:09 2002
@@ -48,8 +48,8 @@
  * and cpufreq_notifier_sem need to be hold, get cpufreq_driver_sem
  * first.
  */
-static struct notifier_block    *cpufreq_policy_notifier_list;
-static struct notifier_block    *cpufreq_transition_notifier_list;
+static LIST_HEAD(cpufreq_policy_notifier_list);
+static LIST_HEAD(cpufreq_transition_notifier_list);
 static DECLARE_MUTEX            (cpufreq_notifier_sem);
 
 
diff -Nru a/kernel/panic.c b/kernel/panic.c
--- a/kernel/panic.c	Wed Dec 18 09:03:09 2002
+++ b/kernel/panic.c	Wed Dec 18 09:03:09 2002
@@ -14,6 +14,7 @@
 #include <linux/reboot.h>
 #include <linux/notifier.h>
 #include <linux/init.h>
+#include <linux/errno.h>
 #include <linux/sysrq.h>
 #include <linux/interrupt.h>
 
@@ -21,7 +22,7 @@
 
 int panic_timeout;
 
-static struct notifier_block *panic_notifier_list;
+static LIST_HEAD(panic_notifier_list);
 
 int register_panic_notifier(struct notifier_block * nb)
 {
diff -Nru a/kernel/profile.c b/kernel/profile.c
--- a/kernel/profile.c	Wed Dec 18 09:03:09 2002
+++ b/kernel/profile.c	Wed Dec 18 09:03:09 2002
@@ -48,9 +48,9 @@
 #ifdef CONFIG_PROFILING
  
 static DECLARE_RWSEM(profile_rwsem);
-static struct notifier_block * exit_task_notifier;
-static struct notifier_block * exit_mmap_notifier;
-static struct notifier_block * exec_unmap_notifier;
+static LIST_HEAD(exit_task_notifier);
+static LIST_HEAD(exit_mmap_notifier);
+static LIST_HEAD(exec_unmap_notifier);
  
 void profile_exit_task(struct task_struct * task)
 {
diff -Nru a/kernel/sys.c b/kernel/sys.c
--- a/kernel/sys.c	Wed Dec 18 09:03:09 2002
+++ b/kernel/sys.c	Wed Dec 18 09:03:09 2002
@@ -77,8 +77,8 @@
  *	and the like. 
  */
 
-static struct notifier_block *reboot_notifier_list;
-rwlock_t notifier_lock = RW_LOCK_UNLOCKED;
+static LIST_HEAD(reboot_notifier_list);
+static rwlock_t notifier_lock = RW_LOCK_UNLOCKED;
 
 /**
  *	notifier_chain_register	- Add notifier to a notifier chain
@@ -90,17 +90,20 @@
  *	Currently always returns zero.
  */
  
-int notifier_chain_register(struct notifier_block **list, struct
notifier_block *n)
+int notifier_chain_register(struct list_head *list, struct
notifier_block *n)
 {
+	struct list_head *p;
+
+	INIT_LIST_HEAD(&n->link);
 	write_lock(&notifier_lock);
-	while(*list)
-	{
-		if(n->priority > (*list)->priority)
+	list_for_each(p, list) {
+		struct notifier_block *e 
+			= list_entry(p, struct notifier_block, link);
+		if (n->priority > e->priority) 
 			break;
-		list= &((*list)->next);
 	}
-	n->next = *list;
-	*list=n;
+
+	list_add(&n->link, p);
 	write_unlock(&notifier_lock);
 	return 0;
 }
@@ -115,18 +118,17 @@
  *	Returns zero on success, or %-ENOENT on failure.
  */
  
-int notifier_chain_unregister(struct notifier_block **nl, struct
notifier_block *n)
+int notifier_chain_unregister(struct list_head *list, struct
notifier_block *n)
 {
+	struct list_head *cur;
+
 	write_lock(&notifier_lock);
-	while((*nl)!=NULL)
-	{
-		if((*nl)==n)
-		{
-			*nl=n->next;
+	list_for_each(cur, list) {
+		if (n == list_entry(cur, struct notifier_block, link)) {
+			list_del(cur);
 			write_unlock(&notifier_lock);
 			return 0;
 		}
-		nl=&((*nl)->next);
 	}
 	write_unlock(&notifier_lock);
 	return -ENOENT;
@@ -148,20 +150,21 @@
  *	of the last notifier function called.
  */
  
-int notifier_call_chain(struct notifier_block **n, unsigned long val,
void *v)
+int notifier_call_chain(struct list_head *list, unsigned long val, void
*v)
 {
-	int ret=NOTIFY_DONE;
-	struct notifier_block *nb = *n;
+	struct list_head *p;
+	int ret = NOTIFY_DONE;
 
-	while(nb)
-	{
-		ret=nb->notifier_call(nb,val,v);
-		if(ret&NOTIFY_STOP_MASK)
-		{
-			return ret;
-		}
-		nb=nb->next;
+	list_for_each(p, list) {
+		struct notifier_block *nb =
+			list_entry(p, struct notifier_block, link);
+
+		ret = nb->notifier_call(nb,val,v);
+		if (ret & NOTIFY_STOP_MASK) 
+			goto end_loop;
 	}
+
+ end_loop:
 	return ret;
 }
 
@@ -195,6 +198,8 @@
 {
 	return notifier_chain_unregister(&reboot_notifier_list, nb);
 }
+
+
 
 asmlinkage long sys_ni_syscall(void)
 {
diff -Nru a/net/core/dev.c b/net/core/dev.c
--- a/net/core/dev.c	Wed Dec 18 09:03:09 2002
+++ b/net/core/dev.c	Wed Dec 18 09:03:09 2002
@@ -188,7 +188,7 @@
  *	Our notifier list
  */
 
-static struct notifier_block *netdev_chain;
+static LIST_HEAD(netdev_chain);
 
 /*
  *	Device drivers call our routines to queue packets here. We empty the
diff -Nru a/net/ipv4/devinet.c b/net/ipv4/devinet.c
--- a/net/ipv4/devinet.c	Wed Dec 18 09:03:09 2002
+++ b/net/ipv4/devinet.c	Wed Dec 18 09:03:09 2002
@@ -78,7 +78,7 @@
 
 static void rtmsg_ifa(int event, struct in_ifaddr *);
 
-static struct notifier_block *inetaddr_chain;
+static LIST_HEAD(inetaddr_chain);
 static void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr
**ifap,
 			 int destroy);
 #ifdef CONFIG_SYSCTL
diff -Nru a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
--- a/net/ipv6/addrconf.c	Wed Dec 18 09:03:09 2002
+++ b/net/ipv6/addrconf.c	Wed Dec 18 09:03:09 2002
@@ -106,7 +106,7 @@
 static void addrconf_rs_timer(unsigned long data);
 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifa);
 
-static struct notifier_block *inet6addr_chain;
+static LIST_HEAD(inet6addr_chain);
 
 struct ipv6_devconf ipv6_devconf =
 {
diff -Nru a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
--- a/net/netlink/af_netlink.c	Wed Dec 18 09:03:09 2002
+++ b/net/netlink/af_netlink.c	Wed Dec 18 09:03:09 2002
@@ -83,7 +83,7 @@
 static rwlock_t nl_table_lock = RW_LOCK_UNLOCKED;
 static atomic_t nl_table_users = ATOMIC_INIT(0);
 
-static struct notifier_block *netlink_chain;
+static LIST_HEAD(netlink_chain);
 
 static void netlink_sock_destruct(struct sock *sk)
 {




^ permalink raw reply

* [PATCH] (2/5) improved notifier callback mechanism - register_panic_notifier
From: Stephen Hemminger @ 2002-12-18 22:14 UTC (permalink / raw)
  To: Linus Torvalds, Alan Cox; +Cc: Kernel List

This patch cleans up the interface to panic_notifier_list by creating
register and unregister functions. This interface is used mainly on
platforms that I don't have ability to test.

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or
higher.
# This patch includes the following deltas:
#	           ChangeSet	1.981   -> 1.982  
#	include/linux/kernel.h	1.29    -> 1.30   
#	      kernel/ksyms.c	1.170   -> 1.171  
#	arch/um/drivers/mconsole_kern.c	1.4     -> 1.5    
#	drivers/parisc/power.c	1.2     -> 1.3    
#	include/linux/notifier.h	1.4     -> 1.5    
#	arch/alpha/kernel/setup.c	1.23    -> 1.24   
#	arch/mips/sgi/kernel/reset.c	1.2     -> 1.3    
#	arch/parisc/kernel/pdc_chassis.c	1.2     -> 1.3    
#	arch/mips64/sgi-ip22/ip22-reset.c	1.2     -> 1.3    
#	arch/um/kernel/um_arch.c	1.4     -> 1.5    
#	      kernel/panic.c	1.8     -> 1.10   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/12/17	shemminger@osdl.org	1.982
# Add register_panic_notifier
# --------------------------------------------
#
diff -Nru a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
--- a/arch/alpha/kernel/setup.c	Tue Dec 17 16:23:02 2002
+++ b/arch/alpha/kernel/setup.c	Tue Dec 17 16:23:02 2002
@@ -43,12 +43,10 @@
 #endif
 
 #include <linux/notifier.h>
-extern struct notifier_block *panic_notifier_list;
 static int alpha_panic_event(struct notifier_block *, unsigned long,
void *);
 static struct notifier_block alpha_panic_block = {
-	alpha_panic_event,
-        NULL,
-        INT_MAX /* try to do it first */
+	.notifier_call = alpha_panic_event,
+        .priority = INT_MAX, /* try to do it first */
 };
 
 #include <asm/uaccess.h>
@@ -507,7 +505,7 @@
 	boot_cpuid = hard_smp_processor_id();
 
 	/* Register a call for panic conditions. */
-	notifier_chain_register(&panic_notifier_list, &alpha_panic_block);
+	register_panic_notifier(&alpha_panic_block);
 
 #ifdef CONFIG_ALPHA_GENERIC
 	/* Assume that we've booted from SRM if we havn't booted from MILO.
diff -Nru a/arch/mips/sgi/kernel/reset.c b/arch/mips/sgi/kernel/reset.c
--- a/arch/mips/sgi/kernel/reset.c	Tue Dec 17 16:23:02 2002
+++ b/arch/mips/sgi/kernel/reset.c	Tue Dec 17 16:23:03 2002
@@ -217,9 +217,7 @@
 }
 
 static struct notifier_block panic_block = {
-	panic_event,
-	NULL,
-	0
+	.notifier_call = panic_event,
 };
 
 void indy_reboot_setup(void)
@@ -237,5 +235,5 @@
 	request_irq(SGI_PANEL_IRQ, panel_int, 0, "Front Panel", NULL);
 	init_timer(&blink_timer);
 	blink_timer.function = blink_timeout;
-	notifier_chain_register(&panic_notifier_list, &panic_block);
+	register_panic_notifier(&panic_block);
 }
diff -Nru a/arch/mips64/sgi-ip22/ip22-reset.c
b/arch/mips64/sgi-ip22/ip22-reset.c
--- a/arch/mips64/sgi-ip22/ip22-reset.c	Tue Dec 17 16:23:03 2002
+++ b/arch/mips64/sgi-ip22/ip22-reset.c	Tue Dec 17 16:23:03 2002
@@ -218,9 +218,7 @@
 }
 
 static struct notifier_block panic_block = {
-	panic_event,
-	NULL,
-	0
+	.notifier_call = panic_event,
 };
 
 void ip22_reboot_setup(void)
@@ -234,5 +232,5 @@
 	request_irq(9, panel_int, 0, "Front Panel", NULL);
 	init_timer(&blink_timer);
 	blink_timer.function = blink_timeout;
-	notifier_chain_register(&panic_notifier_list, &panic_block);
+	register_panic_notifier(&panic_block);
 }
diff -Nru a/arch/parisc/kernel/pdc_chassis.c
b/arch/parisc/kernel/pdc_chassis.c
--- a/arch/parisc/kernel/pdc_chassis.c	Tue Dec 17 16:23:03 2002
+++ b/arch/parisc/kernel/pdc_chassis.c	Tue Dec 17 16:23:03 2002
@@ -113,7 +113,7 @@
 	DPRINTK(KERN_DEBUG "%s: parisc_pdc_chassis_init()\n", __FILE__);
 
 	/* initialize panic notifier chain */
-	notifier_chain_register(&panic_notifier_list,
&pdc_chassis_panic_block);
+	register_panic_notifier(&pdc_chassis_panic_block);
 
 	/* initialize reboot notifier chain */
 	register_reboot_notifier(&pdc_chassis_reboot_block);
diff -Nru a/arch/um/drivers/mconsole_kern.c
b/arch/um/drivers/mconsole_kern.c
--- a/arch/um/drivers/mconsole_kern.c	Tue Dec 17 16:23:02 2002
+++ b/arch/um/drivers/mconsole_kern.c	Tue Dec 17 16:23:02 2002
@@ -362,14 +362,13 @@
 }
 
 static struct notifier_block panic_exit_notifier = {
-	notifier_call :		notify_panic,
-	next :			NULL,
-	priority :		1
+	.notifier_call =	notify_panic,
+	.priority =		1,
 };
 
 static int add_notifier(void)
 {
-	notifier_chain_register(&panic_notifier_list, &panic_exit_notifier);
+	register_panic_notifier(&panic_exit_notifier);
 	return(0);
 }
 
diff -Nru a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
--- a/arch/um/kernel/um_arch.c	Tue Dec 17 16:23:03 2002
+++ b/arch/um/kernel/um_arch.c	Tue Dec 17 16:23:03 2002
@@ -356,14 +356,12 @@
 }
 
 static struct notifier_block panic_exit_notifier = {
-	notifier_call :		panic_exit,
-	next :			NULL,
-	priority :		0
+	.notifier_call = panic_exit,
 };
 
 void __init setup_arch(char **cmdline_p)
 {
-	notifier_chain_register(&panic_notifier_list, &panic_exit_notifier);
+	register_panic_notifier(&panic_exit_notifier);
 	paging_init();
  	strcpy(command_line, saved_command_line);
  	*cmdline_p = command_line;
diff -Nru a/drivers/parisc/power.c b/drivers/parisc/power.c
--- a/drivers/parisc/power.c	Tue Dec 17 16:23:02 2002
+++ b/drivers/parisc/power.c	Tue Dec 17 16:23:02 2002
@@ -342,7 +342,7 @@
 	}
 
 	/* Register a call for panic conditions. */
-	notifier_chain_register(&panic_notifier_list, &parisc_panic_block);
+	register_panic_notifier(&parisc_panic_block);
 
 	power_create_procfs();
 	tasklet_enable(&power_tasklet);
@@ -356,7 +356,7 @@
 		return;
 
 	tasklet_disable(&power_tasklet);
-	notifier_chain_unregister(&panic_notifier_list, &parisc_panic_block);
+	register_panic_notifier(&parisc_panic_block);
 	power_remove_procfs();
 	power_tasklet.func = NULL;
 	pdc_soft_power_button(0);
diff -Nru a/include/linux/kernel.h b/include/linux/kernel.h
--- a/include/linux/kernel.h	Tue Dec 17 16:23:02 2002
+++ b/include/linux/kernel.h	Tue Dec 17 16:23:02 2002
@@ -54,7 +54,6 @@
 #define might_sleep() do {} while(0)
 #endif
 
-extern struct notifier_block *panic_notifier_list;
 NORET_TYPE void panic(const char * fmt, ...)
 	__attribute__ ((NORET_AND format (printf, 1, 2)));
 asmlinkage NORET_TYPE void do_exit(long error_code)
diff -Nru a/include/linux/notifier.h b/include/linux/notifier.h
--- a/include/linux/notifier.h	Tue Dec 17 16:23:02 2002
+++ b/include/linux/notifier.h	Tue Dec 17 16:23:02 2002
@@ -25,6 +25,9 @@
 extern int notifier_chain_unregister(struct notifier_block **nl, struct
notifier_block *n);
 extern int notifier_call_chain(struct notifier_block **n, unsigned long
val, void *v);
 
+extern int register_panic_notifier(struct notifier_block *);
+extern int unregister_panic_notifier(struct notifier_block *);
+
 #define NOTIFY_DONE		0x0000		/* Don't care */
 #define NOTIFY_OK		0x0001		/* Suits me */
 #define NOTIFY_STOP_MASK	0x8000		/* Don't call further */
diff -Nru a/kernel/ksyms.c b/kernel/ksyms.c
--- a/kernel/ksyms.c	Tue Dec 17 16:23:02 2002
+++ b/kernel/ksyms.c	Tue Dec 17 16:23:02 2002
@@ -55,6 +55,7 @@
 #include <linux/dnotify.h>
 #include <linux/mount.h>
 #include <linux/ptrace.h>
+#include <linux/notifier.h>
 #include <asm/checksum.h>
 
 #if defined(CONFIG_PROC_FS)
@@ -521,6 +522,8 @@
 EXPORT_SYMBOL(seq_lseek);
 EXPORT_SYMBOL(single_open);
 EXPORT_SYMBOL(single_release);
+EXPORT_SYMBOL(register_panic_notifier);
+EXPORT_SYMBOL(unregister_panic_notifier);
 
 /* Program loader interfaces */
 EXPORT_SYMBOL(setup_arg_pages);
diff -Nru a/kernel/panic.c b/kernel/panic.c
--- a/kernel/panic.c	Tue Dec 17 16:23:03 2002
+++ b/kernel/panic.c	Tue Dec 17 16:23:03 2002
@@ -21,7 +21,19 @@
 
 int panic_timeout;
 
-struct notifier_block *panic_notifier_list;
+static struct notifier_block *panic_notifier_list;
+
+int register_panic_notifier(struct notifier_block * nb)
+{
+	return notifier_chain_register(&panic_notifier_list, nb);
+}
+
+
+int unregister_panic_notifier(struct notifier_block * nb)
+{
+	return notifier_chain_unregister(&panic_notifier_list, nb);
+}
+
 
 static int __init panic_setup(char *str)
 {




^ permalink raw reply

* Re: Horrible drive performance under concurrent i/o jobs (dlh problem?)
From: Torben Frey @ 2002-12-18 22:16 UTC (permalink / raw)
  To: Con Kolivas; +Cc: linux kernel mailing list
In-Reply-To: <1040245847.3e00e457a4d66@kolivas.net>

Hi Con,

thanks for your fast reply. Unfortunately - I cannot patch a vanilla 
2.4.20 kernel using patch -p1. The first hunk fails, the other ones are 
found with offsets or even fuzz. Although I applied the first hunk 
manually, compiling fails.

Do I need the other patches, too? Or a special version of the kernel?

Greetings from Munich,
Torben


^ permalink raw reply

* [PATCH] (5/5) improved notifier callback mechanism -- remove old locking
From: Stephen Hemminger @ 2002-12-18 22:14 UTC (permalink / raw)
  To: Linus Torvalds, Alan Cox; +Cc: Kernel List

After the previous patches, the notifier interface now has it's own
locking.  Therefore the existing locking done by the profile interface
is superfluous.

This has been tested by repeated loading/unloading the oprofile driver
while profiling was on.

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or
higher.
# This patch includes the following deltas:
#	           ChangeSet	1.985   -> 1.986  
#	arch/i386/kernel/profile.c	1.2     -> 1.3    
#	    kernel/profile.c	1.4     -> 1.5    
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/12/17	shemminger@osdl.org	1.986
# Locking now handled by notifier
# --------------------------------------------
#
diff -Nru a/arch/i386/kernel/profile.c b/arch/i386/kernel/profile.c
--- a/arch/i386/kernel/profile.c	Tue Dec 17 11:25:47 2002
+++ b/arch/i386/kernel/profile.c	Tue Dec 17 11:25:47 2002
@@ -6,40 +6,25 @@
  */
 
 #include <linux/profile.h>
-#include <linux/spinlock.h>
 #include <linux/notifier.h>
 #include <linux/irq.h>
 #include <asm/hw_irq.h> 
  
 static LIST_HEAD(profile_listeners);
-static rwlock_t profile_lock = RW_LOCK_UNLOCKED;
  
 int register_profile_notifier(struct notifier_block * nb)
 {
-	int err;
-	write_lock_irq(&profile_lock);
-	err = notifier_chain_register(&profile_listeners, nb);
-	write_unlock_irq(&profile_lock);
-	return err;
+	return notifier_chain_register(&profile_listeners, nb);
 }
 
 
 int unregister_profile_notifier(struct notifier_block * nb)
 {
-	int err;
-	write_lock_irq(&profile_lock);
-	err = notifier_chain_unregister(&profile_listeners, nb);
-	write_unlock_irq(&profile_lock);
-	return err;
+	return notifier_chain_unregister(&profile_listeners, nb);
 }
 
 
 void x86_profile_hook(struct pt_regs * regs)
 {
-	/* we would not even need this lock if
-	 * we had a global cli() on register/unregister
-	 */ 
-	read_lock(&profile_lock);
 	notifier_call_chain(&profile_listeners, 0, regs);
-	read_unlock(&profile_lock);
 }
diff -Nru a/kernel/profile.c b/kernel/profile.c
--- a/kernel/profile.c	Tue Dec 17 11:25:47 2002
+++ b/kernel/profile.c	Tue Dec 17 11:25:47 2002
@@ -47,38 +47,29 @@
  
 #ifdef CONFIG_PROFILING
  
-static DECLARE_RWSEM(profile_rwsem);
 static LIST_HEAD(exit_task_notifier);
 static LIST_HEAD(exit_mmap_notifier);
 static LIST_HEAD(exec_unmap_notifier);
  
 void profile_exit_task(struct task_struct * task)
 {
-	down_read(&profile_rwsem);
 	notifier_call_chain(&exit_task_notifier, 0, task);
-	up_read(&profile_rwsem);
 }
  
 void profile_exit_mmap(struct mm_struct * mm)
 {
-	down_read(&profile_rwsem);
 	notifier_call_chain(&exit_mmap_notifier, 0, mm);
-	up_read(&profile_rwsem);
 }
 
 void profile_exec_unmap(struct mm_struct * mm)
 {
-	down_read(&profile_rwsem);
 	notifier_call_chain(&exec_unmap_notifier, 0, mm);
-	up_read(&profile_rwsem);
 }
 
 int profile_event_register(enum profile_type type, struct
notifier_block * n)
 {
 	int err = -EINVAL;
  
-	down_write(&profile_rwsem);
- 
 	switch (type) {
 		case EXIT_TASK:
 			err = notifier_chain_register(&exit_task_notifier, n);
@@ -91,8 +82,6 @@
 			break;
 	}
  
-	up_write(&profile_rwsem);
- 
 	return err;
 }
 
@@ -101,8 +90,6 @@
 {
 	int err = -EINVAL;
  
-	down_write(&profile_rwsem);
- 
 	switch (type) {
 		case EXIT_TASK:
 			err = notifier_chain_unregister(&exit_task_notifier, n);
@@ -115,7 +102,6 @@
 			break;
 	}
 
-	up_write(&profile_rwsem);
 	return err;
 }
 




^ permalink raw reply

* [PATCH] (4/5) improved notifier callback mechanism - read copy update
From: Stephen Hemminger @ 2002-12-18 22:14 UTC (permalink / raw)
  To: Linus Torvalds, Alan Cox; +Cc: Kernel List

The notifier interface was only partially locked. The
notifier_call_chain needs to be called in places where it is impossible
to safely without having deadlocks; for example, NMI watchdog timeout.

This patch uses read-copy-update to manage the list.  One extra bit of
safety is using a reference count on the notifier_blocks to allow for
cases like oprofile which need to sleep in a callback.

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or
higher.
# This patch includes the following deltas:
#	           ChangeSet	1.983   -> 1.984  
#	include/linux/notifier.h	1.7     -> 1.8    
#	        kernel/sys.c	1.39    -> 1.40   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/12/18	shemminger@osdl.org	1.984
# 04-notifier-rcu.patch
# --------------------------------------------
#
diff -Nru a/include/linux/notifier.h b/include/linux/notifier.h
--- a/include/linux/notifier.h	Wed Dec 18 10:00:43 2002
+++ b/include/linux/notifier.h	Wed Dec 18 10:00:43 2002
@@ -11,14 +11,15 @@
 #define _LINUX_NOTIFIER_H
 
 #include <linux/list.h>
+#include <asm/atomic.h>
 
 struct notifier_block {
 	int (*notifier_call)(struct notifier_block *, unsigned long, void *);
-	int priority;
+	int 		priority;
 
+	atomic_t 	inuse;
 	struct list_head link;
-};
-
+} ____cacheline_aligned;
 
 #ifdef __KERNEL__
 
diff -Nru a/kernel/sys.c b/kernel/sys.c
--- a/kernel/sys.c	Wed Dec 18 10:00:43 2002
+++ b/kernel/sys.c	Wed Dec 18 10:00:43 2002
@@ -22,6 +22,7 @@
 #include <linux/security.h>
 #include <linux/dcookies.h>
 #include <linux/suspend.h>
+#include <linux/rcupdate.h>
 
 #include <asm/uaccess.h>
 #include <asm/io.h>
@@ -78,7 +79,7 @@
  */
 
 static LIST_HEAD(reboot_notifier_list);
-static rwlock_t notifier_lock = RW_LOCK_UNLOCKED;
+static spinlock_t notifier_lock = SPIN_LOCK_UNLOCKED;
 
 /**
  *	notifier_chain_register	- Add notifier to a notifier chain
@@ -95,7 +96,9 @@
 	struct list_head *p;
 
 	INIT_LIST_HEAD(&n->link);
-	write_lock(&notifier_lock);
+	atomic_set(&n->inuse, 0);
+
+	spin_lock(&notifier_lock);
 	list_for_each(p, list) {
 		struct notifier_block *e 
 			= list_entry(p, struct notifier_block, link);
@@ -104,7 +107,7 @@
 	}
 
 	list_add(&n->link, p);
-	write_unlock(&notifier_lock);
+	spin_unlock(&notifier_lock);
 	return 0;
 }
 
@@ -122,15 +125,24 @@
 {
 	struct list_head *cur;
 
-	write_lock(&notifier_lock);
+	might_sleep();
+
+	spin_lock(&notifier_lock);
 	list_for_each(cur, list) {
 		if (n == list_entry(cur, struct notifier_block, link)) {
-			list_del(cur);
-			write_unlock(&notifier_lock);
+			list_del_rcu(cur);
+			spin_unlock(&notifier_lock);
+			
+			synchronize_kernel();
+
+			/* notifier may be sleeping */
+			while (atomic_read(&n->inuse) > 0)
+				yield();
+
 			return 0;
 		}
 	}
-	write_unlock(&notifier_lock);
+	spin_unlock(&notifier_lock);
 	return -ENOENT;
 }
 
@@ -148,23 +160,31 @@
  *	the notifier function which halted execution.
  *	Otherwise, the return value is the return value
  *	of the last notifier function called.
+ *
+ *	This might be called from NMI or other context where it
+ *	is impossible to sleep or spin.
  */
  
 int notifier_call_chain(struct list_head *list, unsigned long val, void
*v)
 {
-	struct list_head *p;
+	struct list_head *p, *nxtp;
 	int ret = NOTIFY_DONE;
 
-	list_for_each(p, list) {
+	rcu_read_lock();
+	list_for_each_safe_rcu(p, nxtp, list) {
 		struct notifier_block *nb =
 			list_entry(p, struct notifier_block, link);
 
+		atomic_inc(&nb->inuse);
 		ret = nb->notifier_call(nb,val,v);
+		atomic_dec(&nb->inuse);
+
 		if (ret & NOTIFY_STOP_MASK) 
 			goto end_loop;
 	}
 
  end_loop:
+	rcu_read_unlock();
 	return ret;
 }
 




^ permalink raw reply

* Re: 2.4.19, don't "hdparm -I /dev/hde" if hde is on a Asus A7V133  Promise ctrlr, or...
From: Andre Hedrick @ 2002-12-18 21:58 UTC (permalink / raw)
  To: Alan Cox; +Cc: D.A.M. Revok, Manish Lachwani, Linux Kernel Mailing List
In-Reply-To: <1040251122.26501.0.camel@irongate.swansea.linux.org.uk>

On 18 Dec 2002, Alan Cox wrote:

> On Wed, 2002-12-18 at 21:35, D.A.M. Revok wrote:
> > So.  I /think/ that somehow the Promise controller isn't being 
> > initialized properly by the Linux kernel, UNLESS the mobo's BIOS inits 
> > it first?
> 
> In some situations yes. The BIOS does stuff including fixups we mere
> mortals arent permitted to know about.
> 

That is because I am not permitted to invoke that majic wand yet.

Andre Hedrick
LAD Storage Consulting Group


^ permalink raw reply

* [PATCH] (1/5) improved notifier callback mechanism - C99 initializers
From: Stephen Hemminger @ 2002-12-18 22:14 UTC (permalink / raw)
  To: Linus Torvalds, Alan Cox; +Cc: Kernel List

Here a step in improving the notifier callback to be cleaner and safer.
Every time anyone submits a patch which adds a notifier, there is a
chorus of comments about the lack of locking.  Some developers choose to
build their own interface instead of fixing the underlying base
mechanism, others just wrap the unsafe interface with their own
mutex's.  Instead, this sequence of patches attempts to solve the
underlying problem.

This patch switches all the places that use notifier_block to use C99
style initializers and not initialize structure elements that are really
"private". There is no change in resulting functionality with this
patch, it just makes later changes cleaner.

diff -Nru a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
--- a/drivers/input/serio/i8042.c	Mon Dec 16 11:48:16 2002
+++ b/drivers/input/serio/i8042.c	Mon Dec 16 11:48:16 2002
@@ -785,19 +785,16 @@
  * because otherwise BIOSes will be confused.
  */
 
-static int i8042_notify_sys(struct notifier_block *this, unsigned long
code,
-        		    void *unused)
+static int i8042_notify_sys(struct notifier_block *this, 
+			    unsigned long code, void *unused)
 {
         if (code==SYS_DOWN || code==SYS_HALT) 
         	i8042_controller_cleanup();
         return NOTIFY_DONE;
 }
 
-static struct notifier_block i8042_notifier=
-{
-        i8042_notify_sys,
-        NULL,
-        0
+static struct notifier_block i8042_notifier = {
+	.notifier_call = i8042_notify_sys,
 };
 
 static void __init i8042_init_mux_values(struct i8042_values *values,
struct serio *port, int index)
diff -Nru a/drivers/scsi/aic7xxx/aic7xxx_linux.c
b/drivers/scsi/aic7xxx/aic7xxx_linux.c
--- a/drivers/scsi/aic7xxx/aic7xxx_linux.c	Mon Dec 16 11:48:16 2002
+++ b/drivers/scsi/aic7xxx/aic7xxx_linux.c	Mon Dec 16 11:48:16 2002
@@ -664,7 +664,7 @@
 #include <linux/reboot.h>
 
 static struct notifier_block ahc_linux_notifier = {
-	ahc_linux_halt, NULL, 0
+	.notifier_call = ahc_linux_halt,
 };
 
 static int ahc_linux_halt(struct notifier_block *nb, u_long event, void
*buf)
diff -Nru a/drivers/scsi/ips.c b/drivers/scsi/ips.c
--- a/drivers/scsi/ips.c	Mon Dec 16 11:48:16 2002
+++ b/drivers/scsi/ips.c	Mon Dec 16 11:48:16 2002
@@ -364,7 +364,7 @@
 };
 
 static struct notifier_block ips_notifier = {
-   ips_halt, NULL, 0
+        .notifier_call = ips_halt, 
 };
 
 /*
diff -Nru a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
--- a/drivers/scsi/megaraid.c	Mon Dec 16 11:48:16 2002
+++ b/drivers/scsi/megaraid.c	Mon Dec 16 11:48:16 2002
@@ -747,9 +747,7 @@
 
 static mega_scb *pLastScb = NULL;
 static struct notifier_block mega_notifier = {
-	megaraid_reboot_notify,
-	NULL,
-	0
+	.notifier_call = megaraid_reboot_notify,
 };
 
 /* For controller re-ordering */
diff -Nru a/kernel/sched.c b/kernel/sched.c
--- a/kernel/sched.c	Mon Dec 16 11:48:16 2002
+++ b/kernel/sched.c	Mon Dec 16 11:48:16 2002
@@ -2159,7 +2159,9 @@
 	return NOTIFY_OK;
 }
 
-static struct notifier_block migration_notifier = { &migration_call,
NULL, 0 };
+static struct notifier_block migration_notifier = { 
+	.notifier_call = &migration_call,
+};
 
 __init int migration_init(void)
 {
@@ -2208,7 +2210,6 @@
  
 static struct notifier_block __devinitdata kstat_nb = {
 	.notifier_call  = kstat_cpu_notify,
-	.next           = NULL,
 };
 
 __init static void init_kstat(void) {
diff -Nru a/mm/slab.c b/mm/slab.c
--- a/mm/slab.c	Mon Dec 16 11:48:16 2002
+++ b/mm/slab.c	Mon Dec 16 11:48:16 2002
@@ -577,7 +577,9 @@
 	return NOTIFY_BAD;
 }
 
-static struct notifier_block cpucache_notifier = { &cpuup_callback,
NULL, 0 };
+static struct notifier_block cpucache_notifier = { 
+	.notifier_call = cpuup_callback,
+};
 
 static inline void ** ac_entry(struct array_cache *ac)
 {
diff -Nru a/net/core/dst.c b/net/core/dst.c
--- a/net/core/dst.c	Mon Dec 16 11:48:16 2002
+++ b/net/core/dst.c	Mon Dec 16 11:48:16 2002
@@ -252,9 +252,7 @@
 }
 
 struct notifier_block dst_dev_notifier = {
-	dst_dev_event,
-	NULL,
-	0
+	.notifier_call = dst_dev_event,
 };
 
 void __init dst_init(void)
diff -Nru a/net/core/rtnetlink.c b/net/core/rtnetlink.c
--- a/net/core/rtnetlink.c	Mon Dec 16 11:48:16 2002
+++ b/net/core/rtnetlink.c	Mon Dec 16 11:48:16 2002
@@ -509,9 +509,7 @@
 }
 
 struct notifier_block rtnetlink_dev_notifier = {
-	rtnetlink_event,
-	NULL,
-	0
+	.notifier_call  = rtnetlink_event,
 };
 
 
diff -Nru a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
--- a/net/ipv4/ipmr.c	Mon Dec 16 11:48:16 2002
+++ b/net/ipv4/ipmr.c	Mon Dec 16 11:48:16 2002
@@ -1072,9 +1072,7 @@
 
 
 static struct notifier_block ip_mr_notifier={
-	ipmr_device_event,
-	NULL,
-	0
+	.notifier_call = ipmr_device_event,
 };
 
 /*
diff -Nru a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
--- a/net/ipv6/ipv6_sockglue.c	Mon Dec 16 16:06:25 2002
+++ b/net/ipv6/ipv6_sockglue.c	Mon Dec 16 16:06:25 2002
@@ -66,9 +66,7 @@
  *	addrconf module should be notifyed of a device going up
  */
 static struct notifier_block ipv6_dev_notf = {
-	addrconf_notify,
-	NULL,
-	0
+	.notifier_call = addrconf_notify,
 };
 
 struct ip6_ra_chain *ip6_ra_chain;
diff -Nru a/drivers/md/md.c b/drivers/md/md.c
--- a/drivers/md/md.c	Wed Dec 18 09:03:09 2002
+++ b/drivers/md/md.c	Wed Dec 18 09:03:09 2002
@@ -3072,7 +3072,6 @@
 
 struct notifier_block md_notifier = {
 	.notifier_call	= md_notify_reboot,
-	.next		= NULL,
 	.priority	= INT_MAX, /* before any real devices */
 };
 
diff -Nru a/drivers/net/e100/e100_main.c b/drivers/net/e100/e100_main.c
--- a/drivers/net/e100/e100_main.c	Wed Dec 18 09:03:09 2002
+++ b/drivers/net/e100/e100_main.c	Wed Dec 18 09:03:09 2002
@@ -146,7 +146,6 @@
 static int e100_resume(struct pci_dev *pcid);
 struct notifier_block e100_notifier_reboot = {
         .notifier_call  = e100_notify_reboot,
-        .next           = NULL,
         .priority       = 0
 };
 #endif
@@ -154,7 +153,6 @@
  
 struct notifier_block e100_notifier_netdev = {
 	.notifier_call  = e100_notify_netdev,
-	.next           = NULL,
 	.priority       = 0
 };
 
diff -Nru a/drivers/net/e1000/e1000_main.c
b/drivers/net/e1000/e1000_main.c
--- a/drivers/net/e1000/e1000_main.c	Wed Dec 18 09:03:09 2002
+++ b/drivers/net/e1000/e1000_main.c	Wed Dec 18 09:03:09 2002
@@ -185,13 +185,11 @@
 
 struct notifier_block e1000_notifier_reboot = {
 	.notifier_call	= e1000_notify_reboot,
-	.next		= NULL,
 	.priority	= 0
 };
 
 struct notifier_block e1000_notifier_netdev = {
 	.notifier_call	= e1000_notify_netdev,
-	.next		= NULL,
 	.priority	= 0
 };
 
diff -Nru a/drivers/scsi/sd.c b/drivers/scsi/sd.c
--- a/drivers/scsi/sd.c	Wed Dec 18 09:03:09 2002
+++ b/drivers/scsi/sd.c	Wed Dec 18 09:03:09 2002
@@ -97,7 +97,9 @@
 static int sd_synchronize_cache(struct scsi_disk *, int);
 static int sd_notifier(struct notifier_block *, unsigned long, void *);
 
-static struct notifier_block sd_notifier_block = {sd_notifier, NULL,
0}; 
+static struct notifier_block sd_notifier_block = {
+	.notifier_call = sd_notifier,
+};	
 
 static struct Scsi_Device_Template sd_template = {
 	.module		= THIS_MODULE,
diff -Nru a/kernel/softirq.c b/kernel/softirq.c
--- a/kernel/softirq.c	Wed Dec 18 09:03:09 2002
+++ b/kernel/softirq.c	Wed Dec 18 09:03:09 2002
@@ -284,7 +284,6 @@
 
 static struct notifier_block tasklet_nb = {
 	.notifier_call	= tasklet_cpu_notify,
-	.next		= NULL,
 };
 
 void __init softirq_init()
diff -Nru a/mm/page-writeback.c b/mm/page-writeback.c
--- a/mm/page-writeback.c	Wed Dec 18 09:03:09 2002
+++ b/mm/page-writeback.c	Wed Dec 18 09:03:09 2002
@@ -356,7 +356,6 @@
 
 static struct notifier_block ratelimit_nb = {
 	.notifier_call	= ratelimit_handler,
-	.next		= NULL,
 };
 
 /*




^ permalink raw reply

* Re: dosemu-1.1.4
From: Bart Oldeman @ 2002-12-18 22:03 UTC (permalink / raw)
  To: linux-msdos; +Cc: dosemu-devel
In-Reply-To: <Pine.SOL.4.44.0212181633580.8321-100000@blakey.math.ohio-state.edu>

> dosemu-1.1.4 is now available; see www.dosemu.org/bleeding
>
> This features
> * much improved DPMI support
> * much improved sound (SBPro, midi) support
> * new: joystick emulation
> * many PIC related cleanups
> * misc fixes to IPX and network code
> * misc fixes to the MFS ("lredir'ed file system")
> * make install works again, configuration is a little simplified
> * the new keyboard code is now enabled by default
> and other bug fixes that are too important too mention...

.... and of course I should give credit where credit is due:
A big "thank you" goes to Stas Sergeev for many of the above fixes and
improvements, and to Clarence Dang for the joystick support, and all
other contributors, who are too important to mention here :-)

Bart


^ permalink raw reply

* Re: Freezing.. (was Re: Intel P6 vs P7 system call performance)
From: Larry McVoy @ 2002-12-18 22:08 UTC (permalink / raw)
  To: John Bradford
  Cc: Larry McVoy, alan, torvalds, davej, vonbrand, linux-kernel, akpm
In-Reply-To: <200212182039.gBIKdCqL000183@darkstar.example.net>

> > And exactly how is your statement different than
> > 
> >     "we have a system for seeing what bugs appear to be -kernel-list"
> > ?
> 
> This forthcoming BK-related flamewar falls in to category 1, I.E. is
> not a 2.6 feature :-)

I don't understand why BK is part of the conversation.  It has nothing to
do with it.  If every time I post to this list the assumption is that it's
"time to beat larry up about BK" then it's time for me to get off the list.

I can understand it when we're discussing BK; other than that, it's pretty
friggin lame.  If that's what was behind your posts, Alan, there is an
easy procmail fix for that.
-- 
---
Larry McVoy            	 lm at bitmover.com           http://www.bitmover.com/lm 

^ permalink raw reply

* Re: 2.5.51 ide module problem
From: Andre Hedrick @ 2002-12-18 22:06 UTC (permalink / raw)
  To: Alan Cox; +Cc: Jeff Chua, Adam J. Richter, axboe, Linux Kernel Mailing List
In-Reply-To: <1040251422.26521.6.camel@irongate.swansea.linux.org.uk>


Jeff,

Everybody cried screamed an whinned about making the chipsets modular.
Now that we are going do that path, you have no choice but to wait.
Use 2.4.20 and be happy.  Or have FedEX write the check for it to be
worked on fulltime.  I do not care which, but don't bitch about progress.


On 18 Dec 2002, Alan Cox wrote:

> On Wed, 2002-12-18 at 19:50, Jeff Chua wrote:
> > 
> > On 18 Dec 2002, Alan Cox wrote:
> > 
> > > I'll get back to 2.5 IDE things next year. For the moment I'm only
> > > concerned in getting the modular stuff sorted out completely in 2.4.
> > > Hopefully that will be mostly valid for 2.5 as well.
> > 
> > I can't even boot 2.4.21-pre1 with IDE as modules. Works fine under 2.4.20
> > 
> > Looks like the IDE patch for 2.4.21-pre1 broke up the modules very similar
> > to 2.5.51
> 
> Yes it did, and I plan to fix it there first
> 

Andre Hedrick
LAD Storage Consulting Group


^ permalink raw reply

* Re: Problems with OnStream USB30 Tape drive on the USB ports on a FIC VA-503+ - VIA MVP3 Chipset
From: Kurt Garloff @ 2002-12-18 22:07 UTC (permalink / raw)
  To: Linux Kernel Mailing List
In-Reply-To: <OE36ErsoLZdagtbggcc0000e004@hotmail.com>

[-- Attachment #1: Type: text/plain, Size: 2835 bytes --]

Hi,

to me this looks like a general USB or a specific usb-storage (FreeCom)
problem. Please send details of your USB setup (lsusb) to the usb-storage
developers. See 
http://www2.one-eyed-alien.net/~mdharm/linux-usb/

On Sun, Dec 15, 2002 at 08:32:19AM -0500, Linux Kernel Developer wrote:
[...]
> CPU: AMD-K6(tm) 3D processor stepping 0c
[...]
> ACPI: Core Subsystem version [20011018]
> ACPI: Subsystem enabled
[...]
> VP_IDE: VIA vt82c586b (rev 41) IDE UDMA33 controller on pci00:07.1
[...]
> usb.c: registered new driver usbdevfs
> usb.c: registered new driver hub
> usb-uhci.c: $Revision: 1.275 $ time 17:41:15 Dec 11 2002
> usb-uhci.c: High bandwidth mode enabled
> PCI: Assigned IRQ 11 for device 00:07.2
> usb-uhci.c: USB UHCI at I/O 0xb000, IRQ 11
> usb-uhci.c: Detected 2 ports
> usb.c: new USB bus registered, assigned bus number 1
> hub.c: USB hub found
> hub.c: 2 ports detected
> usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
> hub.c: new USB device 00:07.2-2, assigned address 2
> usb.c: USB device 2 (vend/prod 0x7ab/0xfc01) is not claimed by any active
> driver.
> SCSI subsystem driver Revision: 1.00
> Initializing USB Mass Storage driver...
> usb.c: registered new driver usb-storage
> scsi0 : SCSI emulation for USB Mass Storage devices
>   Vendor: OnStream  Model: USB30             Rev: 1.09
>   Type:   Sequential-Access                  ANSI SCSI revision: 02
> WARNING: USB Mass Storage data integrity not assured
> USB Mass Storage device found at 2
> USB Mass Storage support registered.
> osst :I: Tape driver with OnStream support version 0.9.10
> osst :I: $Id: osst.c,v 1.65 2001/11/11 20:38:56 riede Exp $
> osst :I: Attached OnStream USB30 tape at scsi0, channel 0, id 0, lun 0 as
> osst0
> usb-uhci.c: interrupt, status 30, frame# 1939
> usb-uhci.c: Host controller halted, trying to restart.
> usb-uhci.c: interrupt, status 2, frame# 1927
> freecom reset called
> hub.c: already running port 2 disabled by hub (EMI?), re-enabling...
> usb.c: USB disconnect on device 00:07.2-2 address 2
> osst0:W: Warning 70000 (sugg. bt 0x0, driver bt 0x0, host bt 0x7).
> osst0:I: This warning may be caused by your scsi controller,
> osst0:I: it has been reported with some Buslogic cards.
> osst0:W: Command with sense data: Info fld=0xa00 (nonstd), Current
> osst:ce:00: sns = 70  2
> Raw sense data:0x70 0x00 0x02 0x00 0x00 0x0a 0x00 0x00
> osst0:W: Command with sense data: Info fld=0xa00 (nonstd), Current
> osst:ce:00: sns = 70  2
> Raw sense data:0x70 0x00 0x02 0x00 0x00 0x0a 0x00 0x00
[...]

Regards,
-- 
Kurt Garloff  <garloff@suse.de>                          Eindhoven, NL
GPG key: See mail header, key servers                        SuSE Labs
SuSE Linux AG, Nuernberg, DE                            SCSI, Security

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply

* Re: [BUG] 2.5.47 - Assertion failed in fs/jbd/journal.c:415
From: Andrew Morton @ 2002-12-18 22:05 UTC (permalink / raw)
  To: Robert Macaulay; +Cc: linux-kernel
In-Reply-To: <Pine.LNX.4.44.0212181453001.16565-100000@ping.us.dell.com>

Robert Macaulay wrote:
> 
> On Wed, 18 Dec 2002, Andrew Morton wrote:
> > I can't immediately see what would cause this.  There is code in
> > __journal_file_buffer which could have triggered this, but we should
> > have exclusion from that via both lock_kernel() and lock_journal().
> >
> > I'll see if Stephen can spot it.   I shall assume you were using
> > the data-ordered journalling mode.
> >
> Correct, I also had them mounted with noatime as well if that matters.

Seems that I failed to propagate one of Stephen's 2.4 fixes forwards.
It could well explain this failure.  I shall send you the diff after
testing.

^ permalink raw reply

* Re: 2.4.19, don't "hdparm -I /dev/hde" if hde is on a Asus A7V133  Promise ctrlr, or...
From: D.A.M. Revok @ 2002-12-18 22:03 UTC (permalink / raw)
  To: Alan Cox; +Cc: linux-kernel, support
In-Reply-To: <1040251122.26501.0.camel@irongate.swansea.linux.org.uk>

Then I'm not buying Promise from now on.  Period.

Being non-able to both 
boot-from-SCSI-CDR, and
use smartctl
is non-acceptable, and if their NDAs rig that then they are a threat 
against /everything/ I base on my systems.

Promise, your business-model damages your customer-relationship's 
survival, are you listening??


On Wed 18 December, 2002 17:38, you wrote:
>On Wed, 2002-12-18 at 21:35, D.A.M. Revok wrote:
>> So.  I /think/ that somehow the Promise controller isn't being
>> initialized properly by the Linux kernel, UNLESS the mobo's BIOS
>> inits it first?
>
>In some situations yes. The BIOS does stuff including fixups we mere
>mortals arent permitted to know about.

-- 
http://www.drawright.com/
 - "The New Drawing on the Right Side of the Brain" ( Betty Edwards, 
check "Theory", "Gallery", and "Exercises" )
http://www.ldonline.org/ld_indepth/iep/seven_habits.html
 - "The 7 Habits of Highly Effective People" ( this site is same 
principles as Covey's book )
http://www.eiconsortium.org/research/ei_theory_performance.htm
 - "Working With Emotional Intelligence" ( Goleman: this link is 
/revised/ theory, "Working. . . " is practical )
http://www.leadershipnow.com/leadershop/1978-5.html
 - Corps Business: The 30 /Management Principles/ of the U.S. Marines ( 
David Freedman )

^ permalink raw reply

* dell i8100 touchstick, 2.5 input -- further info
From: James H. Cloos Jr. @ 2002-12-18 21:58 UTC (permalink / raw)
  To: linux-kernel, linux-fbdev-devel

I've been researching the touchstick breakage in 2.5 on the i8100.

The board appears to use a SMC lpc47n252 superIO chip for keyboard and
ps/2 support.  Details on the chip are at:

http://www.smsc.com/main/datasheets/47n252.pdf
http://www.smsc.com/main/datasheets/47n252add.pdf

It has four ps/2 ports, matrix kb support and an i8051 compatible
µcore.  The i8051 code, then, is responsible for muxing the four ps/2
ports to the host's 0x60/0x64 ioports.

Dell's bios upgrade tool flashes the 47n252.  

I added some printk()s to i8042.c and confirmed that (unless something
else is accessing the kbc during the mux activation test) the synaptics,
et al mux protocol is not supported.  

Something the 2.5 input system is doing is resetting the kbc to a
state where it no longer muxes its ps2 ports.

Obviously, a dump of the i8051 or bios code would provide all the answers.

Does anyone have any ideas on where to go from here?

Having to use the touchpad is bloody irritating. :(

-JimC

^ permalink raw reply


This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.