lkml.org 
[lkml]   [2005]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Patch of a new driver for kernel 2.4.x that need review
    From
    Date
    > > +       if (check_region(TLCLK_BASE, 8)) {
    > > + printk(KERN_ERR
    > > + "telclock: I/O region already used by another
    > > driver!\n");
    > > + return -EBUSY;
    > > + } else {
    > > + request_region(TLCLK_BASE, 8, "telclock");
    >
    > request_region can fail too so you'd better handle that.

    check_region() is essentially historical. It used to be that
    check_region could fail and request_region did not. Once modules arrived
    it becomes possible for drivers to race each other for resources so
    request_region now atomically (with respect to itself) checks and if
    available allocates a region.

    check_region() shouldn't be used except for special cases where you
    really want to see a space is free without requesting it. Even then if
    you need to do any operation on the space while it is free you need to
    request/act/release the region nto check_region for it.

    Alan

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" 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.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-06-24 00:03    [W:2.352 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site