Function vm_phys_free_contig does not always free memory properly when that memory was just allocated with vm_phys_alloc_contig. Change it to free memory properly in all cases.
vm_phys_free_contig was defined, and invoked, in a case when the npages parameter was necessarily bigger than the number of pages in the largest free block of the allocator, but neither its name nor its documentation suggested that it was broken for smaller values of npages. Since then, changes have removed all the calls to this function, so it's correctness doesn't matter much, but testing with a dynamically loaded module that calls vm_phys_free_contig with a too-small npages parameter corrupts memory management structures and should be corrected.