We study a resource allocation problem for the uplink of a virtualized massive multiple-input multiple-output system, where the antennas at the base station are priced and virtualized among the service providers (SPs). The mobile network operator (MNO) who owns the infrastructure decides the price per antenna, and a Stackelberg game is formulated for the net profit maximization of the MNO, while the minimum rate requirements of SPs are satisfied. To solve the bi-level optimization problem of the MNO, we first derive the closed-form best responses of the SPs with respect to the pricing strategies of the MNO, such that the problem of the MNO can be reduced to a single-level optimization. Then, via transformations and approximations, we cast the MNO's problem with integer constraints into a signomial geometric program (SGP), and we propose an iterative algorithm based on the successive convex approximation (SCA) to solve the SGP. Simulation results show that the proposed algorithm has performance close to the global optimum. Moreover, the interactions between the MNO and SPs in different scenarios are explored via simulations.