lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 Aug 2021 17:24:00 -0300 From: Arnaldo Carvalho de Melo <acme@...nel.org> To: Namhyung Kim <namhyung@...nel.org> Cc: Riccardo Mancini <rickyman7@...il.com>, Ian Rogers <irogers@...gle.com>, Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>, Mark Rutland <mark.rutland@....com>, Jiri Olsa <jolsa@...hat.com>, linux-kernel <linux-kernel@...r.kernel.org>, linux-perf-users <linux-perf-users@...r.kernel.org>, Alexey Bayduraev <alexey.v.bayduraev@...ux.intel.com> Subject: Re: [RFC PATCH v2 01/10] perf workqueue: threadpool creation and destruction Em Tue, Aug 10, 2021 at 11:54:19AM -0700, Namhyung Kim escreveu: > On Mon, Aug 9, 2021 at 3:30 AM Riccardo Mancini <rickyman7@...il.com> wrote: > > On Fri, 2021-08-06 at 19:24 -0700, Namhyung Kim wrote: > > > > +/** > > > > + * threadpool__strerror - print message regarding given @err in @pool > > > > + * > > > > + * Buffer size should be at least THREADPOOL_STRERR_BUFSIZE bytes. > > > > + */ > > > > +int threadpool__strerror(struct threadpool *pool __maybe_unused, int err, > > > > char *buf, size_t size) > > > > +{ > > > > + char sbuf[STRERR_BUFSIZE], *emsg; > > > > + > > > > + emsg = str_error_r(err, sbuf, sizeof(sbuf)); > > > > + return scnprintf(buf, size, "Error: %s.\n", emsg); > > > > +} > > > > + > > > > +/** > > > > + * threadpool__new_strerror - print message regarding @err_ptr > > > > + * > > > > + * Buffer size should be at least THREADPOOL_STRERR_BUFSIZE bytes. > > > > + */ > > > > +int threadpool__new_strerror(struct threadpool *err_ptr, char *buf, size_t > > > > size) > > > > +{ > > > > + return threadpool__strerror(err_ptr, PTR_ERR(err_ptr), buf, size); > > > > +} > > > Why two different functions? > > Since when new fails you don't have a err number, just an err_ptr so it's not > > very clear how to call threadpool__strerror. Therefore I made a wrapper to > > remove any ambiguity. > > What do you mean by "when new fails"? I think 'new' is 'constructor', i.e. something__new() returns a newly created object and this not an error number, so he uses ERR_PTR() and then he needs to pass it to the 'strerror' specific to the threadpool__new, which will use PTR_ERR() to get an integer, and then map that to a proper error string, right? - Arnaldo
Powered by blists - more mailing lists