Loading drivers/char/ipmi/ipmi_si_intf.c +54 −76 Original line number Diff line number Diff line Loading @@ -1764,7 +1764,7 @@ static int parse_str(const struct hotmod_vals *v, int *val, char *name, s = strchr(*curr, ','); if (!s) { printk(KERN_WARNING PFX "No hotmod %s given.\n", name); pr_warn(PFX "No hotmod %s given.\n", name); return -EINVAL; } *s = '\0'; Loading @@ -1777,7 +1777,7 @@ static int parse_str(const struct hotmod_vals *v, int *val, char *name, } } printk(KERN_WARNING PFX "Invalid hotmod %s '%s'\n", name, *curr); pr_warn(PFX "Invalid hotmod %s '%s'\n", name, *curr); return -EINVAL; } Loading @@ -1788,16 +1788,12 @@ static int check_hotmod_int_op(const char *curr, const char *option, if (strcmp(curr, name) == 0) { if (!option) { printk(KERN_WARNING PFX "No option given for '%s'\n", curr); pr_warn(PFX "No option given for '%s'\n", curr); return -EINVAL; } *val = simple_strtoul(option, &n, 0); if ((*n != '\0') || (*option == '\0')) { printk(KERN_WARNING PFX "Bad option given for '%s'\n", curr); pr_warn(PFX "Bad option given for '%s'\n", curr); return -EINVAL; } return 1; Loading Loading @@ -1877,8 +1873,7 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) } addr = simple_strtoul(curr, &n, 0); if ((*n != '\0') || (*curr == '\0')) { printk(KERN_WARNING PFX "Invalid hotmod address" " '%s'\n", curr); pr_warn(PFX "Invalid hotmod address '%s'\n", curr); break; } Loading Loading @@ -1921,9 +1916,7 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) continue; rv = -EINVAL; printk(KERN_WARNING PFX "Invalid hotmod option '%s'\n", curr); pr_warn(PFX "Invalid hotmod option '%s'\n", curr); goto out; } Loading Loading @@ -2003,7 +1996,7 @@ static int hardcode_find_bmc(void) return -ENOMEM; info->addr_source = SI_HARDCODED; printk(KERN_INFO PFX "probing via hardcoded address\n"); pr_info(PFX "probing via hardcoded address\n"); if (!si_type[i] || strcmp(si_type[i], "kcs") == 0) { info->si_type = SI_KCS; Loading @@ -2012,8 +2005,7 @@ static int hardcode_find_bmc(void) } else if (strcmp(si_type[i], "bt") == 0) { info->si_type = SI_BT; } else { printk(KERN_WARNING PFX "Interface type specified " "for interface %d, was invalid: %s\n", pr_warn(PFX "Interface type specified for interface %d, was invalid: %s\n", i, si_type[i]); kfree(info); continue; Loading @@ -2030,9 +2022,8 @@ static int hardcode_find_bmc(void) info->io.addr_data = addrs[i]; info->io.addr_type = IPMI_MEM_ADDR_SPACE; } else { printk(KERN_WARNING PFX "Interface type specified " "for interface %d, but port and address were " "not set or set to zero.\n", i); pr_warn(PFX "Interface type specified for interface %d, but port and address were not set or set to zero.\n", i); kfree(info); continue; } Loading Loading @@ -2173,18 +2164,18 @@ static int try_init_spmi(struct SPMITable *spmi) int rv; if (spmi->IPMIlegacy != 1) { printk(KERN_INFO PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); pr_info(PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); return -ENODEV; } info = smi_info_alloc(); if (!info) { printk(KERN_ERR PFX "Could not allocate SI data (3)\n"); pr_err(PFX "Could not allocate SI data (3)\n"); return -ENOMEM; } info->addr_source = SI_SPMI; printk(KERN_INFO PFX "probing via SPMI\n"); pr_info(PFX "probing via SPMI\n"); /* Figure out the interface type. */ switch (spmi->InterfaceType) { Loading @@ -2201,7 +2192,7 @@ static int try_init_spmi(struct SPMITable *spmi) kfree(info); return -EIO; default: printk(KERN_INFO PFX "Unknown ACPI/SPMI SI type %d\n", pr_info(PFX "Unknown ACPI/SPMI SI type %d\n", spmi->InterfaceType); kfree(info); return -EIO; Loading Loading @@ -2238,7 +2229,7 @@ static int try_init_spmi(struct SPMITable *spmi) info->io.addr_type = IPMI_IO_ADDR_SPACE; } else { kfree(info); printk(KERN_WARNING PFX "Unknown ACPI I/O Address type\n"); pr_warn(PFX "Unknown ACPI I/O Address type\n"); return -EIO; } info->io.addr_data = spmi->addr.address; Loading Loading @@ -2356,12 +2347,12 @@ static void try_init_dmi(struct dmi_ipmi_data *ipmi_data) info = smi_info_alloc(); if (!info) { printk(KERN_ERR PFX "Could not allocate SI data\n"); pr_err(PFX "Could not allocate SI data\n"); return; } info->addr_source = SI_SMBIOS; printk(KERN_INFO PFX "probing via SMBIOS\n"); pr_info(PFX "probing via SMBIOS\n"); switch (ipmi_data->type) { case 0x01: /* KCS */ Loading Loading @@ -2391,7 +2382,7 @@ static void try_init_dmi(struct dmi_ipmi_data *ipmi_data) default: kfree(info); printk(KERN_WARNING PFX "Unknown SMBIOS I/O Address type: %d\n", pr_warn(PFX "Unknown SMBIOS I/O Address type: %d\n", ipmi_data->addr_space); return; } Loading Loading @@ -3141,9 +3132,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) rv = wait_for_msg_done(smi_info); if (rv) { printk(KERN_WARNING PFX "Error getting response from get" " global enables command, the event buffer is not" " enabled.\n"); pr_warn(PFX "Error getting response from get global enables command, the event buffer is not enabled.\n"); goto out; } Loading @@ -3154,8 +3143,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 || resp[1] != IPMI_GET_BMC_GLOBAL_ENABLES_CMD || resp[2] != 0) { printk(KERN_WARNING PFX "Invalid return from get global" " enables command, cannot enable the event buffer.\n"); pr_warn(PFX "Invalid return from get global enables command, cannot enable the event buffer.\n"); rv = -EINVAL; goto out; } Loading @@ -3173,9 +3161,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) rv = wait_for_msg_done(smi_info); if (rv) { printk(KERN_WARNING PFX "Error getting response from set" " global, enables command, the event buffer is not" " enabled.\n"); pr_warn(PFX "Error getting response from set global, enables command, the event buffer is not enabled.\n"); goto out; } Loading @@ -3185,8 +3171,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) if (resp_len < 3 || resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 || resp[1] != IPMI_SET_BMC_GLOBAL_ENABLES_CMD) { printk(KERN_WARNING PFX "Invalid return from get global," "enables command, not enable the event buffer.\n"); pr_warn(PFX "Invalid return from get global, enables command, not enable the event buffer.\n"); rv = -EINVAL; goto out; } Loading Loading @@ -3474,17 +3459,18 @@ static int add_smi(struct smi_info *new_smi) { int rv = 0; printk(KERN_INFO PFX "Adding %s-specified %s state machine", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type]); mutex_lock(&smi_infos_lock); if (!is_new_interface(new_smi)) { printk(KERN_CONT " duplicate interface\n"); pr_info(PFX "%s-specified %s state machine: duplicate\n", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type]); rv = -EBUSY; goto out_err; } printk(KERN_CONT "\n"); pr_info(PFX "Adding %s-specified %s state machine\n", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type]); /* So we know not to free it unless we have allocated one. */ new_smi->intf = NULL; Loading @@ -3504,9 +3490,7 @@ static int try_smi_init(struct smi_info *new_smi) int i; char *init_name = NULL; printk(KERN_INFO PFX "Trying %s-specified %s state" " machine at %s address 0x%lx, slave address 0x%x," " irq %d\n", pr_info(PFX "Trying %s-specified %s state machine at %s address 0x%lx, slave address 0x%x, irq %d\n", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type], addr_space_to_str[new_smi->io.addr_type], Loading Loading @@ -3555,8 +3539,7 @@ static int try_smi_init(struct smi_info *new_smi) /* Allocate the state machine's data and initialize it. */ new_smi->si_sm = kmalloc(new_smi->handlers->size(), GFP_KERNEL); if (!new_smi->si_sm) { printk(KERN_ERR PFX "Could not allocate state machine memory\n"); pr_err(PFX "Could not allocate state machine memory\n"); rv = -ENOMEM; goto out_err; } Loading @@ -3566,14 +3549,14 @@ static int try_smi_init(struct smi_info *new_smi) /* Now that we know the I/O size, we can set up the I/O. */ rv = new_smi->io_setup(new_smi); if (rv) { printk(KERN_ERR PFX "Could not set up I/O space\n"); dev_err(new_smi->dev, "Could not set up I/O space\n"); goto out_err; } /* Do low-level detection first. */ if (new_smi->handlers->detect(new_smi->si_sm)) { if (new_smi->addr_source) printk(KERN_INFO PFX "Interface detection failed\n"); dev_err(new_smi->dev, "Interface detection failed\n"); rv = -ENODEV; goto out_err; } Loading @@ -3585,8 +3568,7 @@ static int try_smi_init(struct smi_info *new_smi) rv = try_get_dev_id(new_smi); if (rv) { if (new_smi->addr_source) printk(KERN_INFO PFX "There appears to be no BMC" " at this location\n"); dev_err(new_smi->dev, "There appears to be no BMC at this location\n"); goto out_err; } Loading Loading @@ -3628,9 +3610,8 @@ static int try_smi_init(struct smi_info *new_smi) if (new_smi->pdev) { rv = platform_device_add(new_smi->pdev); if (rv) { printk(KERN_ERR PFX "Unable to register system interface device:" " %d\n", dev_err(new_smi->dev, "Unable to register system interface device: %d\n", rv); goto out_err; } Loading Loading @@ -3748,8 +3729,7 @@ static int init_ipmi_si(void) if (si_tryplatform) { rv = platform_driver_register(&ipmi_driver); if (rv) { printk(KERN_ERR PFX "Unable to register " "driver: %d\n", rv); pr_err(PFX "Unable to register driver: %d\n", rv); return rv; } } Loading @@ -3769,7 +3749,7 @@ static int init_ipmi_si(void) } } printk(KERN_INFO "IPMI System Interface driver.\n"); pr_info("IPMI System Interface driver.\n"); /* If the user gave us a device, they presumably want us to use it */ if (!hardcode_find_bmc()) Loading @@ -3779,8 +3759,7 @@ static int init_ipmi_si(void) if (si_trypci) { rv = pci_register_driver(&ipmi_pci_driver); if (rv) printk(KERN_ERR PFX "Unable to register " "PCI driver: %d\n", rv); pr_err(PFX "Unable to register PCI driver: %d\n", rv); else pci_registered = true; } Loading Loading @@ -3842,8 +3821,7 @@ static int init_ipmi_si(void) if (unload_when_empty && list_empty(&smi_infos)) { mutex_unlock(&smi_infos_lock); cleanup_ipmi_si(); printk(KERN_WARNING PFX "Unable to find any System Interface(s)\n"); pr_warn(PFX "Unable to find any System Interface(s)\n"); return -ENODEV; } else { mutex_unlock(&smi_infos_lock); Loading Loading
drivers/char/ipmi/ipmi_si_intf.c +54 −76 Original line number Diff line number Diff line Loading @@ -1764,7 +1764,7 @@ static int parse_str(const struct hotmod_vals *v, int *val, char *name, s = strchr(*curr, ','); if (!s) { printk(KERN_WARNING PFX "No hotmod %s given.\n", name); pr_warn(PFX "No hotmod %s given.\n", name); return -EINVAL; } *s = '\0'; Loading @@ -1777,7 +1777,7 @@ static int parse_str(const struct hotmod_vals *v, int *val, char *name, } } printk(KERN_WARNING PFX "Invalid hotmod %s '%s'\n", name, *curr); pr_warn(PFX "Invalid hotmod %s '%s'\n", name, *curr); return -EINVAL; } Loading @@ -1788,16 +1788,12 @@ static int check_hotmod_int_op(const char *curr, const char *option, if (strcmp(curr, name) == 0) { if (!option) { printk(KERN_WARNING PFX "No option given for '%s'\n", curr); pr_warn(PFX "No option given for '%s'\n", curr); return -EINVAL; } *val = simple_strtoul(option, &n, 0); if ((*n != '\0') || (*option == '\0')) { printk(KERN_WARNING PFX "Bad option given for '%s'\n", curr); pr_warn(PFX "Bad option given for '%s'\n", curr); return -EINVAL; } return 1; Loading Loading @@ -1877,8 +1873,7 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) } addr = simple_strtoul(curr, &n, 0); if ((*n != '\0') || (*curr == '\0')) { printk(KERN_WARNING PFX "Invalid hotmod address" " '%s'\n", curr); pr_warn(PFX "Invalid hotmod address '%s'\n", curr); break; } Loading Loading @@ -1921,9 +1916,7 @@ static int hotmod_handler(const char *val, struct kernel_param *kp) continue; rv = -EINVAL; printk(KERN_WARNING PFX "Invalid hotmod option '%s'\n", curr); pr_warn(PFX "Invalid hotmod option '%s'\n", curr); goto out; } Loading Loading @@ -2003,7 +1996,7 @@ static int hardcode_find_bmc(void) return -ENOMEM; info->addr_source = SI_HARDCODED; printk(KERN_INFO PFX "probing via hardcoded address\n"); pr_info(PFX "probing via hardcoded address\n"); if (!si_type[i] || strcmp(si_type[i], "kcs") == 0) { info->si_type = SI_KCS; Loading @@ -2012,8 +2005,7 @@ static int hardcode_find_bmc(void) } else if (strcmp(si_type[i], "bt") == 0) { info->si_type = SI_BT; } else { printk(KERN_WARNING PFX "Interface type specified " "for interface %d, was invalid: %s\n", pr_warn(PFX "Interface type specified for interface %d, was invalid: %s\n", i, si_type[i]); kfree(info); continue; Loading @@ -2030,9 +2022,8 @@ static int hardcode_find_bmc(void) info->io.addr_data = addrs[i]; info->io.addr_type = IPMI_MEM_ADDR_SPACE; } else { printk(KERN_WARNING PFX "Interface type specified " "for interface %d, but port and address were " "not set or set to zero.\n", i); pr_warn(PFX "Interface type specified for interface %d, but port and address were not set or set to zero.\n", i); kfree(info); continue; } Loading Loading @@ -2173,18 +2164,18 @@ static int try_init_spmi(struct SPMITable *spmi) int rv; if (spmi->IPMIlegacy != 1) { printk(KERN_INFO PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); pr_info(PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); return -ENODEV; } info = smi_info_alloc(); if (!info) { printk(KERN_ERR PFX "Could not allocate SI data (3)\n"); pr_err(PFX "Could not allocate SI data (3)\n"); return -ENOMEM; } info->addr_source = SI_SPMI; printk(KERN_INFO PFX "probing via SPMI\n"); pr_info(PFX "probing via SPMI\n"); /* Figure out the interface type. */ switch (spmi->InterfaceType) { Loading @@ -2201,7 +2192,7 @@ static int try_init_spmi(struct SPMITable *spmi) kfree(info); return -EIO; default: printk(KERN_INFO PFX "Unknown ACPI/SPMI SI type %d\n", pr_info(PFX "Unknown ACPI/SPMI SI type %d\n", spmi->InterfaceType); kfree(info); return -EIO; Loading Loading @@ -2238,7 +2229,7 @@ static int try_init_spmi(struct SPMITable *spmi) info->io.addr_type = IPMI_IO_ADDR_SPACE; } else { kfree(info); printk(KERN_WARNING PFX "Unknown ACPI I/O Address type\n"); pr_warn(PFX "Unknown ACPI I/O Address type\n"); return -EIO; } info->io.addr_data = spmi->addr.address; Loading Loading @@ -2356,12 +2347,12 @@ static void try_init_dmi(struct dmi_ipmi_data *ipmi_data) info = smi_info_alloc(); if (!info) { printk(KERN_ERR PFX "Could not allocate SI data\n"); pr_err(PFX "Could not allocate SI data\n"); return; } info->addr_source = SI_SMBIOS; printk(KERN_INFO PFX "probing via SMBIOS\n"); pr_info(PFX "probing via SMBIOS\n"); switch (ipmi_data->type) { case 0x01: /* KCS */ Loading Loading @@ -2391,7 +2382,7 @@ static void try_init_dmi(struct dmi_ipmi_data *ipmi_data) default: kfree(info); printk(KERN_WARNING PFX "Unknown SMBIOS I/O Address type: %d\n", pr_warn(PFX "Unknown SMBIOS I/O Address type: %d\n", ipmi_data->addr_space); return; } Loading Loading @@ -3141,9 +3132,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) rv = wait_for_msg_done(smi_info); if (rv) { printk(KERN_WARNING PFX "Error getting response from get" " global enables command, the event buffer is not" " enabled.\n"); pr_warn(PFX "Error getting response from get global enables command, the event buffer is not enabled.\n"); goto out; } Loading @@ -3154,8 +3143,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 || resp[1] != IPMI_GET_BMC_GLOBAL_ENABLES_CMD || resp[2] != 0) { printk(KERN_WARNING PFX "Invalid return from get global" " enables command, cannot enable the event buffer.\n"); pr_warn(PFX "Invalid return from get global enables command, cannot enable the event buffer.\n"); rv = -EINVAL; goto out; } Loading @@ -3173,9 +3161,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) rv = wait_for_msg_done(smi_info); if (rv) { printk(KERN_WARNING PFX "Error getting response from set" " global, enables command, the event buffer is not" " enabled.\n"); pr_warn(PFX "Error getting response from set global, enables command, the event buffer is not enabled.\n"); goto out; } Loading @@ -3185,8 +3171,7 @@ static int try_enable_event_buffer(struct smi_info *smi_info) if (resp_len < 3 || resp[0] != (IPMI_NETFN_APP_REQUEST | 1) << 2 || resp[1] != IPMI_SET_BMC_GLOBAL_ENABLES_CMD) { printk(KERN_WARNING PFX "Invalid return from get global," "enables command, not enable the event buffer.\n"); pr_warn(PFX "Invalid return from get global, enables command, not enable the event buffer.\n"); rv = -EINVAL; goto out; } Loading Loading @@ -3474,17 +3459,18 @@ static int add_smi(struct smi_info *new_smi) { int rv = 0; printk(KERN_INFO PFX "Adding %s-specified %s state machine", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type]); mutex_lock(&smi_infos_lock); if (!is_new_interface(new_smi)) { printk(KERN_CONT " duplicate interface\n"); pr_info(PFX "%s-specified %s state machine: duplicate\n", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type]); rv = -EBUSY; goto out_err; } printk(KERN_CONT "\n"); pr_info(PFX "Adding %s-specified %s state machine\n", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type]); /* So we know not to free it unless we have allocated one. */ new_smi->intf = NULL; Loading @@ -3504,9 +3490,7 @@ static int try_smi_init(struct smi_info *new_smi) int i; char *init_name = NULL; printk(KERN_INFO PFX "Trying %s-specified %s state" " machine at %s address 0x%lx, slave address 0x%x," " irq %d\n", pr_info(PFX "Trying %s-specified %s state machine at %s address 0x%lx, slave address 0x%x, irq %d\n", ipmi_addr_src_to_str(new_smi->addr_source), si_to_str[new_smi->si_type], addr_space_to_str[new_smi->io.addr_type], Loading Loading @@ -3555,8 +3539,7 @@ static int try_smi_init(struct smi_info *new_smi) /* Allocate the state machine's data and initialize it. */ new_smi->si_sm = kmalloc(new_smi->handlers->size(), GFP_KERNEL); if (!new_smi->si_sm) { printk(KERN_ERR PFX "Could not allocate state machine memory\n"); pr_err(PFX "Could not allocate state machine memory\n"); rv = -ENOMEM; goto out_err; } Loading @@ -3566,14 +3549,14 @@ static int try_smi_init(struct smi_info *new_smi) /* Now that we know the I/O size, we can set up the I/O. */ rv = new_smi->io_setup(new_smi); if (rv) { printk(KERN_ERR PFX "Could not set up I/O space\n"); dev_err(new_smi->dev, "Could not set up I/O space\n"); goto out_err; } /* Do low-level detection first. */ if (new_smi->handlers->detect(new_smi->si_sm)) { if (new_smi->addr_source) printk(KERN_INFO PFX "Interface detection failed\n"); dev_err(new_smi->dev, "Interface detection failed\n"); rv = -ENODEV; goto out_err; } Loading @@ -3585,8 +3568,7 @@ static int try_smi_init(struct smi_info *new_smi) rv = try_get_dev_id(new_smi); if (rv) { if (new_smi->addr_source) printk(KERN_INFO PFX "There appears to be no BMC" " at this location\n"); dev_err(new_smi->dev, "There appears to be no BMC at this location\n"); goto out_err; } Loading Loading @@ -3628,9 +3610,8 @@ static int try_smi_init(struct smi_info *new_smi) if (new_smi->pdev) { rv = platform_device_add(new_smi->pdev); if (rv) { printk(KERN_ERR PFX "Unable to register system interface device:" " %d\n", dev_err(new_smi->dev, "Unable to register system interface device: %d\n", rv); goto out_err; } Loading Loading @@ -3748,8 +3729,7 @@ static int init_ipmi_si(void) if (si_tryplatform) { rv = platform_driver_register(&ipmi_driver); if (rv) { printk(KERN_ERR PFX "Unable to register " "driver: %d\n", rv); pr_err(PFX "Unable to register driver: %d\n", rv); return rv; } } Loading @@ -3769,7 +3749,7 @@ static int init_ipmi_si(void) } } printk(KERN_INFO "IPMI System Interface driver.\n"); pr_info("IPMI System Interface driver.\n"); /* If the user gave us a device, they presumably want us to use it */ if (!hardcode_find_bmc()) Loading @@ -3779,8 +3759,7 @@ static int init_ipmi_si(void) if (si_trypci) { rv = pci_register_driver(&ipmi_pci_driver); if (rv) printk(KERN_ERR PFX "Unable to register " "PCI driver: %d\n", rv); pr_err(PFX "Unable to register PCI driver: %d\n", rv); else pci_registered = true; } Loading Loading @@ -3842,8 +3821,7 @@ static int init_ipmi_si(void) if (unload_when_empty && list_empty(&smi_infos)) { mutex_unlock(&smi_infos_lock); cleanup_ipmi_si(); printk(KERN_WARNING PFX "Unable to find any System Interface(s)\n"); pr_warn(PFX "Unable to find any System Interface(s)\n"); return -ENODEV; } else { mutex_unlock(&smi_infos_lock); Loading