New kernel: make oldconfig... but no boot - Unknown symbol...


I'm trying to upgrade kernels (from a working one to a newer version),
and am having difficulty booting into the new kernel.

Since I have the .config from the current working kernel, I thought the
best and safest thing to do would be to start with that .config (copy
it in /usr/src/linux-2.6.16 in my case) and run:

make oldconfig

I think that leaves all the old settings and prompts for new ones (I
just hit enter for everything, accepting defaults). After that I did:

make all
make modules_install
make install

Then I rebooted. Unfortunately, I got errors like this at boot time:

Loading scsi_mod.ko module
Loading sd_mod.kSCSI subsystem initialized
o module
sd_mod: Unknown symbol scsi_print_sense_hdr
sd_mod: Unknown symbol scsi_mode_sense
insmod: error in3w_xxxx: Unknown symbol scsi_remove_host
3w_xxxx: Unknown symbol scsi_host_put
3w_xxxx: Unknown symbol scsi_scan_host
3w_xxxx: Unknown symbol scsi_add_host
3w_xxxx: Unknown symbol scsi_adjust_queue_depth
3w_xxxx: Unknown symbol scsi_host_alloc
serting '/lib/sd_mod.ko': -1 Unkdevice-mapper: 4.6.0-ioctl (2006-02-17)

initialised: dm-devel@xxxxxxxxxx
nown symbol in module
ERROR: /bin/insmod exited abnormally!
Loading 3w-xxxx.ko module
Kernel panic - not syncing: Attempted to kill init!wn symbol in module

ERROR: /bin/ins mod exited abnor<0>Rebooting in 5 seconds..

The puzzling thing here is that sd_mod is the thing from the previous
kernel - `lsmod' shows 'sd_mod' and 'scsi_mode', etc.:

libata 43077 1 ata_piix
3w_xxxx 40185 3
sd_mod 20289 4
scsi_mod 112136 3 libata,3w_xxxx,sd_mod

So, since I started with the old, working .config, shouldn't everything
"just work"?
The old settings/choices dor libata, 3w_xxxx, sd_mod, scsi_mode, etc.
should all be the same with the new kernel as they were with the old
working one?

Any help/advice would be greatly appreciated!