Messages in this thread | | | Subject | Re: Patch of a new driver for kernel 2.4.x that need review | From | Alan Cox <> | Date | Thu, 23 Jun 2005 22:42:12 +0100 |
| |
> > + 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/
| |