https://github.com/torvalds/linux
Revision 22747d6b41f31c71abc2b351bc9f6bfa6bae5d5e authored by Francois Romieu on 15 February 2007, 22:37:50 UTC, committed by Jeff Garzik on 20 February 2007, 16:18:13 UTC
Mantra: don't use flush_scheduled_work with RTNL held.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
1 parent 83cbb4d
Raw File
Tip revision: 22747d6b41f31c71abc2b351bc9f6bfa6bae5d5e authored by Francois Romieu on 15 February 2007, 22:37:50 UTC
s2io: RTNL and flush_scheduled_work deadlock
Tip revision: 22747d6
resources.h
/* net/atm/resources.h - ATM-related resources */

/* Written 1995-1998 by Werner Almesberger, EPFL LRC/ICA */


#ifndef NET_ATM_RESOURCES_H
#define NET_ATM_RESOURCES_H

#include <linux/atmdev.h>
#include <linux/mutex.h>


extern struct list_head atm_devs;
extern struct mutex atm_dev_mutex;

int atm_dev_ioctl(unsigned int cmd, void __user *arg);


#ifdef CONFIG_PROC_FS

#include <linux/proc_fs.h>

void *atm_dev_seq_start(struct seq_file *seq, loff_t *pos);
void atm_dev_seq_stop(struct seq_file *seq, void *v);
void *atm_dev_seq_next(struct seq_file *seq, void *v, loff_t *pos);


int atm_proc_dev_register(struct atm_dev *dev);
void atm_proc_dev_deregister(struct atm_dev *dev);

#else

static inline int atm_proc_dev_register(struct atm_dev *dev)
{
	return 0;
}

static inline void atm_proc_dev_deregister(struct atm_dev *dev)
{
	/* nothing */
}

#endif /* CONFIG_PROC_FS */

int atm_register_sysfs(struct atm_dev *adev);
void atm_unregister_sysfs(struct atm_dev *adev);
#endif
back to top