diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-26 13:40:28 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-26 13:40:28 -0500 |
| commit | ed803862954528e6fcf7bd0f2b2e5a772a7c3281 (patch) | |
| tree | fce02fe5ebc10a5a8da5e034e2bb25d79d07a808 | |
| parent | 6aeea60aee945449c93d9aa70638deeb5c4c5439 (diff) | |
| parent | c0e69a5bbc6fc74184aa043aadb9a53bc58f953b (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
klist.c: bit 0 in pointer can't be used as flag
debugfs: introduce stub for debugfs_create_size_t() when DEBUG_FS=n
sysfs: fix problems with binary files
PNP: fix broken pnp lowercasing for acpi module aliases
driver core: Convert '/' to '!' in dev_set_name()
| -rw-r--r-- | drivers/base/core.c | 6 | ||||
| -rw-r--r-- | fs/sysfs/bin.c | 6 | ||||
| -rw-r--r-- | include/linux/debugfs.h | 7 | ||||
| -rw-r--r-- | include/linux/klist.h | 2 | ||||
| -rw-r--r-- | scripts/mod/file2alias.c | 17 |
5 files changed, 35 insertions, 3 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 8079afca4972..55e530942ab0 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
| @@ -777,10 +777,16 @@ static void device_remove_class_symlinks(struct device *dev) | |||
| 777 | int dev_set_name(struct device *dev, const char *fmt, ...) | 777 | int dev_set_name(struct device *dev, const char *fmt, ...) |
| 778 | { | 778 | { |
| 779 | va_list vargs; | 779 | va_list vargs; |
| 780 | char *s; | ||
| 780 | 781 | ||
| 781 | va_start(vargs, fmt); | 782 | va_start(vargs, fmt); |
| 782 | vsnprintf(dev->bus_id, sizeof(dev->bus_id), fmt, vargs); | 783 | vsnprintf(dev->bus_id, sizeof(dev->bus_id), fmt, vargs); |
| 783 | va_end(vargs); | 784 | va_end(vargs); |
| 785 | |||
| 786 | /* ewww... some of these buggers have / in the name... */ | ||
| 787 | while ((s = strchr(dev->bus_id, '/'))) | ||
| 788 | *s = '!'; | ||
| 789 | |||
| 784 | return 0; | 790 | return 0; |
| 785 | } | 791 | } |
| 786 | EXPORT_SYMBOL_GPL(dev_set_name); | 792 | EXPORT_SYMBOL_GPL(dev_set_name); |
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c index 66f6e58a7e4b..f2c478c3424e 100644 --- a/fs/sysfs/bin.c +++ b/fs/sysfs/bin.c | |||
| @@ -63,6 +63,9 @@ read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off) | |||
| 63 | int count = min_t(size_t, bytes, PAGE_SIZE); | 63 | int count = min_t(size_t, bytes, PAGE_SIZE); |
| 64 | char *temp; | 64 | char *temp; |
| 65 | 65 | ||
| 66 | if (!bytes) | ||
| 67 | return 0; | ||
| 68 | |||
| 66 | if (size) { | 69 | if (size) { |
| 67 | if (offs > size) | 70 | if (offs > size) |
| 68 | return 0; | 71 | return 0; |
| @@ -131,6 +134,9 @@ static ssize_t write(struct file *file, const char __user *userbuf, | |||
| 131 | int count = min_t(size_t, bytes, PAGE_SIZE); | 134 | int count = min_t(size_t, bytes, PAGE_SIZE); |
| 132 | char *temp; | 135 | char *temp; |
| 133 | 136 | ||
| 137 | if (!bytes) | ||
| 138 | return 0; | ||
| 139 | |||
| 134 | if (size) { | 140 | if (size) { |
| 135 | if (offs > size) | 141 | if (offs > size) |
| 136 | return 0; | 142 | return 0; |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index 23936b16426b..0f5c33b0bd3e 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
| @@ -162,6 +162,13 @@ static inline struct dentry *debugfs_create_x32(const char *name, mode_t mode, | |||
| 162 | return ERR_PTR(-ENODEV); | 162 | return ERR_PTR(-ENODEV); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | struct dentry *debugfs_create_size_t(const char *name, mode_t mode, | ||
| 166 | struct dentry *parent, | ||
| 167 | size_t *value) | ||
| 168 | { | ||
| 169 | return ERR_PTR(-ENODEV); | ||
| 170 | } | ||
| 171 | |||
| 165 | static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, | 172 | static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, |
| 166 | struct dentry *parent, | 173 | struct dentry *parent, |
| 167 | u32 *value) | 174 | u32 *value) |
diff --git a/include/linux/klist.h b/include/linux/klist.h index d5a27af9dba5..e91a4e59b771 100644 --- a/include/linux/klist.h +++ b/include/linux/klist.h | |||
| @@ -22,7 +22,7 @@ struct klist { | |||
| 22 | struct list_head k_list; | 22 | struct list_head k_list; |
| 23 | void (*get)(struct klist_node *); | 23 | void (*get)(struct klist_node *); |
| 24 | void (*put)(struct klist_node *); | 24 | void (*put)(struct klist_node *); |
| 25 | }; | 25 | } __attribute__ ((aligned (4))); |
| 26 | 26 | ||
| 27 | #define KLIST_INIT(_name, _get, _put) \ | 27 | #define KLIST_INIT(_name, _get, _put) \ |
| 28 | { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ | 28 | { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ |
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index d4dc222a74f3..491b8b1b6abf 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c | |||
| @@ -366,11 +366,17 @@ static void do_pnp_device_entry(void *symval, unsigned long size, | |||
| 366 | 366 | ||
| 367 | for (i = 0; i < count; i++) { | 367 | for (i = 0; i < count; i++) { |
| 368 | const char *id = (char *)devs[i].id; | 368 | const char *id = (char *)devs[i].id; |
| 369 | char acpi_id[sizeof(devs[0].id)]; | ||
| 370 | int j; | ||
| 369 | 371 | ||
| 370 | buf_printf(&mod->dev_table_buf, | 372 | buf_printf(&mod->dev_table_buf, |
| 371 | "MODULE_ALIAS(\"pnp:d%s*\");\n", id); | 373 | "MODULE_ALIAS(\"pnp:d%s*\");\n", id); |
| 374 | |||
| 375 | /* fix broken pnp bus lowercasing */ | ||
| 376 | for (j = 0; j < sizeof(acpi_id); j++) | ||
| 377 | acpi_id[j] = toupper(id[j]); | ||
| 372 | buf_printf(&mod->dev_table_buf, | 378 | buf_printf(&mod->dev_table_buf, |
| 373 | "MODULE_ALIAS(\"acpi*:%s:*\");\n", id); | 379 | "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id); |
| 374 | } | 380 | } |
| 375 | } | 381 | } |
| 376 | 382 | ||
| @@ -416,10 +422,17 @@ static void do_pnp_card_entries(void *symval, unsigned long size, | |||
| 416 | 422 | ||
| 417 | /* add an individual alias for every device entry */ | 423 | /* add an individual alias for every device entry */ |
| 418 | if (!dup) { | 424 | if (!dup) { |
| 425 | char acpi_id[sizeof(card->devs[0].id)]; | ||
| 426 | int k; | ||
| 427 | |||
| 419 | buf_printf(&mod->dev_table_buf, | 428 | buf_printf(&mod->dev_table_buf, |
| 420 | "MODULE_ALIAS(\"pnp:d%s*\");\n", id); | 429 | "MODULE_ALIAS(\"pnp:d%s*\");\n", id); |
| 430 | |||
| 431 | /* fix broken pnp bus lowercasing */ | ||
| 432 | for (k = 0; k < sizeof(acpi_id); k++) | ||
| 433 | acpi_id[k] = toupper(id[k]); | ||
| 421 | buf_printf(&mod->dev_table_buf, | 434 | buf_printf(&mod->dev_table_buf, |
| 422 | "MODULE_ALIAS(\"acpi*:%s:*\");\n", id); | 435 | "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id); |
| 423 | } | 436 | } |
| 424 | } | 437 | } |
| 425 | } | 438 | } |
