aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Blunck <jblunck@suse.de>2008-02-14 22:34:28 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-15 00:13:32 -0500
commit0d63e4f9ea61df1d727bd52a174aba732e6e1853 (patch)
tree70bde9b57a6081fed6ac22acbfc3298d79f94362
parent000cb48ee18165776b5a2beb72ed18f66bc61878 (diff)
Dont touch fs_struct in drivers
The sound drivers and the pnpbios core test for current->root != NULL. This test seems to be unnecessary since we always have rootfs mounted before initializing the drivers. Signed-off-by: Jan Blunck <jblunck@suse.de> Acked-by: Christoph Hellwig <hch@lst.de> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: Jaroslav Kysela <perex@suse.cz> Acked-by: Takashi Iwai <tiwai@suse.de> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/pnp/pnpbios/core.c2
-rw-r--r--sound/core/seq/seq_clientmgr.c4
-rw-r--r--sound/core/seq/seq_device.c3
-rw-r--r--sound/core/sound.c4
-rw-r--r--sound/core/timer.c2
-rw-r--r--sound/ppc/daca.c5
-rw-r--r--sound/ppc/tumbler.c5
7 files changed, 6 insertions, 19 deletions
diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
index f7e67197a568..a8a51500e1e9 100644
--- a/drivers/pnp/pnpbios/core.c
+++ b/drivers/pnp/pnpbios/core.c
@@ -105,8 +105,6 @@ static int pnp_dock_event(int dock, struct pnp_docking_station_info *info)
105 char *argv[3], **envp, *buf, *scratch; 105 char *argv[3], **envp, *buf, *scratch;
106 int i = 0, value; 106 int i = 0, value;
107 107
108 if (!current->fs->root)
109 return -EAGAIN;
110 if (!(envp = kcalloc(20, sizeof(char *), GFP_KERNEL))) 108 if (!(envp = kcalloc(20, sizeof(char *), GFP_KERNEL)))
111 return -ENOMEM; 109 return -ENOMEM;
112 if (!(buf = kzalloc(256, GFP_KERNEL))) { 110 if (!(buf = kzalloc(256, GFP_KERNEL))) {
diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index f97c1ba43a28..47cfa5186e34 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -149,13 +149,13 @@ struct snd_seq_client *snd_seq_client_use_ptr(int clientid)
149 } 149 }
150 spin_unlock_irqrestore(&clients_lock, flags); 150 spin_unlock_irqrestore(&clients_lock, flags);
151#ifdef CONFIG_KMOD 151#ifdef CONFIG_KMOD
152 if (!in_interrupt() && current->fs->root) { 152 if (!in_interrupt()) {
153 static char client_requested[SNDRV_SEQ_GLOBAL_CLIENTS]; 153 static char client_requested[SNDRV_SEQ_GLOBAL_CLIENTS];
154 static char card_requested[SNDRV_CARDS]; 154 static char card_requested[SNDRV_CARDS];
155 if (clientid < SNDRV_SEQ_GLOBAL_CLIENTS) { 155 if (clientid < SNDRV_SEQ_GLOBAL_CLIENTS) {
156 int idx; 156 int idx;
157 157
158 if (! client_requested[clientid] && current->fs->root) { 158 if (!client_requested[clientid]) {
159 client_requested[clientid] = 1; 159 client_requested[clientid] = 1;
160 for (idx = 0; idx < 15; idx++) { 160 for (idx = 0; idx < 15; idx++) {
161 if (seq_client_load[idx] < 0) 161 if (seq_client_load[idx] < 0)
diff --git a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
index 155dc7da4722..2f00ad28a2b7 100644
--- a/sound/core/seq/seq_device.c
+++ b/sound/core/seq/seq_device.c
@@ -149,9 +149,6 @@ void snd_seq_device_load_drivers(void)
149 if (snd_seq_in_init) 149 if (snd_seq_in_init)
150 return; 150 return;
151 151
152 if (! current->fs->root)
153 return;
154
155 mutex_lock(&ops_mutex); 152 mutex_lock(&ops_mutex);
156 list_for_each_entry(ops, &opslist, list) { 153 list_for_each_entry(ops, &opslist, list) {
157 if (! (ops->driver & DRIVER_LOADED) && 154 if (! (ops->driver & DRIVER_LOADED) &&
diff --git a/sound/core/sound.c b/sound/core/sound.c
index 00cca4d6e562..812f91b3de5b 100644
--- a/sound/core/sound.c
+++ b/sound/core/sound.c
@@ -71,8 +71,6 @@ static DEFINE_MUTEX(sound_mutex);
71 */ 71 */
72void snd_request_card(int card) 72void snd_request_card(int card)
73{ 73{
74 if (! current->fs->root)
75 return;
76 if (snd_card_locked(card)) 74 if (snd_card_locked(card))
77 return; 75 return;
78 if (card < 0 || card >= cards_limit) 76 if (card < 0 || card >= cards_limit)
@@ -86,8 +84,6 @@ static void snd_request_other(int minor)
86{ 84{
87 char *str; 85 char *str;
88 86
89 if (! current->fs->root)
90 return;
91 switch (minor) { 87 switch (minor) {
92 case SNDRV_MINOR_SEQUENCER: str = "snd-seq"; break; 88 case SNDRV_MINOR_SEQUENCER: str = "snd-seq"; break;
93 case SNDRV_MINOR_TIMER: str = "snd-timer"; break; 89 case SNDRV_MINOR_TIMER: str = "snd-timer"; break;
diff --git a/sound/core/timer.c b/sound/core/timer.c
index aece465934b8..9d8184a2c2d0 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -150,8 +150,6 @@ static struct snd_timer *snd_timer_find(struct snd_timer_id *tid)
150 150
151static void snd_timer_request(struct snd_timer_id *tid) 151static void snd_timer_request(struct snd_timer_id *tid)
152{ 152{
153 if (! current->fs->root)
154 return;
155 switch (tid->dev_class) { 153 switch (tid->dev_class) {
156 case SNDRV_TIMER_CLASS_GLOBAL: 154 case SNDRV_TIMER_CLASS_GLOBAL:
157 if (tid->device < timer_limit) 155 if (tid->device < timer_limit)
diff --git a/sound/ppc/daca.c b/sound/ppc/daca.c
index 8432c16cd6ff..ca9452901a50 100644
--- a/sound/ppc/daca.c
+++ b/sound/ppc/daca.c
@@ -250,9 +250,8 @@ int __init snd_pmac_daca_init(struct snd_pmac *chip)
250 struct pmac_daca *mix; 250 struct pmac_daca *mix;
251 251
252#ifdef CONFIG_KMOD 252#ifdef CONFIG_KMOD
253 if (current->fs->root) 253 request_module("i2c-powermac");
254 request_module("i2c-powermac"); 254#endif /* CONFIG_KMOD */
255#endif /* CONFIG_KMOD */
256 255
257 mix = kzalloc(sizeof(*mix), GFP_KERNEL); 256 mix = kzalloc(sizeof(*mix), GFP_KERNEL);
258 if (! mix) 257 if (! mix)
diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
index 71a7a9765429..3f8d7164cef9 100644
--- a/sound/ppc/tumbler.c
+++ b/sound/ppc/tumbler.c
@@ -1351,9 +1351,8 @@ int __init snd_pmac_tumbler_init(struct snd_pmac *chip)
1351 char *chipname; 1351 char *chipname;
1352 1352
1353#ifdef CONFIG_KMOD 1353#ifdef CONFIG_KMOD
1354 if (current->fs->root) 1354 request_module("i2c-powermac");
1355 request_module("i2c-powermac"); 1355#endif /* CONFIG_KMOD */
1356#endif /* CONFIG_KMOD */
1357 1356
1358 mix = kzalloc(sizeof(*mix), GFP_KERNEL); 1357 mix = kzalloc(sizeof(*mix), GFP_KERNEL);
1359 if (! mix) 1358 if (! mix)