Hi André,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tip/locking/core]
[also build test WARNING on linus/master v6.11-rc6 next-20240906]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Andr-Almeida/selftests-futex-Create-test-for-robust-list/20240903-214428
base:   tip/locking/core
patch link:    
https://lore.kernel.org/r/20240903134033.816500-1-andrealmeid%40igalia.com
patch subject: [PATCH v2] selftests/futex: Create test for robust list
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 
617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240907/202409071354.clw9rcwr-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: https://lore.kernel.org/r/202409071354.clw9rcwr-...@intel.com/

All warnings (new ones prefixed by >>):

>> robust_list.c:117:44: warning: passing 'int *' to parameter of type 
>> 'unsigned int *' converts between pointers to integer types with different 
>> sign [-Wpointer-sign]
     117 |         if (atomic_compare_exchange_strong(futex, &zero, tid)) {
         |                                                   ^~~~~
   /opt/cross/clang-617a15a9ea/lib/clang/18/include/stdatomic.h:144:112: note: 
expanded from macro 'atomic_compare_exchange_strong'
     144 | #define atomic_compare_exchange_strong(object, expected, desired) 
__c11_atomic_compare_exchange_strong(object, expected, desired, 
__ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)
         |                                                                      
                                          ^~~~~~~~
   1 warning generated.


vim +117 tools/testing/selftests/futex/functional/robust_list.c

32807b4449f353 André Almeida 2024-09-03  101  
32807b4449f353 André Almeida 2024-09-03  102  /*
32807b4449f353 André Almeida 2024-09-03  103   * A basic (and incomplete) mutex 
lock function with robustness
32807b4449f353 André Almeida 2024-09-03  104   */
32807b4449f353 André Almeida 2024-09-03  105  static int mutex_lock(struct 
lock_struct *lock, struct robust_list_head *head, bool error_inject)
32807b4449f353 André Almeida 2024-09-03  106  {
32807b4449f353 André Almeida 2024-09-03  107    _Atomic(unsigned int) *futex = 
&lock->futex;
32807b4449f353 André Almeida 2024-09-03  108    int zero = 0, ret = -1;
32807b4449f353 André Almeida 2024-09-03  109    pid_t tid = gettid();
32807b4449f353 André Almeida 2024-09-03  110  
32807b4449f353 André Almeida 2024-09-03  111    /*
32807b4449f353 André Almeida 2024-09-03  112     * Set list_op_pending before 
starting the lock, so the kernel can catch
32807b4449f353 André Almeida 2024-09-03  113     * the case where the thread 
died during the lock operation
32807b4449f353 André Almeida 2024-09-03  114     */
32807b4449f353 André Almeida 2024-09-03  115    head->list_op_pending = 
&lock->list;
32807b4449f353 André Almeida 2024-09-03  116  
32807b4449f353 André Almeida 2024-09-03 @117    if 
(atomic_compare_exchange_strong(futex, &zero, tid)) {
32807b4449f353 André Almeida 2024-09-03  118            /*
32807b4449f353 André Almeida 2024-09-03  119             * We took the lock, 
insert it in the robust list
32807b4449f353 André Almeida 2024-09-03  120             */
32807b4449f353 André Almeida 2024-09-03  121            struct robust_list 
*list = &head->list;
32807b4449f353 André Almeida 2024-09-03  122  
32807b4449f353 André Almeida 2024-09-03  123            /* Error injection to 
test list_op_pending */
32807b4449f353 André Almeida 2024-09-03  124            if (error_inject)
32807b4449f353 André Almeida 2024-09-03  125                    return 0;
32807b4449f353 André Almeida 2024-09-03  126  
32807b4449f353 André Almeida 2024-09-03  127            while (list->next != 
&head->list)
32807b4449f353 André Almeida 2024-09-03  128                    list = 
list->next;
32807b4449f353 André Almeida 2024-09-03  129  
32807b4449f353 André Almeida 2024-09-03  130            list->next = 
&lock->list;
32807b4449f353 André Almeida 2024-09-03  131            lock->list.next = 
&head->list;
32807b4449f353 André Almeida 2024-09-03  132  
32807b4449f353 André Almeida 2024-09-03  133            ret = 0;
32807b4449f353 André Almeida 2024-09-03  134    } else {
32807b4449f353 André Almeida 2024-09-03  135            /*
32807b4449f353 André Almeida 2024-09-03  136             * We didn't take the 
lock, wait until the owner wakes (or dies)
32807b4449f353 André Almeida 2024-09-03  137             */
32807b4449f353 André Almeida 2024-09-03  138            struct timespec to;
32807b4449f353 André Almeida 2024-09-03  139  
32807b4449f353 André Almeida 2024-09-03  140            
clock_gettime(CLOCK_MONOTONIC, &to);
32807b4449f353 André Almeida 2024-09-03  141            to.tv_sec = to.tv_sec + 
FUTEX_TIMEOUT;
32807b4449f353 André Almeida 2024-09-03  142  
32807b4449f353 André Almeida 2024-09-03  143            tid = 
atomic_load(futex);
32807b4449f353 André Almeida 2024-09-03  144            /* Kernel ignores 
futexes without the waiters flag */
32807b4449f353 André Almeida 2024-09-03  145            tid |= FUTEX_WAITERS;
32807b4449f353 André Almeida 2024-09-03  146            atomic_store(futex, 
tid);
32807b4449f353 André Almeida 2024-09-03  147  
32807b4449f353 André Almeida 2024-09-03  148            ret = 
futex_wait((futex_t *) futex, tid, &to, 0);
32807b4449f353 André Almeida 2024-09-03  149  
32807b4449f353 André Almeida 2024-09-03  150            /*
32807b4449f353 André Almeida 2024-09-03  151             * A real mutex_lock() 
implementation would loop here to finally
32807b4449f353 André Almeida 2024-09-03  152             * take the lock. We 
don't care about that, so we stop here.
32807b4449f353 André Almeida 2024-09-03  153             */
32807b4449f353 André Almeida 2024-09-03  154    }
32807b4449f353 André Almeida 2024-09-03  155  
32807b4449f353 André Almeida 2024-09-03  156    head->list_op_pending = NULL;
32807b4449f353 André Almeida 2024-09-03  157  
32807b4449f353 André Almeida 2024-09-03  158    return ret;
32807b4449f353 André Almeida 2024-09-03  159  }
32807b4449f353 André Almeida 2024-09-03  160  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Reply via email to