All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Len Brown <len.brown@intel.com>, Corey Minyard <minyard@acm.org>,
	Zhao Yakui <yakui.zhao@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>,
	linux-acpi@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net
Subject: [PATCH v2 00/12] ACPI/IPMI: Fix several issues in the current codes
Date: Fri, 13 Sep 2013 13:13:01 +0800	[thread overview]
Message-ID: <cover.1379048860.git.lv.zheng@intel.com> (raw)
In-Reply-To: <cover.1370652213.git.lv.zheng@intel.com>

This patchset tries to fix the following kernel bug:
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=46741
This is fixed by [PATCH 06].

The bug shows IPMI operation region may appear in a device not under the
IPMI system interface device's scope, thus it's required to install the
ACPI IPMI operation region handler from the root of the ACPI namespace.

The original acpi_ipmi implementation includes several issues that break
the test process.  This patchset also includes a re-design of acpi_ipmi
module to make the test possible.
 
[PATCH 01-06] are bug-fix patches that can be applied to the kernels whose
              version is > 2.6.38.  This can be confirmed with:
              # git tag --contains e92b297c
[PATCH 07] is a tuning patch for acpi_ipmi.c.
[PATCH 08-12] are cleanup patches for acpi_ipmi.c and its Kconfig item.

v2.0
PATCH 03: Uses timeout mechanism offerred by ipmi_si.
PATCH 05: Uses kref instead of atomic_t and adds "dead" flag to kill the
          atomic_read codes in ipmi_flush_tx_msg().
PATCH 07: Uses kref instead of atomic_t.

This patchset has passed the test around a fake device accessing IPMI
operation region fields on an IPMI capable platform.  A stress test of
module(acpi_ipmi) load/unload has been performed on such platform.  No
races can be found and the IPMI operation region handler is functioning
now.  It is not possible to test module(ipmi_si) load/unload as it can't be
unloaded due to its' transfer flushing implementation.

Lv Zheng (12):
  ACPI/IPMI: Fix atomic context requirement of ipmi_msg_handler()
  ACPI/IPMI: Fix potential response buffer overflow
  ACPI/IPMI: Fix race caused by the unprotected ACPI IPMI transfers
  ACPI/IPMI: Fix race caused by the timed out ACPI IPMI transfers
  ACPI/IPMI: Fix race caused by the unprotected ACPI IPMI user
  ACPI/IPMI: Fix issue caused by the per-device registration of the
    IPMI operation region handler
  ACPI/IPMI: Add reference counting for ACPI IPMI transfers
  ACPI/IPMI: Cleanup several acpi_ipmi_device members
  ACPI/IPMI: Cleanup some initialization codes
  ACPI/IPMI: Cleanup some inclusion codes
  ACPI/IPMI: Cleanup some Kconfig codes
  ACPI/IPMI: Cleanup coding styles

 drivers/acpi/Kconfig     |    3 +-
 drivers/acpi/acpi_ipmi.c |  594 ++++++++++++++++++++++++++++------------------
 2 files changed, 367 insertions(+), 230 deletions(-)

-- 
1.7.10


  parent reply	other threads:[~2013-09-13  5:13 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1370652213.git.lv.zheng@intel.com>
2013-07-23  8:08 ` [PATCH 00/13] ACPI/IPMI: Fix several issues in the current codes Lv Zheng
2013-07-23  8:08   ` Lv Zheng
2013-07-23  8:08   ` [PATCH 01/13] ACPI/IPMI: Fix potential response buffer overflow Lv Zheng
2013-07-23  8:08     ` Lv Zheng
2013-07-23 14:54     ` Greg KH
2013-07-24  0:21       ` Zheng, Lv
2013-07-24  0:44       ` Zheng, Lv
2013-07-23  8:09   ` [PATCH 02/13] ACPI/IPMI: Fix atomic context requirement of ipmi_msg_handler() Lv Zheng
2013-07-23  8:09     ` Lv Zheng
2013-07-23  8:09   ` [PATCH 03/13] ACPI/IPMI: Fix race caused by the unprotected ACPI IPMI transfers Lv Zheng
2013-07-23  8:09     ` Lv Zheng
2013-07-24 23:38     ` Rafael J. Wysocki
2013-07-25  3:09       ` Zheng, Lv
2013-07-25  3:09         ` Zheng, Lv
2013-07-25 12:06         ` Rafael J. Wysocki
2013-07-25 18:12           ` Corey Minyard
2013-07-25 19:32             ` Rafael J. Wysocki
2013-07-26  0:18               ` Zheng, Lv
2013-07-26  0:18                 ` Zheng, Lv
2013-07-26  0:16             ` Zheng, Lv
2013-07-26  0:16               ` Zheng, Lv
2013-07-26  0:48               ` Corey Minyard
2013-07-26  0:48                 ` Corey Minyard
2013-07-26  1:30                 ` Zheng, Lv
2013-07-26  1:30                   ` Zheng, Lv
2013-07-26  0:09           ` Zheng, Lv
2013-07-26  0:09             ` Zheng, Lv
2013-07-23  8:09   ` [PATCH 04/13] ACPI/IPMI: Fix race caused by the unprotected ACPI IPMI user Lv Zheng
2013-07-23  8:09     ` Lv Zheng
2013-07-25 21:59     ` Rafael J. Wysocki
2013-07-26  1:17       ` Zheng, Lv
2013-07-26  1:17         ` Zheng, Lv
2013-07-23  8:09   ` [PATCH 05/13] ACPI/IPMI: Fix issue caused by the per-device registration of the IPMI operation region handler Lv Zheng
2013-07-23  8:09     ` Lv Zheng
2013-07-23  8:09   ` [PATCH 06/13] ACPI/IPMI: Add reference counting for ACPI operation region handlers Lv Zheng
2013-07-23  8:09     ` Lv Zheng
2013-07-25 20:27     ` Rafael J. Wysocki
2013-07-26  0:47       ` Zheng, Lv
2013-07-26  0:47         ` Zheng, Lv
2013-07-26  8:09         ` Zheng, Lv
2013-07-26  8:09           ` Zheng, Lv
2013-07-26 14:00         ` Rafael J. Wysocki
2013-07-29  1:43           ` Zheng, Lv
2013-07-29  1:43             ` Zheng, Lv
2013-07-25 21:29     ` Rafael J. Wysocki
2013-07-26  1:54       ` Zheng, Lv
2013-07-26  1:54         ` Zheng, Lv
2013-07-26  8:15         ` Zheng, Lv
2013-07-26  8:15           ` Zheng, Lv
2013-07-26 14:49         ` Rafael J. Wysocki
2013-07-29  1:56           ` Zheng, Lv
2013-07-29  1:56             ` Zheng, Lv
2013-07-23  8:09   ` [PATCH 07/13] ACPI/IPMI: Add reference counting for ACPI IPMI transfers Lv Zheng
2013-07-23  8:09     ` Lv Zheng
2013-07-25 22:23     ` Rafael J. Wysocki
2013-07-26  1:21       ` Zheng, Lv
2013-07-26  1:21         ` Zheng, Lv
2013-07-26 13:41         ` Rafael J. Wysocki
2013-07-23  8:10   ` [PATCH 08/13] ACPI/IPMI: Cleanup several acpi_ipmi_device members Lv Zheng
2013-07-23  8:10     ` Lv Zheng
2013-07-25 22:25     ` Rafael J. Wysocki
2013-07-26  1:25       ` Zheng, Lv
2013-07-26  1:25         ` Zheng, Lv
2013-07-26 13:38         ` Rafael J. Wysocki
2013-07-29  1:12           ` Zheng, Lv
2013-07-29  1:12             ` Zheng, Lv
2013-07-23  8:10   ` [PATCH 09/13] ACPI/IPMI: Cleanup some initialization codes Lv Zheng
2013-07-23  8:10     ` Lv Zheng
2013-07-23  8:10   ` [PATCH 10/13] ACPI/IPMI: Cleanup some inclusion codes Lv Zheng
2013-07-23  8:10     ` Lv Zheng
2013-07-23  8:10   ` [PATCH 11/13] ACPI/IPMI: Cleanup some Kconfig codes Lv Zheng
2013-07-23  8:10     ` Lv Zheng
2013-07-23  8:10   ` [PATCH 12/13] Testing: Add module load/unload test suite Lv Zheng
2013-07-23  8:10     ` Lv Zheng
2013-07-23  8:10   ` [PATCH 13/13] ACPI/IPMI: Add IPMI operation region test device driver Lv Zheng
2013-07-23  8:10     ` Lv Zheng
2013-09-13  5:13 ` Lv Zheng [this message]
2013-09-13  5:13   ` [PATCH v2 01/12] ACPI/IPMI: Fix atomic context requirement of ipmi_msg_handler() Lv Zheng
2013-09-13  5:13   ` [PATCH v2 02/12] ACPI/IPMI: Fix potential response buffer overflow Lv Zheng
2013-09-13  5:13   ` [PATCH v2 03/12] ACPI/IPMI: Fix race caused by the unprotected ACPI IPMI transfers Lv Zheng
2013-09-13  5:13   ` [PATCH v2 04/12] ACPI/IPMI: Fix race caused by the timed out " Lv Zheng
2013-09-13  5:13   ` [PATCH v2 05/12] ACPI/IPMI: Fix race caused by the unprotected ACPI IPMI user Lv Zheng
2013-09-13  5:14   ` [PATCH v2 06/12] ACPI/IPMI: Fix issue caused by the per-device registration of the IPMI operation region handler Lv Zheng
2013-09-13  5:14   ` [PATCH v2 07/12] ACPI/IPMI: Add reference counting for ACPI IPMI transfers Lv Zheng
2013-09-13  5:14   ` [PATCH v2 08/12] ACPI/IPMI: Cleanup several acpi_ipmi_device members Lv Zheng
2013-09-13  5:14   ` [PATCH v2 09/12] ACPI/IPMI: Cleanup some initialization codes Lv Zheng
2013-09-13  5:14   ` [PATCH v2 10/12] ACPI/IPMI: Cleanup some inclusion codes Lv Zheng
2013-09-13  5:14   ` [PATCH v2 11/12] ACPI/IPMI: Cleanup some Kconfig codes Lv Zheng
2013-09-13  5:15   ` [PATCH v2 12/12] ACPI/IPMI: Cleanup coding styles Lv Zheng
2013-09-25 17:54   ` [PATCH v2 00/12] ACPI/IPMI: Fix several issues in the current codes Rafael J. Wysocki
2013-09-27  7:44     ` Zheng, Lv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1379048860.git.lv.zheng@intel.com \
    --to=lv.zheng@intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=minyard@acm.org \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=rafael.j.wysocki@intel.com \
    --cc=yakui.zhao@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.