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-kernel@vger.kernel.org, stable@vger.kernel.org,
	linux-acpi@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net
Subject: [PATCH 00/13] ACPI/IPMI: Fix several issues in the current codes
Date: Tue, 23 Jul 2013 16:08:32 +0800	[thread overview]
Message-ID: <cover.1374566394.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 05].

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-05] 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 06] is also a bug-fix patch.
           The drivers/acpi/osl.c part can be back ported to the kernels
           whose version > 2.6.14.  This can be confirmed with:
           # git tag --contains 4be44fcd
           The drivers/acpi/acpi_ipmi.c part can be applied on top of
           [PATCH 01-05].
[PATCH 07] is a tuning patch for acpi_ipmi.c.
[PATCH 08-10] are cleanup patches for acpi_ipmi.c.
[PATCH 11] is a cleanup patch not for acpi_ipmi.c.
[PATCH 12-13] are test patches.
              [PATCH 12] may be accepted by upstream kernel as a useful
                         facility to test the loading/unloading of the
                         modules.
              [PATCH 13] should not be merged by any published kernel as it
                         is a driver for a pseudo device with a PnP ID that
                         does not exist in the real machines.

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 (13):
  ACPI/IPMI: Fix potential response buffer overflow
  ACPI/IPMI: Fix atomic context requirement of ipmi_msg_handler()
  ACPI/IPMI: Fix race caused by the unprotected 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 operation region handlers
  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
  Testing: Add module load/unload test suite
  ACPI/IPMI: Add IPMI operation region test device driver

 drivers/acpi/Kconfig                          |   71 +++-
 drivers/acpi/Makefile                         |    1 +
 drivers/acpi/acpi_ipmi.c                      |  513 +++++++++++++++----------
 drivers/acpi/ipmi_test.c                      |  254 ++++++++++++
 drivers/acpi/osl.c                            |  224 +++++++++++
 include/acpi/acpi_bus.h                       |    5 +
 tools/testing/module-unloading/endless_cat.sh |   32 ++
 tools/testing/module-unloading/endless_mod.sh |   81 ++++
 8 files changed, 977 insertions(+), 204 deletions(-)
 create mode 100644 drivers/acpi/ipmi_test.c
 create mode 100755 tools/testing/module-unloading/endless_cat.sh
 create mode 100755 tools/testing/module-unloading/endless_mod.sh

-- 
1.7.10

WARNING: multiple messages have this Message-ID (diff)
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-kernel@vger.kernel.org>,
	<stable@vger.kernel.org>,
	linux-acpi@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net
Subject: [PATCH 00/13] ACPI/IPMI: Fix several issues in the current codes
Date: Tue, 23 Jul 2013 16:08:32 +0800	[thread overview]
Message-ID: <cover.1374566394.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 05].

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-05] 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 06] is also a bug-fix patch.
           The drivers/acpi/osl.c part can be back ported to the kernels
           whose version > 2.6.14.  This can be confirmed with:
           # git tag --contains 4be44fcd
           The drivers/acpi/acpi_ipmi.c part can be applied on top of
           [PATCH 01-05].
[PATCH 07] is a tuning patch for acpi_ipmi.c.
[PATCH 08-10] are cleanup patches for acpi_ipmi.c.
[PATCH 11] is a cleanup patch not for acpi_ipmi.c.
[PATCH 12-13] are test patches.
              [PATCH 12] may be accepted by upstream kernel as a useful
                         facility to test the loading/unloading of the
                         modules.
              [PATCH 13] should not be merged by any published kernel as it
                         is a driver for a pseudo device with a PnP ID that
                         does not exist in the real machines.

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 (13):
  ACPI/IPMI: Fix potential response buffer overflow
  ACPI/IPMI: Fix atomic context requirement of ipmi_msg_handler()
  ACPI/IPMI: Fix race caused by the unprotected 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 operation region handlers
  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
  Testing: Add module load/unload test suite
  ACPI/IPMI: Add IPMI operation region test device driver

 drivers/acpi/Kconfig                          |   71 +++-
 drivers/acpi/Makefile                         |    1 +
 drivers/acpi/acpi_ipmi.c                      |  513 +++++++++++++++----------
 drivers/acpi/ipmi_test.c                      |  254 ++++++++++++
 drivers/acpi/osl.c                            |  224 +++++++++++
 include/acpi/acpi_bus.h                       |    5 +
 tools/testing/module-unloading/endless_cat.sh |   32 ++
 tools/testing/module-unloading/endless_mod.sh |   81 ++++
 8 files changed, 977 insertions(+), 204 deletions(-)
 create mode 100644 drivers/acpi/ipmi_test.c
 create mode 100755 tools/testing/module-unloading/endless_cat.sh
 create mode 100755 tools/testing/module-unloading/endless_mod.sh

-- 
1.7.10


       reply	other threads:[~2013-07-23  8:08 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 ` Lv Zheng [this message]
2013-07-23  8:08   ` [PATCH 00/13] ACPI/IPMI: Fix several issues in the current codes 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 ` [PATCH v2 00/12] ACPI/IPMI: Fix several issues in the current codes Lv Zheng
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.1374566394.git.lv.zheng@intel.com \
    --to=lv.zheng@intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=minyard@acm.org \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=rafael.j.wysocki@intel.com \
    --cc=stable@vger.kernel.org \
    --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.