1. 28 9月, 2017 11 次提交
  2. 22 8月, 2017 1 次提交
  3. 20 6月, 2017 1 次提交
  4. 10 6月, 2017 1 次提交
  5. 20 4月, 2017 1 次提交
    • D
      Annotate hardware config module parameters in drivers/char/ipmi/ · 684497bf
      David Howells 提交于
      When the kernel is running in secure boot mode, we lock down the kernel to
      prevent userspace from modifying the running kernel image.  Whilst this
      includes prohibiting access to things like /dev/mem, it must also prevent
      access by means of configuring driver modules in such a way as to cause a
      device to access or modify the kernel image.
      
      To this end, annotate module_param* statements that refer to hardware
      configuration and indicate for future reference what type of parameter they
      specify.  The parameter parser in the core sees this information and can
      skip such parameters with an error message if the kernel is locked down.
      The module initialisation then runs as normal, but just sees whatever the
      default values for those parameters is.
      
      Note that we do still need to do the module initialisation because some
      drivers have viable defaults set in case parameters aren't specified and
      some drivers support automatic configuration (e.g. PNP or PCI) in addition
      to manually coded parameters.
      
      This patch annotates drivers in drivers/char/ipmi/.
      Suggested-by: NAlan Cox <gnomes@lxorguk.ukuu.org.uk>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Reviewed-by: NCorey Minyard <cminyard@mvista.com>
      cc: openipmi-developer@lists.sourceforge.net
      684497bf
  6. 11 4月, 2017 1 次提交
    • T
      ipmi_si: use smi_num for init_name · 3f724c40
      Tony Camuso 提交于
      Commit 1abf71ee moved the creation of new_smi->dev to earlier in the init
      sequence in order to provide infrastructure for log printing.
      
      However, the init_name was created with a hard-coded value of zero. This
      presents a problem in systems with more than one interface, producing a
      call trace in dmesg.
      
      To correct the problem, simply use smi_num instead of the hard-coded
      value of zero.
      
      Tested on a lenovo x3950.
      Signed-off-by: NTony Camuso <tcamuso@redhat.com>
      
      There was actually a more general problem, the platform device wasn't
      being set correctly, either, and there was a possible (though extremely
      unlikely) race on smi_num.  Add locks to clean up the race and use the
      proper value for the platform device, too.
      
      Tested on qemu in various configurations.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      3f724c40
  7. 25 11月, 2016 3 次提交
  8. 08 11月, 2016 1 次提交
  9. 27 7月, 2016 1 次提交
    • T
      ipmi: remove trydefaults parameter and default init · b07b58a3
      Tony Camuso 提交于
      Parameter trydefaults=1 causes the ipmi_init to initialize ipmi through
      the legacy port io space that was designated for ipmi. Architectures
      that do not map legacy port io can panic when trydefaults=1.
      
      Rather than implement build-time conditional exceptions for each
      architecture that does not map legacy port io, we have removed legacy
      port io from the driver.
      
      Parameter 'trydefaults' has been removed. Attempts to use it hereafter
      will evoke the "Unknown symbol in module, or unknown parameter" message.
      
      The patch was built against a number of architectures and tested for
      regressions and functionality on x86_64 and ARM64.
      Signed-off-by: NTony Camuso <tcamuso@redhat.com>
      
      Removed the config entry and the address source entry for default,
      since neither were used any more.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      b07b58a3
  10. 17 5月, 2016 2 次提交
    • C
      IPMI: reserve memio regions separately · 57a38f13
      Corey Minyard 提交于
      Commit d61a3ead ("[PATCH] IPMI: reserve I/O ports separately")
      changed the way I/O ports were reserved and includes this comment in
      log:
      
       Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
       controller.  This causes problems when trying to register the entire I/O
       region.  Therefore we must register each I/O port separately.
      
      There is a similar problem with memio regions on an arm64 platform
      (AMD Seattle). Where I see:
      
       ipmi message handler version 39.2
       ipmi_si AMDI0300:00: probing via device tree
       ipmi_si AMDI0300:00: ipmi_si: probing via ACPI
       ipmi_si AMDI0300:00: [mem 0xe0010000] regsize 1 spacing 4 irq 23
       ipmi_si: Adding ACPI-specified kcs state machine
       IPMI System Interface driver.
       ipmi_si: Trying ACPI-specified kcs state machine at mem \
                address 0xe0010000, slave address 0x0, irq 23
       ipmi_si: Could not set up I/O space
      
      The problem is that the ACPI core registers disjoint regions for the
      platform device:
      
      e0010000-e0010000 : AMDI0300:00
      e0010004-e0010004 : AMDI0300:00
      
      and the ipmi_si driver tries to register one region e0010000-e0010004.
      
      Based on a patch from Mark Salter <msalter@redhat.com>, who also wrote
      all the above text.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Tested-by: NMark Salter <msalter@redhat.com>
      57a38f13
    • C
      ipmi: Fix some minor coding style issues · 76824852
      Corey Minyard 提交于
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      76824852
  11. 18 3月, 2016 3 次提交
  12. 04 2月, 2016 1 次提交
    • T
      ipmi: put acpi.h with the other headers · 58c9d61f
      Tony Camuso 提交于
      Enclosing '#include <linux/acpi.h>' within '#ifdef CONFIG_ACPI' is
      unnecessary, since it has its own conditional compile for CONFIG_ACPI.
      
      Commit 0fbcf4af ("ipmi: Convert the IPMI SI ACPI handling to a
      platform device") exposed this as a problem for platforms that do not
      support ACPI when it introduced a call to ACPI_PTR() macro outside of
      the CONFIG_ACPI conditional compile. This would have been perfectly
      acceptable if acpi.h were not conditionally excluded for the non-acpi
      platform, because the conditional compile within acpi.h defines
      ACPI_PTR() to return NULL when compiled for non acpi platforms.
      Signed-off-by: NTony Camuso <tcamuso@redhat.com>
      
      Fixed commit reference in header to conform to standard.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      58c9d61f
  13. 13 1月, 2016 2 次提交
    • D
      ipmi: Remove unnecessary pci_disable_device. · bb0dcebe
      Dave Jones 提交于
      We call cleanup_one_si from ipmi_pci_remove, which calls ->addr_source_cleanup,
       which gets set to point to ipmi_pci_cleanup, which does a pci_disable_device.
      
      On return from this, we do a second pci_disable_device, which
      results in the trace below.
      
      ipmi_si 0000:00:16.0: disabling already-disabled device
      Call Trace:
       [<ffffffff818ce54c>] dump_stack+0x45/0x57
       [<ffffffff810525f7>] warn_slowpath_common+0x97/0xe0
       [<ffffffff810526f6>] warn_slowpath_fmt+0x46/0x50
       [<ffffffff81497ca1>] pci_disable_device+0xb1/0xc0
       [<ffffffffa00851a5>] ipmi_pci_remove+0x25/0x30 [ipmi_si]
       [<ffffffff8149a696>] pci_device_remove+0x46/0xc0
       [<ffffffff8156801f>] __device_release_driver+0x7f/0xf0
       [<ffffffff81568978>] driver_detach+0xb8/0xc0
       [<ffffffff81567e50>] bus_remove_driver+0x50/0xa0
       [<ffffffff8156914e>] driver_unregister+0x2e/0x60
       [<ffffffff8149a3e5>] pci_unregister_driver+0x25/0x90
       [<ffffffffa0085804>] cleanup_ipmi_si+0xd4/0xf0 [ipmi_si]
       [<ffffffff810c727a>] SyS_delete_module+0x12a/0x200
       [<ffffffff818d4d72>] system_call_fastpath+0x12/0x17
      Signed-off-by: NDave Jones <dsj@fb.com>
      bb0dcebe
    • L
      ipmi: constify some struct and char arrays · 99ee6735
      LABBE Corentin 提交于
      Lots of char arrays could be set as const since they contain only literal
      char arrays.
      We could in the same time make const some struct members who are pointer
      to those const char arrays.
      Signed-off-by: NLABBE Corentin <clabbe.montjoie@gmail.com>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      99ee6735
  14. 10 12月, 2015 1 次提交
    • J
      ipmi: move timer init to before irq is setup · 27f972d3
      Jan Stancek 提交于
      We encountered a panic on boot in ipmi_si on a dell per320 due to an
      uninitialized timer as follows.
      
      static int smi_start_processing(void       *send_info,
                                      ipmi_smi_t intf)
      {
              /* Try to claim any interrupts. */
              if (new_smi->irq_setup)
                      new_smi->irq_setup(new_smi);
      
       --> IRQ arrives here and irq handler tries to modify uninitialized timer
      
          which triggers BUG_ON(!timer->function) in __mod_timer().
      
       Call Trace:
         <IRQ>
         [<ffffffffa0532617>] start_new_msg+0x47/0x80 [ipmi_si]
         [<ffffffffa053269e>] start_check_enables+0x4e/0x60 [ipmi_si]
         [<ffffffffa0532bd8>] smi_event_handler+0x1e8/0x640 [ipmi_si]
         [<ffffffff810f5584>] ? __rcu_process_callbacks+0x54/0x350
         [<ffffffffa053327c>] si_irq_handler+0x3c/0x60 [ipmi_si]
         [<ffffffff810efaf0>] handle_IRQ_event+0x60/0x170
         [<ffffffff810f245e>] handle_edge_irq+0xde/0x180
         [<ffffffff8100fc59>] handle_irq+0x49/0xa0
         [<ffffffff8154643c>] do_IRQ+0x6c/0xf0
         [<ffffffff8100ba53>] ret_from_intr+0x0/0x11
      
              /* Set up the timer that drives the interface. */
              setup_timer(&new_smi->si_timer, smi_timeout, (long)new_smi);
      
      The following patch fixes the problem.
      
      To: Openipmi-developer@lists.sourceforge.net
      To: Corey Minyard <minyard@acm.org>
      CC: linux-kernel@vger.kernel.org
      Signed-off-by: NJan Stancek <jstancek@redhat.com>
      Signed-off-by: NTony Camuso <tcamuso@redhat.com>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Cc: stable@vger.kernel.org # Applies cleanly to 3.10-, needs small rework before
      27f972d3
  15. 16 11月, 2015 3 次提交
  16. 04 9月, 2015 7 次提交