aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pnp/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pnp/interface.c')
-rw-r--r--drivers/pnp/interface.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c
index 31548044fdde..982658477a58 100644
--- a/drivers/pnp/interface.c
+++ b/drivers/pnp/interface.c
@@ -10,9 +10,12 @@
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/list.h> 11#include <linux/list.h>
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/pnp.h>
13#include <linux/stat.h> 14#include <linux/stat.h>
14#include <linux/ctype.h> 15#include <linux/ctype.h>
15#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/mutex.h>
18
16#include <asm/uaccess.h> 19#include <asm/uaccess.h>
17 20
18#include "base.h" 21#include "base.h"
@@ -315,8 +318,6 @@ static ssize_t pnp_show_current_resources(struct device *dmdev,
315 return ret; 318 return ret;
316} 319}
317 320
318extern struct semaphore pnp_res_mutex;
319
320static ssize_t 321static ssize_t
321pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr, 322pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr,
322 const char *ubuf, size_t count) 323 const char *ubuf, size_t count)
@@ -361,10 +362,10 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr,
361 goto done; 362 goto done;
362 } 363 }
363 if (!strnicmp(buf, "get", 3)) { 364 if (!strnicmp(buf, "get", 3)) {
364 down(&pnp_res_mutex); 365 mutex_lock(&pnp_res_mutex);
365 if (pnp_can_read(dev)) 366 if (pnp_can_read(dev))
366 dev->protocol->get(dev, &dev->res); 367 dev->protocol->get(dev, &dev->res);
367 up(&pnp_res_mutex); 368 mutex_unlock(&pnp_res_mutex);
368 goto done; 369 goto done;
369 } 370 }
370 if (!strnicmp(buf, "set", 3)) { 371 if (!strnicmp(buf, "set", 3)) {
@@ -373,7 +374,7 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr,
373 goto done; 374 goto done;
374 buf += 3; 375 buf += 3;
375 pnp_init_resource_table(&dev->res); 376 pnp_init_resource_table(&dev->res);
376 down(&pnp_res_mutex); 377 mutex_lock(&pnp_res_mutex);
377 while (1) { 378 while (1) {
378 while (isspace(*buf)) 379 while (isspace(*buf))
379 ++buf; 380 ++buf;
@@ -455,7 +456,7 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr,
455 } 456 }
456 break; 457 break;
457 } 458 }
458 up(&pnp_res_mutex); 459 mutex_unlock(&pnp_res_mutex);
459 goto done; 460 goto done;
460 } 461 }
461 462