Generics move McKesson profits up