If your linked list is a class that manages itself and keeps nodes out of your reach, just pass an instance by reference.
If your linked list is just you literally managing a bunch of nodes (getting your hands dirty and avoiding Object Oriented Design at all costs), then yeah you would pass the head. Make sure you pas the head pointer by reference though, because the sort function may need to change which element is the first element.
void MySortFunc(List &list);
//...
List my_list;
//add elements to list...
MySortFunc(list);
//show sorted list...
Note that you shouldn't even know that the list uses nodes; from your perspective, the list takes care of itself and doesn't even let you touch its nodes.
Then you're not doing what I just said. That error is saying that you are passing a node instead of the list itself - if you are still getting the same error that means you are still trying to pass the node.
You could post your code so we could figure out what's wrong and how you can fix it ;)