Cano homers as Mariners beat White Sox, 8-6