I thought I'd record here a fix for a related build issue for nvidia-current (270.29) with Lucid using kernel 3.0.0.
Since the Linux kernel has finally removed the Big Kernel Lock (BKL) the file include/linux/smp_lock.h has been deleted. However, the nvdia source still includes it (although the nvdia module doesn't call the declared functions).
The solution is to remove the include directive from /usr/src/nvidia-current-270.29/nv-linux.h. Here I've enclosed it in an #if 0 preprocessor expression, which means the code will not be used:
#include <linux/sched.h> /* suser(), capable() replacement */
#include <linux/moduleparam.h> /* module_param() */
#include <linux/smp_lock.h> /* kernel_locked */
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
#include <asm/kmap_types.h> /* page table entry lookup */