> i dont get your last point. Firstly, we do an "outb $0x80" not an inb. outb not inb sorry yesIt does. The last mmio write cycle to the bridge gets pushed out before the 0x80 cycle goes to the PCI bridge, times out and goes to the LPC bus. I still don't believe any of our _p users in PCI space are actually real - but someone needs to look at the scsi ones. We issue inb port We issue outb 0x80 The CPU core stalls and the LPC bus stalls On the other CPU we issue another access to the LPC bus because our locking is wrong. With the 0x80 outb use this stalls so the delay is applied unless the two inb's occur perfectly in time. With a udelay() the udelay can be split and we get a second access which breaks the needed device delay. We end up relying on the bus locking non splitting properties of the 0x80 port access to paper over bugs - see the watchdog fix example I sent you about a week ago. That btw is another argument for removing 0x80 usage as much as possible - its bad for real time. None - but we don't care. The problems with 0x80 and the wacko HP systems occur once ACPI is enabled so we are fine using 0x80. I don't myself know why the _p versions ended up being used. A rummage through archives found me nothing useful on this but notes that outb not outw is required for some devices. For that matter does anyone actually have video cards old enough for us to care actually still in use with Linux today ? Alan --
| Eric Sandeen | Re: [RFC] Heads up on sys_fallocate() |
| FUJITA Tomonori | Re: Integration of SCST in the mainstream Linux kernel |
| Anton Salikhmetov | [PATCH -v8 3/4] Enable the MS_ASYNC functionality in sys_msync() |
| Jeff Garzik | Re: [Bug #11210] libata badness |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Corey Minyard | [PATCH 3/3] Convert the UDP hash lock to RCU |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Herbert Xu | Re: xfrm_state locking regression... |
