aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/psxcd/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpsn00b/psxcd/common.c')
-rw-r--r--libpsn00b/psxcd/common.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libpsn00b/psxcd/common.c b/libpsn00b/psxcd/common.c
index 438fcc1..e452b91 100644
--- a/libpsn00b/psxcd/common.c
+++ b/libpsn00b/psxcd/common.c
@@ -203,9 +203,11 @@ static void _cd_irq_handler(void) {
/* Initialization */
int CdInit(void) {
- EnterCriticalSection();
+ int _exit = EnterCriticalSection();
+
InterruptCallback(IRQ_CD, &_cd_irq_handler);
- ExitCriticalSection();
+ if (_exit)
+ ExitCriticalSection();
BUS_CD_CFG = 0x00020943;