Lines Matching +full:level +full:- +full:low

2 Devres - Managed Device Resource
20 --------
28 As with many other device drivers, libata low level drivers have
29 sufficient bugs in ->remove and ->probe failure path. Well, yes,
30 that's probably because libata low level driver developers are lazy
31 bunch, but aren't all low level driver developers? After spending a
35 For one reason or another, low level drivers don't receive as much
41 So, many low level drivers end up leaking resources on driver detach
42 and having half broken failure path implementation in ->probe() which
48 ---------
75 dma_free_coherent(dev, this->size, this->vaddr, this->dma_handle);
91 dr->vaddr = vaddr;
100 freed whether initialization fails half-way or the device gets
111 return -ENOMEM;
113 d->ring = dmam_alloc_coherent(...);
114 if (!d->ring)
115 return -ENOMEM;
118 return -EINVAL;
132 As shown above, low level drivers can be simplified a lot by using
133 devres. Complexity is shifted from less maintained low level drivers
140 freeing of these resources *only* - all other checks needed are still
146 ---------------
154 return -ENOMEM;
190 return -ENOMEM;
205 ----------
208 when it is released or destroyed (removed and freed) - no reference
212 has support for single-instance devres types (atomic
213 lookup-and-add-if-not-found). Other than that, synchronizing
215 responsibility. This is usually non-issue because bus ops and
218 For an example of single-instance devres type, read pcim_iomap_table()
226 -----------
243 -----------------------------
384 PER-CPU MEM
399 pcim_set_mwi() : enable Memory-Write-Invalidate PCI transaction