diff --git a/libc/kernel/common/linux/hdsmart.h b/libc/kernel/common/linux/hdsmart.h
index 6cbc653..d7f6de7 100644
--- a/libc/kernel/common/linux/hdsmart.h
+++ b/libc/kernel/common/linux/hdsmart.h
@@ -7,108 +7,125 @@
  ***   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_HDSMART_H
 #define _LINUX_HDSMART_H
-
 #define OFFLINE_FULL_SCAN 0
 #define SHORT_SELF_TEST 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EXTEND_SELF_TEST 2
 #define SHORT_CAPTIVE_SELF_TEST 129
 #define EXTEND_CAPTIVE_SELF_TEST 130
-
 typedef struct ata_smart_attribute_s {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char id;
  unsigned short status_flag;
  unsigned char normalized;
  unsigned char worse_normal;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char raw[6];
  unsigned char reserv;
 } __attribute__ ((packed)) ata_smart_attribute_t;
-
 typedef struct ata_smart_values_s {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short revnumber;
  ata_smart_attribute_t vendor_attributes [30];
  unsigned char offline_data_collection_status;
  unsigned char self_test_exec_status;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short total_time_to_complete_off_line;
  unsigned char vendor_specific_366;
  unsigned char offline_data_collection_capability;
  unsigned short smart_capability;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char errorlog_capability;
  unsigned char vendor_specific_371;
  unsigned char short_test_completion_time;
  unsigned char extend_test_completion_time;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char reserved_374_385 [12];
  unsigned char vendor_specific_386_509 [125];
  unsigned char chksum;
 } __attribute__ ((packed)) ata_smart_values_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct ata_smart_threshold_entry_s {
  unsigned char id;
  unsigned char normalized_threshold;
  unsigned char reserved[10];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } __attribute__ ((packed)) ata_smart_threshold_entry_t;
-
 typedef struct ata_smart_thresholds_s {
  unsigned short revnumber;
  ata_smart_threshold_entry_t thres_entries[30];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char reserved[149];
  unsigned char chksum;
 } __attribute__ ((packed)) ata_smart_thresholds_t;
-
 typedef struct ata_smart_errorlog_command_struct_s {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char devicecontrolreg;
  unsigned char featuresreg;
  unsigned char sector_count;
  unsigned char sector_number;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char cylinder_low;
  unsigned char cylinder_high;
  unsigned char drive_head;
  unsigned char commandreg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int timestamp;
 } __attribute__ ((packed)) ata_smart_errorlog_command_struct_t;
-
 typedef struct ata_smart_errorlog_error_struct_s {
  unsigned char error_condition;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char extended_error[14];
  unsigned char state;
  unsigned short timestamp;
 } __attribute__ ((packed)) ata_smart_errorlog_error_struct_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct ata_smart_errorlog_struct_s {
  ata_smart_errorlog_command_struct_t commands[6];
  ata_smart_errorlog_error_struct_t error_struct;
 } __attribute__ ((packed)) ata_smart_errorlog_struct_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct ata_smart_errorlog_s {
  unsigned char revnumber;
  unsigned char error_log_pointer;
  ata_smart_errorlog_struct_t errorlog_struct[5];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short ata_error_count;
  unsigned short non_fatal_count;
  unsigned short drive_timeout_count;
  unsigned char reserved[53];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char chksum;
 } __attribute__ ((packed)) ata_smart_errorlog_t;
-
 typedef struct ata_smart_selftestlog_struct_s {
  unsigned char selftestnumber;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char selfteststatus;
  unsigned short timestamp;
  unsigned char selftestfailurecheckpoint;
  unsigned int lbafirstfailure;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char vendorspecific[15];
 } __attribute__ ((packed)) ata_smart_selftestlog_struct_t;
-
 typedef struct ata_smart_selftestlog_s {
  unsigned short revnumber;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ata_smart_selftestlog_struct_t selftest_struct[21];
  unsigned char vendorspecific[2];
  unsigned char mostrecenttest;
  unsigned char resevered[2];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char chksum;
 } __attribute__ ((packed)) ata_smart_selftestlog_t;
-
 #endif
