We propose an adaptive resource allocation algorithm for a multiple-input multiple-output (MIMO) orthogonal frequency division multiple access (OFDMA) based downlink cognitive radio network (CRN). The CRN has multiple secondary users (SUs) coexisting with multiple primary users (PUs). The aim is to maximize the total data throughput of SUs while ensuring interference leakage to PUs is below a threshold and quality of services (QoS) for SUs such as data rates and bit error rate (BER) are met. The algorithm optimally allocates radio resources such as subcarrier, spatial beams, powers and bits to each user using an integer linear programming (ILP) framework. The performance of the algorithm has been evaluated using simulation results.