[parisc-linux-cvs] linux deller

Helge Deller deller@gmx.de
Sun, 6 Jan 2002 17:24:44 +0100


--------------Boundary-00=_8XYIO09CPI32B5U6RLDI
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

On Sunday 06 January 2002 17:24, Helge Deller wrote:
> CVSROOT:	/var/cvs
> Module name:	linux
> Changes by:	deller	02/01/06 09:24:18
>
> Modified files:
> 	include/asm-parisc: pdc.h
> 	arch/parisc/kernel: firmware.c
>
> Log message:
> - added void pdc_emergency_unlock(void) - useful if we get HPMCs during
> PDC/STI calls to remove the PDC lock
> - updated documentation that pdc_add_valid() returns PDC_OK (0) if
> sucessful.

--------------Boundary-00=_8XYIO09CPI32B5U6RLDI
Content-Type: text/plain;
  charset="iso-8859-1";
  name="diff"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="diff"

Index: include/asm-parisc/pdc.h
===================================================================
RCS file: /var/cvs/linux/include/asm-parisc/pdc.h,v
retrieving revision 1.38
diff -u -p -r1.38 pdc.h
--- include/asm-parisc/pdc.h	2001/11/29 08:30:08	1.38
+++ include/asm-parisc/pdc.h	2002/01/06 16:22:14
@@ -820,6 +820,7 @@ int pdc_iodc_getc(void);
 void pdc_iodc_putc(unsigned char c);
 void pdc_iodc_outc(unsigned char c);
 
+void pdc_emergency_unlock(void);
 int pdc_sti_call(unsigned long func, unsigned long flags,
                  unsigned long inptr, unsigned long outputr,
                  unsigned long glob_cfg);
Index: arch/parisc/kernel/firmware.c
===================================================================
RCS file: /var/cvs/linux/arch/parisc/kernel/firmware.c,v
retrieving revision 1.38
diff -u -p -r1.38 firmware.c
--- arch/parisc/kernel/firmware.c	2001/11/29 19:57:04	1.38
+++ arch/parisc/kernel/firmware.c	2002/01/06 16:22:14
@@ -119,11 +119,25 @@ static void convert_to_wide(unsigned lon
 }
 
 /**
+ * pdc_emergency_unlock - Unlock the linux pdc lock
+ *
+ * This call unlocks the linux pdc lock in case we need some PDC functions
+ * (like pdc_add_valid) during kernel stack dump.
+ */
+void pdc_emergency_unlock(void)
+{
+        spin_unlock(&pdc_lock);
+}
+
+
+/**
  * pdc_add_valid - Verify address can be accessed without causing a HPMC.
  * @address: Address to be verified.
  *
- * This PDC call attempts to read from the specified address and verify
- * the address is valid.
+ * This PDC call attempts to read from the specified address and verifies
+ * if the address is valid.
+ * 
+ * The return value is PDC_OK (0) in case accessing this address is valid.
  */
 int pdc_add_valid(unsigned long address)
 {

--------------Boundary-00=_8XYIO09CPI32B5U6RLDI--