1*4882a593SmuzhiyunDo the ax25_list_lock, ax25_dev_lock, linkfail_lockreally, ax25_frag_lock and 2*4882a593Smuzhiyunlisten_lock have to be bh-safe? 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunDo the netrom and rose locks have to be bh-safe? 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunA device might be deleted after lookup in the SIOCADDRT ioctl but before it's 7*4882a593Smuzhiyunbeing used. 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunRoutes to a device being taken down might be deleted by ax25_rt_device_down 10*4882a593Smuzhiyunbut added by somebody else before the device has been deleted fully. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunThe ax25_rt_find_route synopsys is pervert but I somehow had to deal with 13*4882a593Smuzhiyunthe race caused by the static variable in it's previous implementation. 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunImplement proper socket locking in netrom and rose. 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunCheck socket locking when ax25_rcv is sending to raw sockets. In particular 18*4882a593Smuzhiyunax25_send_to_raw() seems fishy. Heck - ax25_rcv is fishy. 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunHandle XID and TEST frames properly. 21