On Fri, Jun 20, 2014 at 12:39 AM, H. Peter Anvin hpa@zytor.com wrote:
Aside: This is a pet peeve of mine and recently I've switched to rejecting all patch that have a BUG_ON, period.
Please do, I have been for a few years now as well for the same reasons you cite.
I'm actually concerned about this trend. Downgrading things to WARN_ON can allow a security bug in the kernel to continue to exist, for example, or make the error message disappear.
I am wondering if the right thing here isn't to have a user (command line?) settable policy as to how to proceed on an assert violation, instead of hardcoding it at compile time.
I should clarify: If it smells like the issue is a failure of our ioctl/syscall validation code to catch crap, BUG_ON is the right choice. And fundamentally I've had this rule since 1-2 years now, the only recent change I've done is switch my scripts from warning by default if there's a new BUG_ON to rejecting by default. Mostly because I'm lazy and let too many BUG_ONs pass through by default.
Also if you add a new interface to i915 I'll make damn sure you supply a full set of nasty testcases to abuse the ioctl hard. In the end it's a tradeoff and overall I don't think I'm compromising security with my current set of rules.
Also, people don't (yet) terribly care about data integrity as soon as their data has passed once through a gpu. -Daniel