- /* until the number of modules does not change */
- size_t nmod = 0; /* number of modules */
- size_t pnmod = -1; /* previous number of modules */
-
- while (nmod != pnmod) {
- if (syscall(__NR_delete_module, NULL, flags) != 0) {
- if (errno==EFAULT)
- return(ret);
- bb_perror_msg_and_die("rmmod");
- }
- pnmod = nmod;
- // the 1 here is QM_MODULES.
- if (ENABLE_FEATURE_QUERY_MODULE_INTERFACE && query_module(NULL,
- 1, bb_common_bufsiz1, sizeof(bb_common_bufsiz1),
- &nmod))
- {
- bb_perror_msg_and_die("QM_MODULES");
- }
- }
+ err = bb_delete_module(NULL, flags);
+ if (err && err != EFAULT)
+ bb_perror_msg_and_die("rmmod");