You can reload the wireless driver after suspend to avoid a reboot. My driver is 'ath9k' which you can find by running 'nm-tool' and look for the line similar to
Driver: ath9k
Then to reload the driver:
sudo rmmod ath9k
sudo modprobe ath9k
To make this happen automatically when you come back from suspend we can add the following script at /etc/pm/sleep.d/00_wireless_sleep
#!/bin/sh
case "$1" in
suspend|hibernate)
/sbin/rmmod ath9k
;;
resume|thaw)
/sbin/rmmod ath9k
/sbin/modprobe ath9k
;;
esac
exit 0
Replace the "ath9k" module name with the module you discovered from the nm-tool output mentioned above. I had to name the script "00_wireless_sleep" so it gets run after all the other resume scripts (scripts get run in reverse order on resume).
Don't forget to make file "00_wireless_sleep" executable:
sudo chmod 755 /etc/pm/sleep.d/00_wireless_sleep