* [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array
@ 2015-02-11 6:27 Neelesh Gupta
2015-02-11 6:27 ` [PATCH 2/2] opal: Add message notifier unregister function Neelesh Gupta
2015-02-11 10:53 ` [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array Anshuman Khandual
0 siblings, 2 replies; 6+ messages in thread
From: Neelesh Gupta @ 2015-02-11 6:27 UTC (permalink / raw)
To: mpe, linuxppc-dev, benh
Fixes the condition check of incoming message type which can
otherwise shoot beyond the message notifiers head array.
Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
arch/powerpc/platforms/powernv/opal.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index f10b9ec..2651e22 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -305,16 +305,12 @@ void opal_notifier_disable(void)
int opal_message_notifier_register(enum OpalMessageType msg_type,
struct notifier_block *nb)
{
- if (!nb) {
- pr_warning("%s: Invalid argument (%p)\n",
- __func__, nb);
- return -EINVAL;
- }
- if (msg_type > OPAL_MSG_TYPE_MAX) {
- pr_warning("%s: Invalid message type argument (%d)\n",
+ if (!nb || msg_type >= OPAL_MSG_TYPE_MAX) {
+ pr_warning("%s: Invalid arguments, msg_type:%d\n",
__func__, msg_type);
return -EINVAL;
}
+
return atomic_notifier_chain_register(
&opal_msg_notifier_head[msg_type], nb);
}
@@ -351,7 +347,7 @@ static void opal_handle_message(void)
type = be32_to_cpu(msg.msg_type);
/* Sanity check */
- if (type > OPAL_MSG_TYPE_MAX) {
+ if (type >= OPAL_MSG_TYPE_MAX) {
pr_warning("%s: Unknown message type: %u\n", __func__, type);
return;
}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] opal: Add message notifier unregister function
2015-02-11 6:27 [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array Neelesh Gupta
@ 2015-02-11 6:27 ` Neelesh Gupta
2015-02-11 10:57 ` Anshuman Khandual
2015-02-11 10:53 ` [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array Anshuman Khandual
1 sibling, 1 reply; 6+ messages in thread
From: Neelesh Gupta @ 2015-02-11 6:27 UTC (permalink / raw)
To: mpe, linuxppc-dev, benh
Provide an unregister interface for the opal message notifiers
to be called when not needed like during driver unload/remove.
Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
arch/powerpc/include/asm/opal.h | 2 ++
arch/powerpc/platforms/powernv/opal.c | 7 +++++++
2 files changed, 9 insertions(+)
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index eb95b67..70eb45f 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc/include/asm/opal.h
@@ -940,6 +940,8 @@ extern int opal_notifier_unregister(struct notifier_block *nb);
extern int opal_message_notifier_register(enum OpalMessageType msg_type,
struct notifier_block *nb);
+extern int opal_message_notifier_unregister(enum OpalMessageType msg_type,
+ struct notifier_block *nb);
extern void opal_notifier_enable(void);
extern void opal_notifier_disable(void);
extern void opal_notifier_update_evt(uint64_t evt_mask, uint64_t evt_val);
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 2651e22..6c108ce 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -315,6 +315,13 @@ int opal_message_notifier_register(enum OpalMessageType msg_type,
&opal_msg_notifier_head[msg_type], nb);
}
+int opal_message_notifier_unregister(enum OpalMessageType msg_type,
+ struct notifier_block *nb)
+{
+ return atomic_notifier_chain_unregister(
+ &opal_msg_notifier_head[msg_type], nb);
+}
+
static void opal_message_do_notify(uint32_t msg_type, void *msg)
{
/* notify subscribers */
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] opal: Add message notifier unregister function
2015-02-11 6:27 ` [PATCH 2/2] opal: Add message notifier unregister function Neelesh Gupta
@ 2015-02-11 10:57 ` Anshuman Khandual
2015-02-12 11:10 ` Neelesh Gupta
0 siblings, 1 reply; 6+ messages in thread
From: Anshuman Khandual @ 2015-02-11 10:57 UTC (permalink / raw)
To: Neelesh Gupta, mpe, linuxppc-dev, benh
On 02/11/2015 11:57 AM, Neelesh Gupta wrote:
> Provide an unregister interface for the opal message notifiers
> to be called when not needed like during driver unload/remove.
Why only for unload/remove, you can also use it in cases where you need
to abort because of any other error soon after successful registration
for an OPAL message.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] opal: Add message notifier unregister function
2015-02-11 10:57 ` Anshuman Khandual
@ 2015-02-12 11:10 ` Neelesh Gupta
0 siblings, 0 replies; 6+ messages in thread
From: Neelesh Gupta @ 2015-02-12 11:10 UTC (permalink / raw)
To: Anshuman Khandual, mpe, linuxppc-dev, benh
On 02/11/2015 04:27 PM, Anshuman Khandual wrote:
> On 02/11/2015 11:57 AM, Neelesh Gupta wrote:
>> Provide an unregister interface for the opal message notifiers
>> to be called when not needed like during driver unload/remove.
> Why only for unload/remove, you can also use it in cases where you need
> to abort because of any other error soon after successful registration
> for an OPAL message.
I didn't mean *only* driver unload/remove.. gave a simple use case of why do
we need this change.
Neelesh.
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array
2015-02-11 6:27 [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array Neelesh Gupta
2015-02-11 6:27 ` [PATCH 2/2] opal: Add message notifier unregister function Neelesh Gupta
@ 2015-02-11 10:53 ` Anshuman Khandual
1 sibling, 0 replies; 6+ messages in thread
From: Anshuman Khandual @ 2015-02-11 10:53 UTC (permalink / raw)
To: Neelesh Gupta, mpe, linuxppc-dev, benh
On 02/11/2015 11:57 AM, Neelesh Gupta wrote:
> Fixes the condition check of incoming message type which can
> otherwise shoot beyond the message notifiers head array.
>
> Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
> Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Reviewed-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] opal: Fix the overflow of message notifiers head array
@ 2015-02-10 17:14 Neelesh Gupta
2015-02-10 17:15 ` [PATCH 2/2] opal: Add message notifier unregister function Neelesh Gupta
0 siblings, 1 reply; 6+ messages in thread
From: Neelesh Gupta @ 2015-02-10 17:14 UTC (permalink / raw)
To: mpe, linuxppc-dev, benh
Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
arch/powerpc/platforms/powernv/opal.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index f10b9ec..2651e22 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -305,16 +305,12 @@ void opal_notifier_disable(void)
int opal_message_notifier_register(enum OpalMessageType msg_type,
struct notifier_block *nb)
{
- if (!nb) {
- pr_warning("%s: Invalid argument (%p)\n",
- __func__, nb);
- return -EINVAL;
- }
- if (msg_type > OPAL_MSG_TYPE_MAX) {
- pr_warning("%s: Invalid message type argument (%d)\n",
+ if (!nb || msg_type >= OPAL_MSG_TYPE_MAX) {
+ pr_warning("%s: Invalid arguments, msg_type:%d\n",
__func__, msg_type);
return -EINVAL;
}
+
return atomic_notifier_chain_register(
&opal_msg_notifier_head[msg_type], nb);
}
@@ -351,7 +347,7 @@ static void opal_handle_message(void)
type = be32_to_cpu(msg.msg_type);
/* Sanity check */
- if (type > OPAL_MSG_TYPE_MAX) {
+ if (type >= OPAL_MSG_TYPE_MAX) {
pr_warning("%s: Unknown message type: %u\n", __func__, type);
return;
}
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] opal: Add message notifier unregister function
2015-02-10 17:14 [PATCH " Neelesh Gupta
@ 2015-02-10 17:15 ` Neelesh Gupta
0 siblings, 0 replies; 6+ messages in thread
From: Neelesh Gupta @ 2015-02-10 17:15 UTC (permalink / raw)
To: mpe, linuxppc-dev, benh
Provide an unregister interface for the opal message notifiers
to be called when not needed like during driver unload/remove.
Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
arch/powerpc/include/asm/opal.h | 2 ++
arch/powerpc/platforms/powernv/opal.c | 7 +++++++
2 files changed, 9 insertions(+)
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index eb95b67..70eb45f 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc/include/asm/opal.h
@@ -940,6 +940,8 @@ extern int opal_notifier_unregister(struct notifier_block *nb);
extern int opal_message_notifier_register(enum OpalMessageType msg_type,
struct notifier_block *nb);
+extern int opal_message_notifier_unregister(enum OpalMessageType msg_type,
+ struct notifier_block *nb);
extern void opal_notifier_enable(void);
extern void opal_notifier_disable(void);
extern void opal_notifier_update_evt(uint64_t evt_mask, uint64_t evt_val);
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 2651e22..6c108ce 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -315,6 +315,13 @@ int opal_message_notifier_register(enum OpalMessageType msg_type,
&opal_msg_notifier_head[msg_type], nb);
}
+int opal_message_notifier_unregister(enum OpalMessageType msg_type,
+ struct notifier_block *nb)
+{
+ return atomic_notifier_chain_unregister(
+ &opal_msg_notifier_head[msg_type], nb);
+}
+
static void opal_message_do_notify(uint32_t msg_type, void *msg)
{
/* notify subscribers */
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-02-12 11:13 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-11 6:27 [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array Neelesh Gupta
2015-02-11 6:27 ` [PATCH 2/2] opal: Add message notifier unregister function Neelesh Gupta
2015-02-11 10:57 ` Anshuman Khandual
2015-02-12 11:10 ` Neelesh Gupta
2015-02-11 10:53 ` [PATCH v2 1/2] opal: Fix the overflow of message notifiers head array Anshuman Khandual
-- strict thread matches above, loose matches on Subject: below --
2015-02-10 17:14 [PATCH " Neelesh Gupta
2015-02-10 17:15 ` [PATCH 2/2] opal: Add message notifier unregister function Neelesh Gupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).