Sometimes auto negotiate just doesn’t work, and it’s never a good idea to use auto negotiate on a SAN connection. To disable auto negotiate use the ethtool command.
ethtool -s $DEV autoneg off
Don’t forget to set your speed and duplex afterwards! I haven’t been able to track down a way to do this in the system provided configuration files, but you can easily script it in your startup scripts. Just make sure it runs early or right after the network script.