149 rc = cpr_suspend(sleeptype);
150 PMD(PMD_SX, ("cpr_suspend rets %x\n", rc))
151 if (rc == 0) {
152 int i_cpr_power_down(int sleeptype);
153
154 /*
155 * From this point on, we should be at a high
156 * spl, interrupts disabled, and all but one
157 * cpu's paused (effectively UP/single threaded).
158 * So this is were we want to put ASSERTS()
159 * to let us know otherwise.
160 */
161 ASSERT(cpus_paused());
162
163 /*
164 * Now do the work of actually putting this
165 * machine to sleep!
166 */
167 rc = i_cpr_power_down(sleeptype);
168 if (rc == 0) {
169 PMD(PMD_SX, ("back from succssful suspend\n"))
170 }
171 /*
172 * We do care about the return value from cpr_resume
173 * at this point, as it will tell us if one of the
174 * resume functions failed (cpr_resume_devices())
175 * However, for this to return and _not_ panic, means
176 * that we must be in one of the test functions. So
177 * check for that and return an appropriate message.
178 */
179 rc2 = cpr_resume(sleeptype);
180 if (rc2 != 0) {
181 ASSERT(cpr_test_point > 0);
182 cmn_err(CE_NOTE,
183 "cpr_resume returned non-zero: %d\n", rc2);
184 PMD(PMD_SX, ("cpr_resume rets %x\n", rc2))
185 }
186 ASSERT(!cpus_paused());
187 } else {
188 PMD(PMD_SX, ("failed suspend, resuming\n"))
189 rc = cpr_resume(sleeptype);
|
149 rc = cpr_suspend(sleeptype);
150 PMD(PMD_SX, ("cpr_suspend rets %x\n", rc))
151 if (rc == 0) {
152 int i_cpr_power_down(int sleeptype);
153
154 /*
155 * From this point on, we should be at a high
156 * spl, interrupts disabled, and all but one
157 * cpu's paused (effectively UP/single threaded).
158 * So this is were we want to put ASSERTS()
159 * to let us know otherwise.
160 */
161 ASSERT(cpus_paused());
162
163 /*
164 * Now do the work of actually putting this
165 * machine to sleep!
166 */
167 rc = i_cpr_power_down(sleeptype);
168 if (rc == 0) {
169 PMD(PMD_SX, ("back from successful suspend\n"))
170 }
171 /*
172 * We do care about the return value from cpr_resume
173 * at this point, as it will tell us if one of the
174 * resume functions failed (cpr_resume_devices())
175 * However, for this to return and _not_ panic, means
176 * that we must be in one of the test functions. So
177 * check for that and return an appropriate message.
178 */
179 rc2 = cpr_resume(sleeptype);
180 if (rc2 != 0) {
181 ASSERT(cpr_test_point > 0);
182 cmn_err(CE_NOTE,
183 "cpr_resume returned non-zero: %d\n", rc2);
184 PMD(PMD_SX, ("cpr_resume rets %x\n", rc2))
185 }
186 ASSERT(!cpus_paused());
187 } else {
188 PMD(PMD_SX, ("failed suspend, resuming\n"))
189 rc = cpr_resume(sleeptype);
|