The idr_for_each() function is now part of the LinuxKPI. Use the

LinuxKPI's idr_for_each() function instead of the local one to avoid
compilation issues.

Discussed with:	np @
MFC after:	1 week
This commit is contained in:
Hans Petter Selasky 2016-05-11 17:17:48 +00:00
parent 9a36a337ff
commit 30de20448d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=299468

View File

@ -1004,43 +1004,6 @@ gen_pool_destroy(struct gen_pool *gp)
#define L1_CACHE_BYTES 32
#endif
static inline
int idr_for_each(struct idr *idp,
int (*fn)(int id, void *p, void *data), void *data)
{
int n, id, max, error = 0;
struct idr_layer *p;
struct idr_layer *pa[MAX_LEVEL];
struct idr_layer **paa = &pa[0];
n = idp->layers * IDR_BITS;
p = idp->top;
max = 1 << n;
id = 0;
while (id < max) {
while (n > 0 && p) {
n -= IDR_BITS;
*paa++ = p;
p = p->ary[(id >> n) & IDR_MASK];
}
if (p) {
error = fn(id, (void *)p, data);
if (error)
break;
}
id += 1 << n;
while (n < fls(id)) {
n += IDR_BITS;
p = *--paa;
}
}
return error;
}
void c4iw_cm_init_cpl(struct adapter *);
void c4iw_cm_term_cpl(struct adapter *);