diff --git a/libc/kernel/common/linux/atm.h b/libc/kernel/common/linux/atm.h
index 47155a2..c9bcd70 100644
--- a/libc/kernel/common/linux/atm.h
+++ b/libc/kernel/common/linux/atm.h
@@ -7,170 +7,155 @@
  ***   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_ATM_H
 #define _LINUX_ATM_H
+
 #include <linux/compiler.h>
 #include <linux/atmapi.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/atmsap.h>
 #include <linux/atmioc.h>
+
 #define ATM_CELL_SIZE 53  
 #define ATM_CELL_PAYLOAD 48  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_AAL0_SDU 52  
 #define ATM_MAX_AAL34_PDU 65535  
 #define ATM_AAL5_TRAILER 8  
 #define ATM_MAX_AAL5_PDU 65535  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_MAX_CDV 9999  
 #define ATM_NOT_RSV_VCI 32  
+
 #define ATM_MAX_VPI 255  
 #define ATM_MAX_VPI_NNI 4096  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_MAX_VCI 65535  
+
 #define ATM_NO_AAL 0  
 #define ATM_AAL0 13  
 #define ATM_AAL1 1  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_AAL2 2  
 #define ATM_AAL34 3  
 #define ATM_AAL5 5  
+
 #define __SO_ENCODE(l,n,t) ((((l) & 0x1FF) << 22) | ((n) << 16) |   sizeof(t))
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __SO_LEVEL_MATCH(c,m) (((c) >> 22) == ((m) & 0x1FF))
 #define __SO_NUMBER(c) (((c) >> 16) & 0x3f)
 #define __SO_SIZE(c) ((c) & 0x3fff)
+
 #define SO_SETCLP __SO_ENCODE(SOL_ATM,0,int)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define SO_CIRANGE __SO_ENCODE(SOL_ATM,1,struct atm_cirange)
+
 #define SO_ATMQOS __SO_ENCODE(SOL_ATM,2,struct atm_qos)
+
 #define SO_ATMSAP __SO_ENCODE(SOL_ATM,3,struct atm_sap)
+
 #define SO_ATMPVC __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define SO_MULTIPOINT __SO_ENCODE(SOL_ATM, 5, int)
+
 #define ATM_HDR_GFC_MASK 0xf0000000
 #define ATM_HDR_GFC_SHIFT 28
 #define ATM_HDR_VPI_MASK 0x0ff00000
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_HDR_VPI_SHIFT 20
 #define ATM_HDR_VCI_MASK 0x000ffff0
 #define ATM_HDR_VCI_SHIFT 4
 #define ATM_HDR_PTI_MASK 0x0000000e
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_HDR_PTI_SHIFT 1
 #define ATM_HDR_CLP 0x00000001
+
 #define ATM_PTI_US0 0  
 #define ATM_PTI_US1 1  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_PTI_UCES0 2  
 #define ATM_PTI_UCES1 3  
 #define ATM_PTI_SEGF5 4  
 #define ATM_PTI_E2EF5 5  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_PTI_RSV_RM 6  
 #define ATM_PTI_RSV 7  
+
 #define ATM_NONE 0  
 #define ATM_UBR 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_CBR 2
 #define ATM_VBR 3
 #define ATM_ABR 4
 #define ATM_ANYCLASS 5  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define ATM_MAX_PCR -1  
+
 struct atm_trafprm {
  unsigned char traffic_class;
  int max_pcr;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int pcr;
  int min_pcr;
  int max_cdv;
  int max_sdu;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
  unsigned int icr;
  unsigned int tbe;
  unsigned int frtt : 24;
  unsigned int rif : 4;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int rdf : 4;
  unsigned int nrm_pres :1;
  unsigned int trm_pres :1;
  unsigned int adtf_pres :1;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int cdf_pres :1;
  unsigned int nrm :3;
  unsigned int trm :3;
  unsigned int adtf :10;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int cdf :3;
  unsigned int spare :9;
 };
+
 struct atm_qos {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct atm_trafprm txtp;
  struct atm_trafprm rxtp __ATM_API_ALIGN;
+
  unsigned char aal __ATM_API_ALIGN;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
 #define ATM_ITF_ANY -1  
 #define ATM_VPI_ANY -1
 #define ATM_VCI_ANY -1
 #define ATM_VPI_UNSPEC -2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_VCI_UNSPEC -2
+
 struct sockaddr_atmpvc {
  unsigned short sap_family;
  struct {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  short itf;
  short vpi;
  int vci;
  } sap_addr __ATM_API_ALIGN;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
+
 #define ATM_ESA_LEN 20  
 #define ATM_E164_LEN 12  
+
 #define ATM_AFI_DCC 0x39  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_AFI_ICD 0x47  
 #define ATM_AFI_E164 0x45  
 #define ATM_AFI_LOCAL 0x49   
+
 #define ATM_AFI_DCC_GROUP 0xBD  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_AFI_ICD_GROUP 0xC5  
 #define ATM_AFI_E164_GROUP 0xC3  
 #define ATM_AFI_LOCAL_GROUP 0xC7  
+
 #define ATM_LIJ_NONE 0  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ATM_LIJ 1  
 #define ATM_LIJ_RPJ 2  
 #define ATM_LIJ_NJ 3  
+
 struct sockaddr_atmsvc {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short sas_family;
  struct {
  unsigned char prv[ATM_ESA_LEN];
  char pub[ATM_E164_LEN+1];
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+
  char lij_type;
  uint32_t lij_id;
  } sas_addr __ATM_API_ALIGN;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-struct atmif_sioc {
- int number;
- int length;
- void __user *arg;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-};
+
 typedef unsigned short atm_backend_t;
 #endif
