]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Merge tag 'for-linus-4.8' of git://git.code.sf.net/p/openipmi/linux-ipmi
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 27 Jul 2016 20:46:07 +0000 (13:46 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 27 Jul 2016 20:46:07 +0000 (13:46 -0700)
Pull IPMI updates from Corey Minyard:
 "Remove some old cruft that was disabled by default a long time ago.

  No modern hardware should need this, and anybody who really doesn't
  have something to automatically detect IPMI can add the device by hand
  on the module commandline or hot add it"

* tag 'for-linus-4.8' of git://git.code.sf.net/p/openipmi/linux-ipmi:
  ipmi: remove trydefaults parameter and default init

drivers/char/ipmi/Kconfig
drivers/char/ipmi/ipmi_msghandler.c
drivers/char/ipmi/ipmi_si_intf.c
include/linux/ipmi.h

index 6ed9e9fe523394fc2c788ef091a9a30cd3776299..5a9350b1069a3495b2d1e4d116fcb2d780bbd9d2 100644 (file)
@@ -50,18 +50,6 @@ config IPMI_SI
         Currently, only KCS and SMIC are supported.  If
         you are using IPMI, you should probably say "y" here.
 
-config IPMI_SI_PROBE_DEFAULTS
-       bool 'Probe for all possible IPMI system interfaces by default'
-       default n
-       depends on IPMI_SI
-       help
-        Modern systems will usually expose IPMI interfaces via a discoverable
-        firmware mechanism such as ACPI or DMI. Older systems do not, and so
-        the driver is forced to probe hardware manually. This may cause boot
-        delays. Say "n" here to disable this manual probing. IPMI will then
-        only be available on older systems if the "ipmi_si_intf.trydefaults=1"
-        boot argument is passed.
-
 config IPMI_SSIF
        tristate 'IPMI SMBus handler (SSIF)'
        select I2C
index 44b1bd6baa38b20db8e93e058a1312c255482990..d8619998cfb57ffffa9fa29e80498072d390db86 100644 (file)
@@ -474,12 +474,12 @@ static DEFINE_MUTEX(smi_watchers_mutex);
 
 static const char * const addr_src_to_str[] = {
        "invalid", "hotmod", "hardcoded", "SPMI", "ACPI", "SMBIOS", "PCI",
-       "device-tree", "default"
+       "device-tree"
 };
 
 const char *ipmi_addr_src_to_str(enum ipmi_addr_src src)
 {
-       if (src > SI_DEFAULT)
+       if (src >= SI_LAST)
                src = 0; /* Invalid */
        return addr_src_to_str[src];
 }
index 7b1c412b40a29ab27e46354f9894361b19e01b24..a112c0146012e2ba1fb58b54be59d758d0349108 100644 (file)
@@ -1322,7 +1322,6 @@ static bool          si_tryplatform = true;
 #ifdef CONFIG_PCI
 static bool          si_trypci = true;
 #endif
-static bool          si_trydefaults = IS_ENABLED(CONFIG_IPMI_SI_PROBE_DEFAULTS);
 static char          *si_type[SI_MAX_PARMS];
 #define MAX_SI_TYPE_STR 30
 static char          si_type_str[MAX_SI_TYPE_STR];
@@ -1371,10 +1370,6 @@ module_param_named(trypci, si_trypci, bool, 0);
 MODULE_PARM_DESC(trypci, "Setting this to zero will disable the"
                 " default scan of the interfaces identified via pci");
 #endif
-module_param_named(trydefaults, si_trydefaults, bool, 0);
-MODULE_PARM_DESC(trydefaults, "Setting this to 'false' will disable the"
-                " default scan of the KCS and SMIC interface at the standard"
-                " address");
 module_param_string(type, si_type_str, MAX_SI_TYPE_STR, 0);
 MODULE_PARM_DESC(type, "Defines the type of each interface, each"
                 " interface separated by commas.  The types are 'kcs',"
@@ -3461,62 +3456,6 @@ static inline void wait_for_timer_and_thread(struct smi_info *smi_info)
                del_timer_sync(&smi_info->si_timer);
 }
 
-static const struct ipmi_default_vals
-{
-       const int type;
-       const int port;
-} ipmi_defaults[] =
-{
-       { .type = SI_KCS, .port = 0xca2 },
-       { .type = SI_SMIC, .port = 0xca9 },
-       { .type = SI_BT, .port = 0xe4 },
-       { .port = 0 }
-};
-
-static void default_find_bmc(void)
-{
-       struct smi_info *info;
-       int             i;
-
-       for (i = 0; ; i++) {
-               if (!ipmi_defaults[i].port)
-                       break;
-#ifdef CONFIG_PPC
-               if (check_legacy_ioport(ipmi_defaults[i].port))
-                       continue;
-#endif
-               info = smi_info_alloc();
-               if (!info)
-                       return;
-
-               info->addr_source = SI_DEFAULT;
-
-               info->si_type = ipmi_defaults[i].type;
-               info->io_setup = port_setup;
-               info->io.addr_data = ipmi_defaults[i].port;
-               info->io.addr_type = IPMI_IO_ADDR_SPACE;
-
-               info->io.addr = NULL;
-               info->io.regspacing = DEFAULT_REGSPACING;
-               info->io.regsize = DEFAULT_REGSPACING;
-               info->io.regshift = 0;
-
-               if (add_smi(info) == 0) {
-                       if ((try_smi_init(info)) == 0) {
-                               /* Found one... */
-                               printk(KERN_INFO PFX "Found default %s"
-                               " state machine at %s address 0x%lx\n",
-                               si_to_str[info->si_type],
-                               addr_space_to_str[info->io.addr_type],
-                               info->io.addr_data);
-                       } else
-                               cleanup_one_si(info);
-               } else {
-                       kfree(info);
-               }
-       }
-}
-
 static int is_new_interface(struct smi_info *info)
 {
        struct smi_info *e;
@@ -3844,8 +3783,6 @@ static int init_ipmi_si(void)
 #ifdef CONFIG_PARISC
        register_parisc_driver(&ipmi_parisc_driver);
        parisc_registered = true;
-       /* poking PC IO addresses will crash machine, don't do it */
-       si_trydefaults = 0;
 #endif
 
        /* We prefer devices with interrupts, but in the case of a machine
@@ -3885,16 +3822,6 @@ static int init_ipmi_si(void)
        if (type)
                return 0;
 
-       if (si_trydefaults) {
-               mutex_lock(&smi_infos_lock);
-               if (list_empty(&smi_infos)) {
-                       /* No BMC was found, try defaults. */
-                       mutex_unlock(&smi_infos_lock);
-                       default_find_bmc();
-               } else
-                       mutex_unlock(&smi_infos_lock);
-       }
-
        mutex_lock(&smi_infos_lock);
        if (unload_when_empty && list_empty(&smi_infos)) {
                mutex_unlock(&smi_infos_lock);
index 838dbfa3c33111914ec6e7386ee96aeae24d1270..78c5d5ae385740f38086ceaa5babf63baef76877 100644 (file)
@@ -277,7 +277,7 @@ int ipmi_validate_addr(struct ipmi_addr *addr, int len);
  */
 enum ipmi_addr_src {
        SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS,
-       SI_PCI, SI_DEVICETREE, SI_DEFAULT
+       SI_PCI, SI_DEVICETREE, SI_LAST
 };
 const char *ipmi_addr_src_to_str(enum ipmi_addr_src src);