Boolean on Objects with smooth surfaces?
Select the model Go to edit mode and press w and Remove doubles

Select the cylinder and add one subdivide

Now with the boolean modifier selecting the difference select the object.