WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #65: new file mode 100644 WARNING: line length of 84 exceeds 80 columns #98: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:29: + * Thread-specific memory for storing TLD is allocated lazily on the first call to WARNING: line length of 87 exceeds 80 columns #99: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:30: + * tld_get_data(). The thread that calls it must also calls tld_free() on thread exit WARNING: line length of 89 exceeds 80 columns #100: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:31: + * to prevent memory leak. Pthread will be included if the option is defined. A pthread WARNING: line length of 90 exceeds 80 columns #104: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:35: + * TLD_DYN_DATA_SIZE - The maximum size of memory allocated for TLDs created dynamically WARNING: line length of 87 exceeds 80 columns #107: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:38: + * A TLD can be defined statically using TLD_DEFINE_KEY() or created on the fly using WARNING: line length of 88 exceeds 80 columns #108: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:39: + * tld_create_key(). As the total size of TLDs created with tld_create_key() cannot be WARNING: line length of 89 exceeds 80 columns #109: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:40: + * possibly known statically, a memory area of size TLD_DYN_DATA_SIZE will be allocated WARNING: line length of 84 exceeds 80 columns #110: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:41: + * for these TLDs. This additional memory is allocated for every thread that calls WARNING: line length of 83 exceeds 80 columns #111: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:42: + * tld_get_data() even if no tld_create_key are actually called, so be mindful of WARNING: line length of 91 exceeds 80 columns #112: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:43: + * potential memory wastage. Use TLD_DEFINE_KEY() whenever possible as just enough memory WARNING: line length of 85 exceeds 80 columns #118: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:49: + * Setting TLD_NAME_LEN will affect the maximum number of TLDs a process can store, WARNING: line length of 88 exceeds 80 columns #124: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:55: + * When allocating the memory for storing TLDs, we need to make sure there is a memory WARNING: line length of 88 exceeds 80 columns #125: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:56: + * region of the X bytes within a page. This is due to the limit posed by UPTR: memory WARNING: line length of 86 exceeds 80 columns #126: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:57: + * pinned to the kernel cannot exceed a page nor can it cross the page boundary. The WARNING: line length of 82 exceeds 80 columns #127: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:58: + * library normally calls malloc(2*X) given X bytes of total TLDs, and only uses WARNING: line length of 90 exceeds 80 columns #128: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:59: + * aligned_alloc(PAGE_SIZE, X) when X >= PAGE_SIZE / 2. This is to reduce memory wastage WARNING: line length of 88 exceeds 80 columns #129: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:60: + * as not all memory allocator can use the exact amount of memory requested to fulfill WARNING: line length of 90 exceeds 80 columns #130: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:61: + * aligned_alloc(). For example, some may round the size up to the alignment. Enable the WARNING: line length of 88 exceeds 80 columns #131: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:62: + * option to always use aligned_alloc() if the implementation has low memory overhead. WARNING: Use of volatile is usually wrong: see Documentation/process/volatile-considered-harmful.rst #142: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:73: +#define TLD_READ_ONCE(x) (*(volatile typeof(x) *)&(x)) WARNING: do not add new typedefs #158: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:89: +typedef struct { WARNING: Missing a blank line after declarations #164: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:95: + char name[TLD_NAME_LEN]; + _Atomic __u16 size; WARNING: Prefer __weak over __attribute__((weak)) #183: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:114: +struct u_tld_metadata * _Atomic tld_metadata_p __attribute__((weak)); WARNING: Prefer __weak over __attribute__((weak)) #184: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:115: +__thread struct u_tld_data *tld_data_p __attribute__((weak)); WARNING: Prefer __weak over __attribute__((weak)) #185: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:116: +__thread void *tld_data_alloc_p __attribute__((weak)); WARNING: Prefer __weak over __attribute__((weak)) #188: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:119: +pthread_key_t tld_pthread_key __attribute__((weak)); WARNING: line length of 84 exceeds 80 columns #203: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:134: + meta = (struct u_tld_metadata *)aligned_alloc(TLD_PAGE_SIZE, TLD_PAGE_SIZE); WARNING: line length of 91 exceeds 80 columns #256: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:187: + * Always pass a page-aligned address to UPTR since the size of tld_map_value::data WARNING: line length of 90 exceeds 80 columns #257: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:188: + * is a page in BTF. If d spans across two pages, use the page that contains large WARNING: line length of 85 exceeds 80 columns #260: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:191: + if (TLD_PAGE_SIZE - (~TLD_PAGE_MASK & (intptr_t)d) >= tld_metadata_p->size) { WARNING: line length of 97 exceeds 80 columns #263: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:194: + data->start = (~TLD_PAGE_MASK & (intptr_t)d) + offsetof(struct u_tld_data, data); WARNING: line length of 82 exceeds 80 columns #265: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:196: + map_val.data = (void *)(TLD_ROUND_UP((intptr_t)d, TLD_PAGE_SIZE)); WARNING: line length of 97 exceeds 80 columns #303: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:234: + /* A metadata is not ready until size is updated with a non-zero value */ WARNING: line length of 86 exceeds 80 columns #304: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:235: + while (!(sz = atomic_load(&tld_metadata_p->metadata[i].size))) WARNING: line length of 91 exceeds 80 columns #307: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:238: + if (!strncmp(tld_metadata_p->metadata[i].name, name, TLD_NAME_LEN)) WARNING: 'upto' may be misspelled - perhaps 'up to'? #315: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:246: + * TLD_DEFINE_KEY() is given memory upto a page while at most ^^^^ WARNING: line length of 100 exceeds 80 columns #322: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:253: + if (off + TLD_ROUND_UP(size, 8) > TLD_PAGE_SIZE - sizeof(struct u_tld_data)) WARNING: line length of 84 exceeds 80 columns #328: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:259: + * Only one tld_create_key() can increase the current cnt by one and WARNING: line length of 91 exceeds 80 columns #329: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:260: + * takes the latest available slot. Other threads will check again if a new WARNING: line length of 86 exceeds 80 columns #330: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:261: + * TLD can still be added, and then compete for the new slot after the WARNING: line length of 89 exceeds 80 columns #333: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:264: + if (!atomic_compare_exchange_strong(&tld_metadata_p->cnt, &cnt, cnt + 1)) WARNING: Prefer strscpy, strscpy_pad, or __nonstring over strncpy - see: https://github.com/KSPP/linux/issues/90 #336: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:267: + strncpy(tld_metadata_p->metadata[i].name, name, TLD_NAME_LEN); WARNING: line length of 85 exceeds 80 columns #345: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:276: + * TLD_DEFINE_KEY() - Define a TLD and a global variable key associated with the TLD. WARNING: line length of 91 exceeds 80 columns #353: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:284: + * A global variable key of opaque type, tld_key_t, will be declared and initialized before WARNING: line length of 89 exceeds 80 columns #354: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:285: + * main() starts. Use tld_key_is_err() or tld_key_err_or_zero() later to check if the key WARNING: line length of 82 exceeds 80 columns #355: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:286: + * creation succeeded. Pass the key to tld_get_data() to get a pointer to the TLD. WARNING: line length of 83 exceeds 80 columns #358: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:289: + * The total size of TLDs created using TLD_DEFINE_KEY() cannot exceed a page. Just WARNING: line length of 87 exceeds 80 columns #359: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:290: + * enough memory will be allocated for each thread on the first call to tld_get_data(). WARNING: line length of 86 exceeds 80 columns #376: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:307: + * Return an opaque object key. Use tld_key_is_err() or tld_key_err_or_zero() to check WARNING: line length of 84 exceeds 80 columns #377: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:308: + * if the key creation succeeded. Pass the key to tld_get_data() to get a pointer to WARNING: line length of 87 exceeds 80 columns #380: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:311: + * Use tld_create_key() only when a TLD needs to be created dynamically (e.g., @name is WARNING: line length of 85 exceeds 80 columns #383: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:314: + * An additional TLD_DYN_DATA_SIZE bytes are allocated per-thread to accommodate TLDs WARNING: line length of 85 exceeds 80 columns #384: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:315: + * created dynamically with tld_create_key(). Since only a user page is pinned to the WARNING: line length of 81 exceeds 80 columns #385: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:316: + * kernel, when TLDs created with TLD_DEFINE_KEY() uses more than TLD_PAGE_SIZE - WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #388: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:319: +__attribute__((unused)) WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #394: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:325: +__attribute__((unused)) WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #400: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:331: +__attribute__((unused)) WARNING: line length of 81 exceeds 80 columns #407: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:338: + * tld_get_data() - Get a pointer to the TLD associated with the given key of the WARNING: line length of 88 exceeds 80 columns #410: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:341: + * @map_fd: A file descriptor of tld_data_map, the underlying BPF task local storage map WARNING: line length of 85 exceeds 80 columns #414: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:345: + * Return a pointer to the TLD if the key is valid; NULL if not enough memory for TLD WARNING: line length of 90 exceeds 80 columns #415: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:346: + * for this thread, or the key is invalid. The returned pointer is guaranteed to be 8-byte WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #421: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:352: +__attribute__((unused)) WARNING: line length of 84 exceeds 80 columns #437: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:368: + * For the calling thread, all pointers to TLDs acquired before will become invalid. WARNING: line length of 83 exceeds 80 columns #439: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:370: + * Users must call tld_free() on thread exit to prevent memory leak. Alternatively, WARNING: line length of 83 exceeds 80 columns #440: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:371: + * define TLD_FREE_DATA_ON_THREAD_EXIT and a thread exit handler will be registered WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #443: FILE: tools/testing/selftests/bpf/prog_tests/task_local_data.h:374: +__attribute__((unused)) WARNING: line length of 81 exceeds 80 columns #495: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:32: + * tld_object on the stack. Then, TLDs can be accessed by calling tld_get_data(). WARNING: do not add new typedefs #532: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:69: +typedef struct { CHECK: spaces preferred around that '*' (ctx:WxV) #553: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:90: + struct u_tld_data __uptr *data; ^ CHECK: spaces preferred around that '*' (ctx:WxV) #554: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:91: + struct u_tld_metadata __uptr *metadata; ^ WARNING: do not add new typedefs #557: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:94: +typedef struct tld_uptr_dummy { WARNING: line length of 81 exceeds 80 columns #566: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:103: + * Force the compiler to generate the actual definition of u_tld_metadata ERROR: Use C99 flexible arrays - see https://docs.kernel.org/process/deprecated.html#zero-length-and-one-element-arrays #571: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:108: + tld_uptr_dummy_t dummy[0]; +}; WARNING: line length of 81 exceeds 80 columns #575: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:112: + * Members should be tld_key_t and passed to the 3rd argument of tld_fetch_key(). WARNING: line length of 85 exceeds 80 columns #599: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:136: + * Return 0 on success; -ENODATA if the user space did not initialize task local data WARNING: line length of 86 exceeds 80 columns #600: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:137: + * for the current task through tld_get_data(); -ENOMEM if the creation of tld_key_map WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #603: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:140: +__attribute__((unused)) WARNING: line length of 86 exceeds 80 columns #619: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:156: + * Return the offset of TLD if @name is found. Otherwise, return the current TLD count WARNING: line length of 87 exceeds 80 columns #620: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:157: + * using the nonpositive range so that the next tld_get_data() can skip fetching key if WARNING: __always_unused or __maybe_unused is preferred over __attribute__((__unused__)) #623: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:160: +__attribute__((unused)) WARNING: line length of 85 exceeds 80 columns #624: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:161: +static int __tld_fetch_key(struct tld_object *tld_obj, const char *name, int i_start) WARNING: line length of 91 exceeds 80 columns #629: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:166: + if (!tld_obj->data_map || !tld_obj->data_map->data || !tld_obj->data_map->metadata) WARNING: line length of 87 exceeds 80 columns #640: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:177: + if (i >= i_start && !bpf_strncmp(metadata[i].name, TLD_NAME_LEN, name)) WARNING: line length of 87 exceeds 80 columns #657: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:194: + * Return a pointer to the TLD associated with @name; NULL if not found or @size is too WARNING: line length of 87 exceeds 80 columns #658: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:195: + * big. @key is used to cache the key if the TLD is found to speed up subsequent calls. WARNING: line length of 84 exceeds 80 columns #659: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:196: + * It should be defined as an member of tld_keys of tld_key_t type by the developer. WARNING: line length of 89 exceeds 80 columns #661: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:198: +#define tld_get_data(tld_obj, key, name, size) \ CHECK: Macro argument 'key' may be better as '(key)' to avoid precedence issues #661: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:198: +#define tld_get_data(tld_obj, key, name, size) \ + ({ \ + void *data = NULL, *_data = (tld_obj)->data_map->data; \ + long off = (tld_obj)->key_map->key.off; \ + int cnt; \ + \ + if (likely(_data)) { \ + if (likely(off > 0)) { \ + barrier_var(off); \ + if (likely(off < __PAGE_SIZE - size)) \ + data = _data + off; \ + } else { \ + cnt = -(off); \ + if (likely((tld_obj)->data_map->metadata) && \ + cnt < (tld_obj)->data_map->metadata->cnt) { \ + off = __tld_fetch_key(tld_obj, name, cnt); \ + (tld_obj)->key_map->key.off = off; \ + \ + if (likely(off < __PAGE_SIZE - size)) { \ + barrier_var(off); \ + if (off > 0) \ + data = _data + off; \ + } \ + } \ + } \ + } \ + data; \ + }) CHECK: Macro argument 'size' may be better as '(size)' to avoid precedence issues #661: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:198: +#define tld_get_data(tld_obj, key, name, size) \ + ({ \ + void *data = NULL, *_data = (tld_obj)->data_map->data; \ + long off = (tld_obj)->key_map->key.off; \ + int cnt; \ + \ + if (likely(_data)) { \ + if (likely(off > 0)) { \ + barrier_var(off); \ + if (likely(off < __PAGE_SIZE - size)) \ + data = _data + off; \ + } else { \ + cnt = -(off); \ + if (likely((tld_obj)->data_map->metadata) && \ + cnt < (tld_obj)->data_map->metadata->cnt) { \ + off = __tld_fetch_key(tld_obj, name, cnt); \ + (tld_obj)->key_map->key.off = off; \ + \ + if (likely(off < __PAGE_SIZE - size)) { \ + barrier_var(off); \ + if (off > 0) \ + data = _data + off; \ + } \ + } \ + } \ + } \ + data; \ + }) WARNING: line length of 89 exceeds 80 columns #662: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:199: + ({ \ WARNING: line length of 89 exceeds 80 columns #663: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:200: + void *data = NULL, *_data = (tld_obj)->data_map->data; \ WARNING: line length of 89 exceeds 80 columns #664: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:201: + long off = (tld_obj)->key_map->key.off; \ WARNING: line length of 89 exceeds 80 columns #665: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:202: + int cnt; \ WARNING: line length of 89 exceeds 80 columns #666: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:203: + \ WARNING: line length of 89 exceeds 80 columns #667: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:204: + if (likely(_data)) { \ WARNING: line length of 89 exceeds 80 columns #668: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:205: + if (likely(off > 0)) { \ WARNING: line length of 89 exceeds 80 columns #669: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:206: + barrier_var(off); \ WARNING: line length of 89 exceeds 80 columns #670: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:207: + if (likely(off < __PAGE_SIZE - size)) \ WARNING: line length of 89 exceeds 80 columns #671: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:208: + data = _data + off; \ WARNING: line length of 89 exceeds 80 columns #672: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:209: + } else { \ WARNING: line length of 89 exceeds 80 columns #673: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:210: + cnt = -(off); \ WARNING: line length of 89 exceeds 80 columns #674: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:211: + if (likely((tld_obj)->data_map->metadata) && \ WARNING: line length of 89 exceeds 80 columns #675: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:212: + cnt < (tld_obj)->data_map->metadata->cnt) { \ WARNING: line length of 89 exceeds 80 columns #676: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:213: + off = __tld_fetch_key(tld_obj, name, cnt); \ WARNING: line length of 89 exceeds 80 columns #677: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:214: + (tld_obj)->key_map->key.off = off; \ WARNING: line length of 89 exceeds 80 columns #678: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:215: + \ WARNING: line length of 89 exceeds 80 columns #679: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:216: + if (likely(off < __PAGE_SIZE - size)) { \ WARNING: line length of 89 exceeds 80 columns #680: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:217: + barrier_var(off); \ WARNING: line length of 89 exceeds 80 columns #681: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:218: + if (off > 0) \ WARNING: Too many leading tabs - consider code refactoring #681: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:218: + if (off > 0) \ WARNING: line length of 89 exceeds 80 columns #682: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:219: + data = _data + off; \ WARNING: line length of 89 exceeds 80 columns #683: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:220: + } \ WARNING: line length of 89 exceeds 80 columns #684: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:221: + } \ WARNING: line length of 89 exceeds 80 columns #685: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:222: + } \ WARNING: line length of 89 exceeds 80 columns #686: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:223: + } \ WARNING: line length of 89 exceeds 80 columns #687: FILE: tools/testing/selftests/bpf/progs/task_local_data.bpf.h:224: + data; \ total: 1 errors, 112 warnings, 4 checks, 615 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. Commit 9d11bd327b14 ("selftests/bpf: Introduce task local data") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.