HSBC posts profit