diff --git a/libc/kernel/common/linux/kd.h b/libc/kernel/common/linux/kd.h
index 9d6fea3..1541ddf 100644
--- a/libc/kernel/common/linux/kd.h
+++ b/libc/kernel/common/linux/kd.h
@@ -7,179 +7,170 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _LINUX_KD_H
 #define _LINUX_KD_H
 #include <linux/types.h>
 #include <linux/compiler.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define GIO_FONT 0x4B60  
 #define PIO_FONT 0x4B61  
+
 #define GIO_FONTX 0x4B6B  
 #define PIO_FONTX 0x4B6C  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct consolefontdesc {
  unsigned short charcount;
  unsigned short charheight;
  char __user *chardata;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 #define PIO_FONTRESET 0x4B6D  
+
 #define GIO_CMAP 0x4B70  
 #define PIO_CMAP 0x4B71  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define KIOCSOUND 0x4B2F  
 #define KDMKTONE 0x4B30  
+
 #define KDGETLED 0x4B31  
 #define KDSETLED 0x4B32  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define LED_SCR 0x01  
 #define LED_NUM 0x02  
 #define LED_CAP 0x04  
+
 #define KDGKBTYPE 0x4B33  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KB_84 0x01
 #define KB_101 0x02  
 #define KB_OTHER 0x03
+
 #define KDADDIO 0x4B34  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDDELIO 0x4B35  
 #define KDENABIO 0x4B36  
 #define KDDISABIO 0x4B37  
+
 #define KDSETMODE 0x4B3A  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KD_TEXT 0x00
 #define KD_GRAPHICS 0x01
 #define KD_TEXT0 0x02  
 #define KD_TEXT1 0x03  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDGETMODE 0x4B3B  
+
 #define KDMAPDISP 0x4B3C  
 #define KDUNMAPDISP 0x4B3D  
+
 typedef char scrnmap_t;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define E_TABSZ 256
 #define GIO_SCRNMAP 0x4B40  
 #define PIO_SCRNMAP 0x4B41  
 #define GIO_UNISCRNMAP 0x4B69  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PIO_UNISCRNMAP 0x4B6A  
+
 #define GIO_UNIMAP 0x4B66  
 struct unipair {
  unsigned short unicode;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short fontpos;
 };
 struct unimapdesc {
  unsigned short entry_ct;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct unipair __user *entries;
 };
 #define PIO_UNIMAP 0x4B67  
 #define PIO_UNIMAPCLR 0x4B68  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct unimapinit {
  unsigned short advised_hashsize;
  unsigned short advised_hashstep;
  unsigned short advised_hashlevel;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 #define UNI_DIRECT_BASE 0xF000  
 #define UNI_DIRECT_MASK 0x01FF  
+
 #define K_RAW 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define K_XLATE 0x01
 #define K_MEDIUMRAW 0x02
 #define K_UNICODE 0x03
 #define KDGKBMODE 0x4B44  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDSKBMODE 0x4B45  
+
 #define K_METABIT 0x03
 #define K_ESCPREFIX 0x04
 #define KDGKBMETA 0x4B62  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDSKBMETA 0x4B63  
+
 #define K_SCROLLLOCK 0x01
 #define K_NUMLOCK 0x02
 #define K_CAPSLOCK 0x04
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDGKBLED 0x4B64  
 #define KDSKBLED 0x4B65  
+
 struct kbentry {
  unsigned char kb_table;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char kb_index;
  unsigned short kb_value;
 };
 #define K_NORMTAB 0x00
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define K_SHIFTTAB 0x01
 #define K_ALTTAB 0x02
 #define K_ALTSHIFTTAB 0x03
+
 #define KDGKBENT 0x4B46  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDSKBENT 0x4B47  
+
 struct kbsentry {
  unsigned char kb_func;
  unsigned char kb_string[512];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define KDGKBSENT 0x4B48  
 #define KDSKBSENT 0x4B49  
+
 struct kbdiacr {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char diacr, base, result;
 };
 struct kbdiacrs {
  unsigned int kb_cnt;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct kbdiacr kbdiacr[256];
 };
 #define KDGKBDIACR 0x4B4A  
 #define KDSKBDIACR 0x4B4B  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct kbkeycode {
  unsigned int scancode, keycode;
 };
 #define KDGETKEYCODE 0x4B4C  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KDSETKEYCODE 0x4B4D  
+
 #define KDSIGACCEPT 0x4B4E  
+
 struct kbd_repeat {
  int delay;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int period;
+
 };
+
 #define KDKBDREP 0x4B52  
+
 #define KDFONTOP 0x4B72  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 struct console_font_op {
  unsigned int op;
  unsigned int flags;
  unsigned int width, height;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int charcount;
  unsigned char __user *data;
 };
+
 struct console_font {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int width, height;
  unsigned int charcount;
  unsigned char *data;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define KD_FONT_OP_SET 0  
 #define KD_FONT_OP_GET 1  
 #define KD_FONT_OP_SET_DEFAULT 2  
 #define KD_FONT_OP_COPY 3  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define KD_FONT_FLAG_DONT_RECALC 1  
+
 #endif
