Sometimes my wifi on my Thinkpad X201 stops working and I have to restart. Any workaround?

Let me introduce a mixture of searching and guessing.

lspci:

lspci | grep -i Wireless
02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)

The name might be different, without 'wireless', so maybe you just perform the lspci-command, and conclude yourself, which might be the w-lan chip.

lshw is another approch:

sudo lshw -C net 
[sudo] password for stefan: 
  *-network:0             
       description: Ethernet interface
       product: RTL-8139/8139C/8139C+
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: eth0
       version: 10
       serial: 00:13:d4:6a:60:d2
       size: 10MB/s
       capacity: 100MB/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=half latency=64 link=no maxlatency=64 mingnt=32 multicast=yes port=MII speed=10MB/s
       resources: irq:4 ioport:d800(size=256) memory:ff9ffc00-ff9ffcff
  *-network:1 UNCLAIMED
       description: Network controller
       product: PRO/Wireless 2200BG [Calexico2] Network Connection
       vendor: Intel Corporation
       physical id: 4
       bus info: pci@0000:02:04.0
       version: 05
       width: 32 bits
       clock: 33MHz
       capabilities: pm cap_list
       configuration: latency=64 maxlatency=24 mingnt=3
       resources: memory:ff9fe000-ff9fefff

Now I use dmesg:

dmesg | grep -i 2200BG

nothing, too narrow,

dmesg | grep 2200
[315676.220024] eth0: no IPv6 routers present
[332456.220087] eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1
[375282.220037] eth0: no IPv6 routers present

modprobe -l or lsmod, if the driver is loaded is another option:

modprobe -l | grep 2200
kernel/drivers/net/wireless/ipw2x00/ipw2200.ko

If you have sources installed, the drivers should be in:

ls /usr/src/linux/drivers/net/wireless/

From the ThinkWiki-Page I guess, your chipset could be a Realtek RTL8192SE. So you would use rtl/rtl8192/rtl8192se for grepping.

r8192se_pci might be your driver. so

sudo rmmod r8192se_pci
sudo modprobe r8192se_pci

could save you from reboots. I didn't read the whole page on Thinkwiki about your model - maybe you got the time.

For laptops in general, the linux-on-laptops page is a general good adress, to see, what experience other user made with linux on laptops and which knowledge they gained. Some models change chipsets and drivers, but it is much better than guessing.