diff options
Diffstat (limited to 'drivers/char')
| -rw-r--r-- | drivers/char/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/char/hvc_iucv.c | 9 | ||||
| -rw-r--r-- | drivers/char/hw_random/n2-drv.c | 4 | ||||
| -rw-r--r-- | drivers/char/hw_random/n2rng.h | 2 | ||||
| -rw-r--r-- | drivers/char/hw_random/pasemi-rng.c | 4 | ||||
| -rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 61 | ||||
| -rw-r--r-- | drivers/char/ipmi/ipmi_watchdog.c | 42 | ||||
| -rw-r--r-- | drivers/char/n_gsm.c | 2 | ||||
| -rw-r--r-- | drivers/char/nozomi.c | 3 | ||||
| -rw-r--r-- | drivers/char/rtc.c | 2 | ||||
| -rw-r--r-- | drivers/char/xilinx_hwicap/xilinx_hwicap.c | 4 |
11 files changed, 88 insertions, 47 deletions
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 7cfcc629a7fd..3d44ec724c17 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
| @@ -1002,7 +1002,7 @@ config SCx200_GPIO | |||
| 1002 | 1002 | ||
| 1003 | config PC8736x_GPIO | 1003 | config PC8736x_GPIO |
| 1004 | tristate "NatSemi PC8736x GPIO Support" | 1004 | tristate "NatSemi PC8736x GPIO Support" |
| 1005 | depends on X86 | 1005 | depends on X86_32 |
| 1006 | default SCx200_GPIO # mostly N | 1006 | default SCx200_GPIO # mostly N |
| 1007 | select NSC_GPIO # needed for support routines | 1007 | select NSC_GPIO # needed for support routines |
| 1008 | help | 1008 | help |
diff --git a/drivers/char/hvc_iucv.c b/drivers/char/hvc_iucv.c index 5a80ad68ef22..7b01bc609de3 100644 --- a/drivers/char/hvc_iucv.c +++ b/drivers/char/hvc_iucv.c | |||
| @@ -1149,7 +1149,7 @@ out_err: | |||
| 1149 | * Note: If it is called early in the boot process, @val is stored and | 1149 | * Note: If it is called early in the boot process, @val is stored and |
| 1150 | * parsed later in hvc_iucv_init(). | 1150 | * parsed later in hvc_iucv_init(). |
| 1151 | */ | 1151 | */ |
| 1152 | static int param_set_vmidfilter(const char *val, struct kernel_param *kp) | 1152 | static int param_set_vmidfilter(const char *val, const struct kernel_param *kp) |
| 1153 | { | 1153 | { |
| 1154 | int rc; | 1154 | int rc; |
| 1155 | 1155 | ||
| @@ -1176,7 +1176,7 @@ static int param_set_vmidfilter(const char *val, struct kernel_param *kp) | |||
| 1176 | * The function stores the filter as a comma-separated list of z/VM user IDs | 1176 | * The function stores the filter as a comma-separated list of z/VM user IDs |
| 1177 | * in @buffer. Typically, sysfs routines call this function for attr show. | 1177 | * in @buffer. Typically, sysfs routines call this function for attr show. |
| 1178 | */ | 1178 | */ |
| 1179 | static int param_get_vmidfilter(char *buffer, struct kernel_param *kp) | 1179 | static int param_get_vmidfilter(char *buffer, const struct kernel_param *kp) |
| 1180 | { | 1180 | { |
| 1181 | int rc; | 1181 | int rc; |
| 1182 | size_t index, len; | 1182 | size_t index, len; |
| @@ -1203,6 +1203,11 @@ static int param_get_vmidfilter(char *buffer, struct kernel_param *kp) | |||
| 1203 | 1203 | ||
| 1204 | #define param_check_vmidfilter(name, p) __param_check(name, p, void) | 1204 | #define param_check_vmidfilter(name, p) __param_check(name, p, void) |
| 1205 | 1205 | ||
| 1206 | static struct kernel_param_ops param_ops_vmidfilter = { | ||
| 1207 | .set = param_set_vmidfilter, | ||
| 1208 | .get = param_get_vmidfilter, | ||
| 1209 | }; | ||
| 1210 | |||
| 1206 | /** | 1211 | /** |
| 1207 | * hvc_iucv_init() - z/VM IUCV HVC device driver initialization | 1212 | * hvc_iucv_init() - z/VM IUCV HVC device driver initialization |
| 1208 | */ | 1213 | */ |
diff --git a/drivers/char/hw_random/n2-drv.c b/drivers/char/hw_random/n2-drv.c index 7a4f080f8356..1acdb2509511 100644 --- a/drivers/char/hw_random/n2-drv.c +++ b/drivers/char/hw_random/n2-drv.c | |||
| @@ -619,7 +619,7 @@ static void __devinit n2rng_driver_version(void) | |||
| 619 | pr_info("%s", version); | 619 | pr_info("%s", version); |
| 620 | } | 620 | } |
| 621 | 621 | ||
| 622 | static int __devinit n2rng_probe(struct of_device *op, | 622 | static int __devinit n2rng_probe(struct platform_device *op, |
| 623 | const struct of_device_id *match) | 623 | const struct of_device_id *match) |
| 624 | { | 624 | { |
| 625 | int victoria_falls = (match->data != NULL); | 625 | int victoria_falls = (match->data != NULL); |
| @@ -714,7 +714,7 @@ out: | |||
| 714 | return err; | 714 | return err; |
| 715 | } | 715 | } |
| 716 | 716 | ||
| 717 | static int __devexit n2rng_remove(struct of_device *op) | 717 | static int __devexit n2rng_remove(struct platform_device *op) |
| 718 | { | 718 | { |
| 719 | struct n2rng *np = dev_get_drvdata(&op->dev); | 719 | struct n2rng *np = dev_get_drvdata(&op->dev); |
| 720 | 720 | ||
diff --git a/drivers/char/hw_random/n2rng.h b/drivers/char/hw_random/n2rng.h index a2b81e7bfc18..4bea07f30978 100644 --- a/drivers/char/hw_random/n2rng.h +++ b/drivers/char/hw_random/n2rng.h | |||
| @@ -65,7 +65,7 @@ struct n2rng_unit { | |||
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| 67 | struct n2rng { | 67 | struct n2rng { |
| 68 | struct of_device *op; | 68 | struct platform_device *op; |
| 69 | 69 | ||
| 70 | unsigned long flags; | 70 | unsigned long flags; |
| 71 | #define N2RNG_FLAG_VF 0x00000001 /* Victoria Falls RNG, else N2 */ | 71 | #define N2RNG_FLAG_VF 0x00000001 /* Victoria Falls RNG, else N2 */ |
diff --git a/drivers/char/hw_random/pasemi-rng.c b/drivers/char/hw_random/pasemi-rng.c index 261ba8f22b8b..a31c830ca8cd 100644 --- a/drivers/char/hw_random/pasemi-rng.c +++ b/drivers/char/hw_random/pasemi-rng.c | |||
| @@ -94,7 +94,7 @@ static struct hwrng pasemi_rng = { | |||
| 94 | .data_read = pasemi_rng_data_read, | 94 | .data_read = pasemi_rng_data_read, |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | static int __devinit rng_probe(struct of_device *ofdev, | 97 | static int __devinit rng_probe(struct platform_device *ofdev, |
| 98 | const struct of_device_id *match) | 98 | const struct of_device_id *match) |
| 99 | { | 99 | { |
| 100 | void __iomem *rng_regs; | 100 | void __iomem *rng_regs; |
| @@ -123,7 +123,7 @@ static int __devinit rng_probe(struct of_device *ofdev, | |||
| 123 | return err; | 123 | return err; |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | static int __devexit rng_remove(struct of_device *dev) | 126 | static int __devexit rng_remove(struct platform_device *dev) |
| 127 | { | 127 | { |
| 128 | void __iomem *rng_regs = (void __iomem *)pasemi_rng.priv; | 128 | void __iomem *rng_regs = (void __iomem *)pasemi_rng.priv; |
| 129 | 129 | ||
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index ff68e7c34ce7..3822b4f49c84 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
| @@ -1804,9 +1804,12 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) | |||
| 1804 | info->irq_setup = std_irq_setup; | 1804 | info->irq_setup = std_irq_setup; |
| 1805 | info->slave_addr = ipmb; | 1805 | info->slave_addr = ipmb; |
| 1806 | 1806 | ||
| 1807 | if (!add_smi(info)) | 1807 | if (!add_smi(info)) { |
| 1808 | if (try_smi_init(info)) | 1808 | if (try_smi_init(info)) |
| 1809 | cleanup_one_si(info); | 1809 | cleanup_one_si(info); |
| 1810 | } else { | ||
| 1811 | kfree(info); | ||
| 1812 | } | ||
| 1810 | } else { | 1813 | } else { |
| 1811 | /* remove */ | 1814 | /* remove */ |
| 1812 | struct smi_info *e, *tmp_e; | 1815 | struct smi_info *e, *tmp_e; |
| @@ -1890,9 +1893,12 @@ static __devinit void hardcode_find_bmc(void) | |||
| 1890 | info->irq_setup = std_irq_setup; | 1893 | info->irq_setup = std_irq_setup; |
| 1891 | info->slave_addr = slave_addrs[i]; | 1894 | info->slave_addr = slave_addrs[i]; |
| 1892 | 1895 | ||
| 1893 | if (!add_smi(info)) | 1896 | if (!add_smi(info)) { |
| 1894 | if (try_smi_init(info)) | 1897 | if (try_smi_init(info)) |
| 1895 | cleanup_one_si(info); | 1898 | cleanup_one_si(info); |
| 1899 | } else { | ||
| 1900 | kfree(info); | ||
| 1901 | } | ||
| 1896 | } | 1902 | } |
| 1897 | } | 1903 | } |
| 1898 | 1904 | ||
| @@ -1965,8 +1971,8 @@ static int acpi_gpe_irq_setup(struct smi_info *info) | |||
| 1965 | 1971 | ||
| 1966 | /* | 1972 | /* |
| 1967 | * Defined at | 1973 | * Defined at |
| 1968 | * http://h21007.www2.hp.com/dspp/files/unprotected/devresource/ | 1974 | * http://h21007.www2.hp.com/portal/download/files |
| 1969 | * Docs/TechPapers/IA64/hpspmi.pdf | 1975 | * /unprot/hpspmi.pdf |
| 1970 | */ | 1976 | */ |
| 1971 | struct SPMITable { | 1977 | struct SPMITable { |
| 1972 | s8 Signature[4]; | 1978 | s8 Signature[4]; |
| @@ -2013,18 +2019,12 @@ struct SPMITable { | |||
| 2013 | static __devinit int try_init_spmi(struct SPMITable *spmi) | 2019 | static __devinit int try_init_spmi(struct SPMITable *spmi) |
| 2014 | { | 2020 | { |
| 2015 | struct smi_info *info; | 2021 | struct smi_info *info; |
| 2016 | u8 addr_space; | ||
| 2017 | 2022 | ||
| 2018 | if (spmi->IPMIlegacy != 1) { | 2023 | if (spmi->IPMIlegacy != 1) { |
| 2019 | printk(KERN_INFO PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); | 2024 | printk(KERN_INFO PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); |
| 2020 | return -ENODEV; | 2025 | return -ENODEV; |
| 2021 | } | 2026 | } |
| 2022 | 2027 | ||
| 2023 | if (spmi->addr.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) | ||
| 2024 | addr_space = IPMI_MEM_ADDR_SPACE; | ||
| 2025 | else | ||
| 2026 | addr_space = IPMI_IO_ADDR_SPACE; | ||
| 2027 | |||
| 2028 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 2028 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
| 2029 | if (!info) { | 2029 | if (!info) { |
| 2030 | printk(KERN_ERR PFX "Could not allocate SI data (3)\n"); | 2030 | printk(KERN_ERR PFX "Could not allocate SI data (3)\n"); |
| @@ -2088,7 +2088,13 @@ static __devinit int try_init_spmi(struct SPMITable *spmi) | |||
| 2088 | } | 2088 | } |
| 2089 | info->io.addr_data = spmi->addr.address; | 2089 | info->io.addr_data = spmi->addr.address; |
| 2090 | 2090 | ||
| 2091 | add_smi(info); | 2091 | pr_info("ipmi_si: SPMI: %s %#lx regsize %d spacing %d irq %d\n", |
| 2092 | (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", | ||
| 2093 | info->io.addr_data, info->io.regsize, info->io.regspacing, | ||
| 2094 | info->irq); | ||
| 2095 | |||
| 2096 | if (add_smi(info)) | ||
| 2097 | kfree(info); | ||
| 2092 | 2098 | ||
| 2093 | return 0; | 2099 | return 0; |
| 2094 | } | 2100 | } |
| @@ -2204,7 +2210,10 @@ static int __devinit ipmi_pnp_probe(struct pnp_dev *dev, | |||
| 2204 | res, info->io.regsize, info->io.regspacing, | 2210 | res, info->io.regsize, info->io.regspacing, |
| 2205 | info->irq); | 2211 | info->irq); |
| 2206 | 2212 | ||
| 2207 | return add_smi(info); | 2213 | if (add_smi(info)) |
| 2214 | goto err_free; | ||
| 2215 | |||
| 2216 | return 0; | ||
| 2208 | 2217 | ||
| 2209 | err_free: | 2218 | err_free: |
| 2210 | kfree(info); | 2219 | kfree(info); |
| @@ -2362,7 +2371,13 @@ static __devinit void try_init_dmi(struct dmi_ipmi_data *ipmi_data) | |||
| 2362 | if (info->irq) | 2371 | if (info->irq) |
| 2363 | info->irq_setup = std_irq_setup; | 2372 | info->irq_setup = std_irq_setup; |
| 2364 | 2373 | ||
| 2365 | add_smi(info); | 2374 | pr_info("ipmi_si: SMBIOS: %s %#lx regsize %d spacing %d irq %d\n", |
| 2375 | (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", | ||
| 2376 | info->io.addr_data, info->io.regsize, info->io.regspacing, | ||
| 2377 | info->irq); | ||
| 2378 | |||
| 2379 | if (add_smi(info)) | ||
| 2380 | kfree(info); | ||
| 2366 | } | 2381 | } |
| 2367 | 2382 | ||
| 2368 | static void __devinit dmi_find_bmc(void) | 2383 | static void __devinit dmi_find_bmc(void) |
| @@ -2468,7 +2483,10 @@ static int __devinit ipmi_pci_probe(struct pci_dev *pdev, | |||
| 2468 | &pdev->resource[0], info->io.regsize, info->io.regspacing, | 2483 | &pdev->resource[0], info->io.regsize, info->io.regspacing, |
| 2469 | info->irq); | 2484 | info->irq); |
| 2470 | 2485 | ||
| 2471 | return add_smi(info); | 2486 | if (add_smi(info)) |
| 2487 | kfree(info); | ||
| 2488 | |||
| 2489 | return 0; | ||
| 2472 | } | 2490 | } |
| 2473 | 2491 | ||
| 2474 | static void __devexit ipmi_pci_remove(struct pci_dev *pdev) | 2492 | static void __devexit ipmi_pci_remove(struct pci_dev *pdev) |
| @@ -2510,7 +2528,7 @@ static struct pci_driver ipmi_pci_driver = { | |||
| 2510 | 2528 | ||
| 2511 | 2529 | ||
| 2512 | #ifdef CONFIG_PPC_OF | 2530 | #ifdef CONFIG_PPC_OF |
| 2513 | static int __devinit ipmi_of_probe(struct of_device *dev, | 2531 | static int __devinit ipmi_of_probe(struct platform_device *dev, |
| 2514 | const struct of_device_id *match) | 2532 | const struct of_device_id *match) |
| 2515 | { | 2533 | { |
| 2516 | struct smi_info *info; | 2534 | struct smi_info *info; |
| @@ -2581,10 +2599,15 @@ static int __devinit ipmi_of_probe(struct of_device *dev, | |||
| 2581 | 2599 | ||
| 2582 | dev_set_drvdata(&dev->dev, info); | 2600 | dev_set_drvdata(&dev->dev, info); |
| 2583 | 2601 | ||
| 2584 | return add_smi(info); | 2602 | if (add_smi(info)) { |
| 2603 | kfree(info); | ||
| 2604 | return -EBUSY; | ||
| 2605 | } | ||
| 2606 | |||
| 2607 | return 0; | ||
| 2585 | } | 2608 | } |
| 2586 | 2609 | ||
| 2587 | static int __devexit ipmi_of_remove(struct of_device *dev) | 2610 | static int __devexit ipmi_of_remove(struct platform_device *dev) |
| 2588 | { | 2611 | { |
| 2589 | cleanup_one_si(dev_get_drvdata(&dev->dev)); | 2612 | cleanup_one_si(dev_get_drvdata(&dev->dev)); |
| 2590 | return 0; | 2613 | return 0; |
| @@ -3014,6 +3037,8 @@ static __devinit void default_find_bmc(void) | |||
| 3014 | info->io.addr_data); | 3037 | info->io.addr_data); |
| 3015 | } else | 3038 | } else |
| 3016 | cleanup_one_si(info); | 3039 | cleanup_one_si(info); |
| 3040 | } else { | ||
| 3041 | kfree(info); | ||
| 3017 | } | 3042 | } |
| 3018 | } | 3043 | } |
| 3019 | } | 3044 | } |
| @@ -3041,7 +3066,7 @@ static int add_smi(struct smi_info *new_smi) | |||
| 3041 | si_to_str[new_smi->si_type]); | 3066 | si_to_str[new_smi->si_type]); |
| 3042 | mutex_lock(&smi_infos_lock); | 3067 | mutex_lock(&smi_infos_lock); |
| 3043 | if (!is_new_interface(new_smi)) { | 3068 | if (!is_new_interface(new_smi)) { |
| 3044 | printk(KERN_CONT PFX "duplicate interface\n"); | 3069 | printk(KERN_CONT " duplicate interface\n"); |
| 3045 | rv = -EBUSY; | 3070 | rv = -EBUSY; |
| 3046 | goto out_err; | 3071 | goto out_err; |
| 3047 | } | 3072 | } |
diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c index 82bcdb262a3a..654d566ca57c 100644 --- a/drivers/char/ipmi/ipmi_watchdog.c +++ b/drivers/char/ipmi/ipmi_watchdog.c | |||
| @@ -196,7 +196,7 @@ static void ipmi_unregister_watchdog(int ipmi_intf); | |||
| 196 | */ | 196 | */ |
| 197 | static int start_now; | 197 | static int start_now; |
| 198 | 198 | ||
| 199 | static int set_param_int(const char *val, struct kernel_param *kp) | 199 | static int set_param_timeout(const char *val, const struct kernel_param *kp) |
| 200 | { | 200 | { |
| 201 | char *endp; | 201 | char *endp; |
| 202 | int l; | 202 | int l; |
| @@ -215,10 +215,11 @@ static int set_param_int(const char *val, struct kernel_param *kp) | |||
| 215 | return rv; | 215 | return rv; |
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | static int get_param_int(char *buffer, struct kernel_param *kp) | 218 | static struct kernel_param_ops param_ops_timeout = { |
| 219 | { | 219 | .set = set_param_timeout, |
| 220 | return sprintf(buffer, "%i", *((int *)kp->arg)); | 220 | .get = param_get_int, |
| 221 | } | 221 | }; |
| 222 | #define param_check_timeout param_check_int | ||
| 222 | 223 | ||
| 223 | typedef int (*action_fn)(const char *intval, char *outval); | 224 | typedef int (*action_fn)(const char *intval, char *outval); |
| 224 | 225 | ||
| @@ -227,7 +228,7 @@ static int preaction_op(const char *inval, char *outval); | |||
| 227 | static int preop_op(const char *inval, char *outval); | 228 | static int preop_op(const char *inval, char *outval); |
| 228 | static void check_parms(void); | 229 | static void check_parms(void); |
| 229 | 230 | ||
| 230 | static int set_param_str(const char *val, struct kernel_param *kp) | 231 | static int set_param_str(const char *val, const struct kernel_param *kp) |
| 231 | { | 232 | { |
| 232 | action_fn fn = (action_fn) kp->arg; | 233 | action_fn fn = (action_fn) kp->arg; |
| 233 | int rv = 0; | 234 | int rv = 0; |
| @@ -251,7 +252,7 @@ static int set_param_str(const char *val, struct kernel_param *kp) | |||
| 251 | return rv; | 252 | return rv; |
| 252 | } | 253 | } |
| 253 | 254 | ||
| 254 | static int get_param_str(char *buffer, struct kernel_param *kp) | 255 | static int get_param_str(char *buffer, const struct kernel_param *kp) |
| 255 | { | 256 | { |
| 256 | action_fn fn = (action_fn) kp->arg; | 257 | action_fn fn = (action_fn) kp->arg; |
| 257 | int rv; | 258 | int rv; |
| @@ -263,7 +264,7 @@ static int get_param_str(char *buffer, struct kernel_param *kp) | |||
| 263 | } | 264 | } |
| 264 | 265 | ||
| 265 | 266 | ||
| 266 | static int set_param_wdog_ifnum(const char *val, struct kernel_param *kp) | 267 | static int set_param_wdog_ifnum(const char *val, const struct kernel_param *kp) |
| 267 | { | 268 | { |
| 268 | int rv = param_set_int(val, kp); | 269 | int rv = param_set_int(val, kp); |
| 269 | if (rv) | 270 | if (rv) |
| @@ -276,27 +277,38 @@ static int set_param_wdog_ifnum(const char *val, struct kernel_param *kp) | |||
| 276 | return 0; | 277 | return 0; |
| 277 | } | 278 | } |
| 278 | 279 | ||
| 279 | module_param_call(ifnum_to_use, set_param_wdog_ifnum, get_param_int, | 280 | static struct kernel_param_ops param_ops_wdog_ifnum = { |
| 280 | &ifnum_to_use, 0644); | 281 | .set = set_param_wdog_ifnum, |
| 282 | .get = param_get_int, | ||
| 283 | }; | ||
| 284 | |||
| 285 | #define param_check_wdog_ifnum param_check_int | ||
| 286 | |||
| 287 | static struct kernel_param_ops param_ops_str = { | ||
| 288 | .set = set_param_str, | ||
| 289 | .get = get_param_str, | ||
| 290 | }; | ||
| 291 | |||
| 292 | module_param(ifnum_to_use, wdog_ifnum, 0644); | ||
| 281 | MODULE_PARM_DESC(ifnum_to_use, "The interface number to use for the watchdog " | 293 | MODULE_PARM_DESC(ifnum_to_use, "The interface number to use for the watchdog " |
| 282 | "timer. Setting to -1 defaults to the first registered " | 294 | "timer. Setting to -1 defaults to the first registered " |
| 283 | "interface"); | 295 | "interface"); |
| 284 | 296 | ||
| 285 | module_param_call(timeout, set_param_int, get_param_int, &timeout, 0644); | 297 | module_param(timeout, timeout, 0644); |
| 286 | MODULE_PARM_DESC(timeout, "Timeout value in seconds."); | 298 | MODULE_PARM_DESC(timeout, "Timeout value in seconds."); |
| 287 | 299 | ||
| 288 | module_param_call(pretimeout, set_param_int, get_param_int, &pretimeout, 0644); | 300 | module_param(pretimeout, timeout, 0644); |
| 289 | MODULE_PARM_DESC(pretimeout, "Pretimeout value in seconds."); | 301 | MODULE_PARM_DESC(pretimeout, "Pretimeout value in seconds."); |
| 290 | 302 | ||
| 291 | module_param_call(action, set_param_str, get_param_str, action_op, 0644); | 303 | module_param_cb(action, ¶m_ops_str, action_op, 0644); |
| 292 | MODULE_PARM_DESC(action, "Timeout action. One of: " | 304 | MODULE_PARM_DESC(action, "Timeout action. One of: " |
| 293 | "reset, none, power_cycle, power_off."); | 305 | "reset, none, power_cycle, power_off."); |
| 294 | 306 | ||
| 295 | module_param_call(preaction, set_param_str, get_param_str, preaction_op, 0644); | 307 | module_param_cb(preaction, ¶m_ops_str, preaction_op, 0644); |
| 296 | MODULE_PARM_DESC(preaction, "Pretimeout action. One of: " | 308 | MODULE_PARM_DESC(preaction, "Pretimeout action. One of: " |
| 297 | "pre_none, pre_smi, pre_nmi, pre_int."); | 309 | "pre_none, pre_smi, pre_nmi, pre_int."); |
| 298 | 310 | ||
| 299 | module_param_call(preop, set_param_str, get_param_str, preop_op, 0644); | 311 | module_param_cb(preop, ¶m_ops_str, preop_op, 0644); |
| 300 | MODULE_PARM_DESC(preop, "Pretimeout driver operation. One of: " | 312 | MODULE_PARM_DESC(preop, "Pretimeout driver operation. One of: " |
| 301 | "preop_none, preop_panic, preop_give_data."); | 313 | "preop_none, preop_panic, preop_give_data."); |
| 302 | 314 | ||
diff --git a/drivers/char/n_gsm.c b/drivers/char/n_gsm.c index 099105e0894e..04ef3ef0a422 100644 --- a/drivers/char/n_gsm.c +++ b/drivers/char/n_gsm.c | |||
| @@ -919,7 +919,7 @@ static void gsm_dlci_data_sweep(struct gsm_mux *gsm) | |||
| 919 | else | 919 | else |
| 920 | len = gsm_dlci_data_output_framed(gsm, dlci); | 920 | len = gsm_dlci_data_output_framed(gsm, dlci); |
| 921 | if (len < 0) | 921 | if (len < 0) |
| 922 | return; | 922 | break; |
| 923 | /* DLCI empty - try the next */ | 923 | /* DLCI empty - try the next */ |
| 924 | if (len == 0) | 924 | if (len == 0) |
| 925 | i++; | 925 | i++; |
diff --git a/drivers/char/nozomi.c b/drivers/char/nozomi.c index 18af923093c3..817169cbb245 100644 --- a/drivers/char/nozomi.c +++ b/drivers/char/nozomi.c | |||
| @@ -1743,8 +1743,7 @@ static int ntty_write_room(struct tty_struct *tty) | |||
| 1743 | if (dc) { | 1743 | if (dc) { |
| 1744 | mutex_lock(&port->tty_sem); | 1744 | mutex_lock(&port->tty_sem); |
| 1745 | if (port->port.count) | 1745 | if (port->port.count) |
| 1746 | room = port->fifo_ul.size - | 1746 | room = kfifo_avail(&port->fifo_ul); |
| 1747 | kfifo_len(&port->fifo_ul); | ||
| 1748 | mutex_unlock(&port->tty_sem); | 1747 | mutex_unlock(&port->tty_sem); |
| 1749 | } | 1748 | } |
| 1750 | return room; | 1749 | return room; |
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c index 95acb8c880f4..dfa8b3062fda 100644 --- a/drivers/char/rtc.c +++ b/drivers/char/rtc.c | |||
| @@ -961,7 +961,7 @@ static int __init rtc_init(void) | |||
| 961 | #endif | 961 | #endif |
| 962 | #ifdef CONFIG_SPARC32 | 962 | #ifdef CONFIG_SPARC32 |
| 963 | struct device_node *ebus_dp; | 963 | struct device_node *ebus_dp; |
| 964 | struct of_device *op; | 964 | struct platform_device *op; |
| 965 | #else | 965 | #else |
| 966 | void *r; | 966 | void *r; |
| 967 | #ifdef RTC_IRQ | 967 | #ifdef RTC_IRQ |
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c index ed8a9cec2a05..0ed763cd2e77 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c | |||
| @@ -761,7 +761,7 @@ static struct platform_driver hwicap_platform_driver = { | |||
| 761 | 761 | ||
| 762 | #if defined(CONFIG_OF) | 762 | #if defined(CONFIG_OF) |
| 763 | static int __devinit | 763 | static int __devinit |
| 764 | hwicap_of_probe(struct of_device *op, const struct of_device_id *match) | 764 | hwicap_of_probe(struct platform_device *op, const struct of_device_id *match) |
| 765 | { | 765 | { |
| 766 | struct resource res; | 766 | struct resource res; |
| 767 | const unsigned int *id; | 767 | const unsigned int *id; |
| @@ -798,7 +798,7 @@ hwicap_of_probe(struct of_device *op, const struct of_device_id *match) | |||
| 798 | regs); | 798 | regs); |
| 799 | } | 799 | } |
| 800 | 800 | ||
| 801 | static int __devexit hwicap_of_remove(struct of_device *op) | 801 | static int __devexit hwicap_of_remove(struct platform_device *op) |
| 802 | { | 802 | { |
| 803 | return hwicap_remove(&op->dev); | 803 | return hwicap_remove(&op->dev); |
| 804 | } | 804 | } |
