I concur with Kuki. If your son is this sensitive to smoke then you should cancel this cruise and book on another line. While Carnival does have smoking and non-smoking areas there is a good chance that at some point in the cruise your son may go through a smoking area or someone on a balcony may smoke and he may smell it.
Azamara Cruise Lines and Oceania are almost smoke free. Only two small areas where smoking is allowed. Celebrity cruises does not allow smoking in the casinos, cabins, balconies and most public venues. You can smoke on the port side on the open deck area and in one outdoor bar.