|
@@ -638,11 +638,7 @@ static int __init zcore_reipl_init(void)
|
|
rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE);
|
|
rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE);
|
|
else
|
|
else
|
|
rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE);
|
|
rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE);
|
|
- if (rc) {
|
|
|
|
- free_page((unsigned long) ipl_block);
|
|
|
|
- return rc;
|
|
|
|
- }
|
|
|
|
- if (csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
|
|
|
|
|
|
+ if (rc || csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
|
|
ipib_info.checksum) {
|
|
ipib_info.checksum) {
|
|
TRACE("Checksum does not match\n");
|
|
TRACE("Checksum does not match\n");
|
|
free_page((unsigned long) ipl_block);
|
|
free_page((unsigned long) ipl_block);
|