From: Lawrence S. <ljs...@us...> - 2022-03-13 18:10:06
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 02c5acc219f4b0c8838b40b1bd9bc8d6fed81c5e (commit) from 98cc111e505b81ed90daf133ec44ff8c0fa49aa0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 02c5acc219f4b0c8838b40b1bd9bc8d6fed81c5e Author: Lawrence Sebald <ljs...@us...> Date: Sun Mar 13 14:09:05 2022 -0400 Unlock TLS spinlock on key error in kthread_setspecific. Thanks to ryancaicse on GitHub for reporting the issue (GitHub Issue #72). ----------------------------------------------------------------------- Summary of changes: kernel/arch/dreamcast/include/dc/pvr.h | 2 +- kernel/thread/tls.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/arch/dreamcast/include/dc/pvr.h b/kernel/arch/dreamcast/include/dc/pvr.h index 9ff7544..3fa03db 100644 --- a/kernel/arch/dreamcast/include/dc/pvr.h +++ b/kernel/arch/dreamcast/include/dc/pvr.h @@ -1440,7 +1440,7 @@ void pvr_mem_stats(); /* Scene rendering ***************************************************/ /* This API is used to submit triangle strips to the PVR via the TA - interace in the chip. + interface in the chip. An important side note about the PVR is that all primitive types must be submitted grouped together. If you have 10 polygons for each diff --git a/kernel/thread/tls.c b/kernel/thread/tls.c index 0b426e6..4490d3e 100644 --- a/kernel/thread/tls.c +++ b/kernel/thread/tls.c @@ -134,6 +134,7 @@ int kthread_setspecific(kthread_key_t key, const void *value) { /* Make sure the key is valid. */ if(key >= next_key || key < 1) { errno = EINVAL; + spinlock_unlock(&mutex); return -1; } hooks/post-receive -- A pseudo Operating System for the Dreamcast. |