We consider the problem of max-min fairness for uplink cell-free massive multiple-input multiple-output (MIMO) subject to per-user power constraints. The standard framework for solving the considered problem is to separately solve two subproblems: the receiver filter coefficient design and the power control problem. While the former has a closed-form solution, the latter has been solved using either second-order methods of high computational complexity or a first-order method that provides an approximate solution. To deal with these drawbacks of the existing methods, we propose a mirror prox based method for the power control problem by equivalently reformulating it as a convex-concave problem and applying the mirror prox algorithm to find a saddle point. The simulation results establish the optimality of the proposed solution and demonstrate that it is more efficient than the known methods. We also conclude that for large-scale cell-free massive MIMO, joint optimization of linear receive combining and power control provides significantly better user fairness than the power control only scheme in which receiver coefficients are fixed to unity.