From: Alex Williamson <alex_williamson@hp.com>
To: linux-ia64@vger.kernel.org
Subject: [PATCH] Update to CMC/CPE polling
Date: Tue, 05 Aug 2003 16:13:30 +0000 [thread overview]
Message-ID: <marc-linux-ia64-106010036115145@msgid-missing> (raw)
[-- Attachment #1: Type: text/plain, Size: 358 bytes --]
Based on the feedback from Tony, here's the patch that flips
around the clearing of cmc_polling_enabled. This is based on
what's currently in to-linus-2.5, but applies on 2.4.21 as well.
Bjorn, I've also attached the diff for the name change David
recommended. Thanks,
Alex
--
Alex Williamson HP Linux & Open Source Lab
[-- Attachment #2: cmc_cpe_update.diff --]
[-- Type: text/plain, Size: 681 bytes --]
--- to-linus-2.5/arch/ia64/kernel/mca.c~ 2003-08-05 09:03:02.000000000 -0600
+++ to-linus-2.5/arch/ia64/kernel/mca.c 2003-08-05 09:05:03.000000000 -0600
@@ -1149,13 +1149,19 @@
printk(KERN_WARNING "%s: Returning to interrupt driven CMC handler\n", __FUNCTION__);
- cmc_polling_enabled = 0;
/*
* The cmc interrupt handler enabled irqs, so
* this can't deadlock.
*/
smp_call_function(ia64_mca_cmc_vector_enable, NULL, 1, 0);
+
+ /*
+ * Turn off interrupts before re-enabling the
+ * cmc vector locally. Make sure we get out.
+ */
+ local_irq_disable();
ia64_mca_cmc_vector_enable(NULL);
+ cmc_polling_enabled = 0;
} else {
[-- Attachment #3: sal_call_reentrant.diff --]
[-- Type: text/plain, Size: 1349 bytes --]
--- linux-2.4.21/include/asm-ia64/sal.h~ 2003-08-05 09:22:35.000000000 -0600
+++ linux-2.4.21/include/asm-ia64/sal.h 2003-08-05 09:24:22.000000000 -0600
@@ -56,7 +56,7 @@
ia64_load_scratch_fpregs(__ia64_scn_fr); \
} while (0)
-# define SAL_CALL_SAFE(result,args...) do { \
+# define SAL_CALL_REENTRANT(result,args...) do { \
struct ia64_fpreg __ia64_scs_fr[6]; \
ia64_save_scratch_fpregs(__ia64_scs_fr); \
__SAL_CALL(result, args); \
@@ -665,7 +665,7 @@
ia64_sal_clear_state_info (u64 sal_info_type)
{
struct ia64_sal_retval isrv;
- SAL_CALL_SAFE(isrv, SAL_CLEAR_STATE_INFO, sal_info_type, 0,
+ SAL_CALL_REENTRANT(isrv, SAL_CLEAR_STATE_INFO, sal_info_type, 0,
0, 0, 0, 0, 0);
return isrv.status;
}
@@ -678,7 +678,7 @@
ia64_sal_get_state_info (u64 sal_info_type, u64 *sal_info)
{
struct ia64_sal_retval isrv;
- SAL_CALL_SAFE(isrv, SAL_GET_STATE_INFO, sal_info_type, 0,
+ SAL_CALL_REENTRANT(isrv, SAL_GET_STATE_INFO, sal_info_type, 0,
sal_info, 0, 0, 0, 0);
if (isrv.status)
return 0;
@@ -694,7 +694,7 @@
ia64_sal_get_state_info_size (u64 sal_info_type)
{
struct ia64_sal_retval isrv;
- SAL_CALL_SAFE(isrv, SAL_GET_STATE_INFO_SIZE, sal_info_type, 0,
+ SAL_CALL_REENTRANT(isrv, SAL_GET_STATE_INFO_SIZE, sal_info_type, 0,
0, 0, 0, 0, 0);
if (isrv.status)
return 0;
next reply other threads:[~2003-08-05 16:13 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-05 16:13 Alex Williamson [this message]
2003-08-08 18:40 ` [PATCH] Update to CMC/CPE polling Bjorn Helgaas
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=marc-linux-ia64-106010036115145@msgid-missing \
--to=alex_williamson@hp.com \
--cc=linux-ia64@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox