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 utilizing each page of a plurality of pinned pages in a first pinned memory that is assigned to the first loadable module, wherein any pages within a pinned memory assigned to a particular loadable module are prohibited from being used by another loadable module; in response to determining the first loadable module is not utilizing each page of the plurality of pinned pages in the first pinned memory, converting, by the processor, one or more pinned pages of the plurality of pinned pages in the first pinned memory that are not being utilized by the first loadable module to one or more kernel lock (klock) pages, wherein the one or more pinned pages are currently not in use by the first loadable module and have never been utilized by an operating system in an interrupts-disabled context, and wherein the one or more klock pages are pages in memory that are available for use by another loadable module when no other non-klock pages are available to meet memory requirements of the other loadable module; in response to receiving a request to assign a second pinned memory to a second loadable module and there not being enough available pages non-klock klock memory to meet the request, assigning, by the processor, one or more pages of the klock memory to the second pinned memory; and in response to receiving the request to assign the second pinned memory to the second loadable module and there being enough available non-klock klock memory to meet the request, assigning, by the processor, one or more pages of the non-klock kernel lock memory to the second pinned memory.