4500618 sched_getparam(3RT) SIGSEGVs when target pid has class of FSS or FX.
--- a/usr/src/lib/libc/port/rt/sched.c Tue Jul 18 01:42:16 2006 -0700
+++ b/usr/src/lib/libc/port/rt/sched.c Tue Jul 18 03:46:46 2006 -0700
@@ -142,9 +142,6 @@
/* non-RT scheduling class */
pcpri_t pcpri;
- /* need RT class info before we can translate priorities */
- if (get_info_by_policy(SCHED_FIFO) < 0)
- return (-1);
/*
* get class's global priority's min, max, and
* translate them into RT priority level (index) via rt_dptbl.
@@ -171,6 +168,10 @@
rtdpent_t *rtdp;
pri_t pri;
+ /* need RT class info before we can translate priorities */
+ if (rt_dptbl == NULL && get_info_by_policy(SCHED_FIFO) < 0)
+ return (-1);
+
if (gpri <= rt_dptbl[rt_class.pcc_primin].rt_globpri) {
pri = gpri - rt_dptbl[rt_class.pcc_primin].rt_globpri + \
rt_class.pcc_primin;