The cksm function in system.h is duplicate to csum_partial in checksum.h.
Remove cksm and use csum_partial instead.
Signed-off-by: Frank Munzert <munzert@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
return cpu_address;
}
-static inline u32 cksm(void *addr, unsigned long len)
-{
- register unsigned long _addr asm("0") = (unsigned long) addr;
- register unsigned long _len asm("1") = len;
- unsigned long accu = 0;
-
- asm volatile(
- "0:\n"
- " cksm %0,%1\n"
- " jnz 0b\n"
- : "+d" (accu), "+d" (_addr), "+d" (_len)
- :
- : "cc", "memory");
- return accu;
-}
-
extern void (*_machine_restart)(char *command);
extern void (*_machine_halt)(void);
extern void (*_machine_power_off)(void);
#include <asm/reset.h>
#include <asm/sclp.h>
#include <asm/setup.h>
+#include <asm/checksum.h>
#define IPL_PARM_BLOCK_VERSION 0
"a" (&lowcore_ptr[smp_processor_id()]->ipib));
#endif
asm volatile("stura %0,%1"
- :: "a" (cksm(reipl_block_actual, reipl_block_actual->hdr.len)),
+ :: "a" (csum_partial(reipl_block_actual,
+ reipl_block_actual->hdr.len, 0)),
"a" (&lowcore_ptr[smp_processor_id()]->ipib_checksum));
preempt_enable();
dump_run(trigger);
#include <asm/debug.h>
#include <asm/processor.h>
#include <asm/irqflags.h>
+#include <asm/checksum.h>
#include "sclp.h"
#define TRACE(x...) debug_sprintf_event(zcore_dbf, 1, x)
free_page((unsigned long) ipl_block);
return rc;
}
- if (cksm(ipl_block, ipl_block->hdr.len) != ipib_info.checksum) {
+ if (csum_partial(ipl_block, ipl_block->hdr.len, 0) !=
+ ipib_info.checksum) {
TRACE("Checksum does not match\n");
free_page((unsigned long) ipl_block);
ipl_block = NULL;