General Motors recalls 8.4 million vehicles