lkml.org 
[lkml]   [1997]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: reserve= not working, drivers fail to do check_region
Date
Kohtala Marko (Marko.Kohtala@ntc.nokia.com) wrote:

: Many drivers do I/O without check_region if user gives the address or
: the card is in PCI devices. I do not think they should, since they'll
: fail at request_region. Most net drivers based on the skeleton are
: like this.

I think these drivers are using check_region the "correct" way. One
of the reasons for using "reserve=" is to prevent arbitrary drivers
from probing at a particular address, but then later telling a
specific driver to use that address. The later request_region() call
will "fail", but request_region() doesn't return an indication of
success or failure anyway.

Think of it this way: check_region() says "is it ok for any random
driver to probe this range of addresses?". And request_region() says
"someone cares about this range of addresses, so don't go probing here
unless you know what you're doing".

So, a driver should use check_region() if it is probing blindly, to
make sure it doesn't step on any other devices. But if a driver is
explicitly told that there is a device in a certain place, then it
should not use check_region -- it should go ahead and assume that
whoever told it to look there knows what they're doing.

There are two sorts of things that should be fixed here: drivers that
call check_region() when passed a specific address should be fixed to
not do that, and drivers that don't call check_region before automatic
probes should be fixed to check first.

-- Dave Hinds
dhinds@hyper.stanford.edu

\
 
 \ /
  Last update: 2005-03-22 13:38    [W:0.047 / U:1.344 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site