2569 if (mod->taints & (1 << TAINT_PROPRIETARY_MODULE))
2570 buf[bx++] = 'P';
2571 if (mod->taints & (1 << TAINT_FORCED_MODULE))
2572 buf[bx++] = 'F';
2573 if (mod->taints & (1 << TAINT_CRAP))
2574 buf[bx++] = 'C';
2575
2576
2577
2578
2579
2580
2581
2582 if (mod->state == MODULE_STATE_GOING)
2583 buf[bx++] = '-';
2584
2585 if (mod->state == MODULE_STATE_COMING)
2586 buf[bx++] = '+';
2587 buf[bx++] = ')';
2588 }
2589 buf[bx] = '\0';
2590
2591 return buf;
2592}
2593
2594#ifdef CONFIG_PROC_FS
2595
2596static void *m_start(struct seq_file *m, loff_t *pos)
2597{
2598 mutex_lock(&module_mutex);
2599 return seq_list_start(&modules, *pos);
2600}
2601
2602static void *m_next(struct seq_file *m, void *p, loff_t *pos)
2603{
2604 return seq_list_next(p, &modules, pos);
2605}
2606
2607static void m_stop(struct seq_file *m, void *p)
2608{
2609 mutex_unlock(&module_mutex);