shutdown not working with uart console

Dimitry Andric dimitry at andric.com
Sat Oct 10 22:04:22 UTC 2009


On 2009-10-10 22:14, Harald Schmalzbauer wrote:
>> I wondering whether I was too conservative in r195509.
>> Please try this.
>>
>> diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
>> index 39b48e0..b96cdbf 100644
>> --- a/sys/kern/kern_exit.c
>> +++ b/sys/kern/kern_exit.c
>> @@ -340,10 +340,10 @@ exit1(struct thread *td, int rv)
>>  
>>  		if (ttyvp != NULL) {
>>  			sx_xunlock(&proctree_lock);
>> -			vn_lock(ttyvp, LK_EXCLUSIVE | LK_RETRY);
>> -			if (ttyvp->v_type != VBAD)
>> +			if (vn_lock(ttyvp, LK_EXCLUSIVE) == 0) {
>>  				VOP_REVOKE(ttyvp, REVOKEALL);
>> -			VOP_UNLOCK(ttyvp, 0);
>> +				VOP_UNLOCK(ttyvp, 0);
>> +			}
>>  			sx_xlock(&proctree_lock);
>>  		}
>>  	}
> 
> Great, thanks a lot, this fixes my problem :)

I had seen this issue too, some time ago, but disregarded it as just
some anomaly.  In any case, the above patch also fixes it for me.


More information about the freebsd-current mailing list