On Thu, Sep 01, 2022 at 04:19:35PM -0700, Joe Perches wrote: > On Tue, 2022-08-30 at 14:49 -0700, Suren Baghdasaryan wrote: > > From: Kent Overstreet <kent.overstreet@xxxxxxxxx> > > > > This patch adds per-error-site error codes, with error strings that > > include their file and line number. > > > > To use, change code that returns an error, e.g. > > return -ENOMEM; > > to > > return -ERR(ENOMEM); > > > > Then, errname() will return a string that includes the file and line > > number of the ERR() call, for example > > printk("Got error %s!\n", errname(err)); > > will result in > > Got error ENOMEM at foo.c:1234 > > Why? Something wrong with just using %pe ? > > printk("Got error %pe at %s:%d!\n", ERR_PTR(err), __FILE__, __LINE__); > > Likely __FILE__ and __LINE__ aren't particularly useful. That doesn't do what this patchset does. If it only did that, it wouldn't make much sense, would it? :) With this patchset, printk("Got error %pe!\n", ptr); prints out a file and line number, but it's _not_ the file/line number of the printk statement - it's the file/line number where the error originated! :)