fix random setsockopt failure (EINVAL)
Following patch should fix random setsockopt failure (EINVAL) in HEAD:
In addition to that:
- Don't do copyout in setsockopt; the user arg is const
- Always setup sopt (i.e. set sopt.sopt_val to NULL early)
- In sys_getsocktopt(), centralize valsize check
Please review/test it.