From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grant Grundler Date: Mon, 08 Mar 2010 22:49:36 +0000 Subject: Re: How does Linux handle PCI-E Surprise unplug? Message-Id: <20100308224936.GC14858@lackof.org> List-Id: References: <8506939B503B404A84BBB12293FC45F606B883BA@emailbng3.jnpr.net> In-Reply-To: <8506939B503B404A84BBB12293FC45F606B883BA@emailbng3.jnpr.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org On Mon, Mar 08, 2010 at 12:41:33PM +0530, Rajat Jain wrote: ... > Does that mean accessing PCI memory mapped registers for a non-existent > device has effects that are localized ONLY to the driver of that device? What Kenji said. > In other words, kernel does not notice or does not even become AWARE > that a driver is trying to access non-existent memory mapped registers? > > So trying to access a HW that does not exist is totally legal in that > sense? Yes and no. Depends on who you ask. Old intel platforms tolerated this just fine. Many other !intel platforms did not. > Is HW NOT supposed to generate an error in this case - as far as > I had read, any access to non existent physical addresses should result > in a bus error ... no? Correct. The access will result in a "Master Abort" (timeout when device fails to respond.) This is when the platform dependent behaviour comes into play. "Hard Fail" systems will end up in a system error handler (HPMC, MCE, or equivalent) and "Soft Fail" systems (like older Intel) will have the chipset return ~0 (and some ancient PCI chipsets had BIOS return 0 instead). hth, grant