GM recalls another 7 million vehicles