--- /dev/null
+--- a/mac80211.c
++++ b/mac80211.c
+@@ -613,7 +613,11 @@ int mt76_create_page_pool(struct mt76_de
+ {
+ struct page_pool_params pp_params = {
+ .order = 0,
++#if LINUX_VERSION_IS_LESS(6,12,0)
+ .flags = PP_FLAG_PAGE_FRAG,
++#else
++ .flags = 0,
++#endif
+ .nid = NUMA_NO_NODE,
+ .dev = dev->dma_dev,
+ };
--- /dev/null
+--- a/tools/eeprom.c
++++ b/tools/eeprom.c
+@@ -220,10 +220,14 @@ mt76_eeprom_changes(void)
+ }
+
+ buf = malloc(EEPROM_PART_SIZE);
++ if (!buf)
++ return EXIT_FAILURE;
+ fseek(f, mtd_offset, SEEK_SET);
+ ret = fread(buf, 1, EEPROM_PART_SIZE, f);
+- if (ret != EEPROM_PART_SIZE)
++ if (ret != EEPROM_PART_SIZE) {
++ free(buf);
+ return EXIT_FAILURE;
++ }
+ for (i = 0; i < EEPROM_PART_SIZE; i++) {
+ if (buf[i] == eeprom_data[i])
+ continue;