This variable is not defined when emacs starts up. Best is to always
use a hook.
So I'd suggest either
(add-hook 'c-mode-hook (lambda () (c-set-style "linux")))
or for the conditional case
(add-hook 'c-mode-hook
(lambda ()
(c-set-style
(or (and (string-match "/usr/src/linux"
(or (buffer-file-name) ""))
"linux")
"free-group-style"))))
Perhaps the logic could be a bit more readable :-)
Other than that, good idea to finally remove this ugly recommendation!
Hannes
--