1. A method of managing pinned memory in a data processing system, comprising: determining, by a processor executing on the data processing system, whether a first loadable module is completely utilizing pinned memory assigned to the first loadable module; in response to determining the first loadable module is not completely utilizing the pinned memory assigned to the first loadable module, converting, by the processor, the pinned memory that is not being utilized by the first loadable module to kernel lock memory; in response to a second loadable module requesting pinned memory and non-kernel lock memory not being available to meet the request, assigning, by the processor, one or more pages of the kernel lock memory to the second loadable module; and in response to the second loadable module requesting the pinned memory and the non-kernel lock memory being available to meet the request, assigning, by the processor, one or more pages of the non-kernel lock memory to the second loadable module.