]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blobdiff - kernel/crash_core.c
ia64: reuse append_elf_note() and final_note() functions
[mirror_ubuntu-focal-kernel.git] / kernel / crash_core.c
index 4261587a34d212d4adf9e866e616e8287ece246a..fcbd568f1e95069e6f42a46cad5f5c739f273def 100644 (file)
@@ -291,32 +291,26 @@ int __init parse_crashkernel_low(char *cmdline,
                                "crashkernel=", suffix_tbl[SUFFIX_LOW]);
 }
 
-static u32 *append_elf_note(u32 *buf, char *name, unsigned int type,
-                           void *data, size_t data_len)
+Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type,
+                         void *data, size_t data_len)
 {
-       struct elf_note note;
-
-       note.n_namesz = strlen(name) + 1;
-       note.n_descsz = data_len;
-       note.n_type   = type;
-       memcpy(buf, &note, sizeof(note));
-       buf += (sizeof(note) + 3)/4;
-       memcpy(buf, name, note.n_namesz);
-       buf += (note.n_namesz + 3)/4;
-       memcpy(buf, data, note.n_descsz);
-       buf += (note.n_descsz + 3)/4;
+       struct elf_note *note = (struct elf_note *)buf;
+
+       note->n_namesz = strlen(name) + 1;
+       note->n_descsz = data_len;
+       note->n_type   = type;
+       buf += DIV_ROUND_UP(sizeof(*note), sizeof(Elf_Word));
+       memcpy(buf, name, note->n_namesz);
+       buf += DIV_ROUND_UP(note->n_namesz, sizeof(Elf_Word));
+       memcpy(buf, data, data_len);
+       buf += DIV_ROUND_UP(data_len, sizeof(Elf_Word));
 
        return buf;
 }
 
-static void final_note(u32 *buf)
+void final_note(Elf_Word *buf)
 {
-       struct elf_note note;
-
-       note.n_namesz = 0;
-       note.n_descsz = 0;
-       note.n_type   = 0;
-       memcpy(buf, &note, sizeof(note));
+       memset(buf, 0, sizeof(struct elf_note));
 }
 
 static void update_vmcoreinfo_note(void)