Skip to content
  • Roland Dreier's avatar
    IB/qib: Don't rely on (undefined) order of function parameter evaluation · f27ec1d6
    Roland Dreier authored
    
    
    Some of the qib sysfs code passes a buffer pointer into 
    simple_read_from_buffer() but relies on a function call in another 
    parameter of the same call to initialize that pointer.  Since the order
    of evaluation of function parameters is undefined, this will break if
    gcc chooses the wrong order.
    
    Fix this by splitting the code into two separate function calls.
    
    This was noticed because of warnings like the following on ppc:
    
        drivers/infiniband/hw/qib/qib_fs.c: In function 'portcntrs_2_read':
        drivers/infiniband/hw/qib/qib_fs.c:203: warning: 'counters' is used uninitialized in this function
    
    Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    f27ec1d6