Copyright practice. Some files have their own copyright and in those
cases the license is mentioned in the file. All additional work made
to building this package is licensed under the GPLv2.
+
+# Backporting preference for EXPORT_SYMBOL_GPL() and proprietary drivers
+
+This framework was designed by intent since its inception *only* for upstream
+Linux kernel drivers to avoid excuses about the difficulty to support upstream
+Linux kernel development while also supporting users on older kernels. To
+ensure the intent is respected currently all symbols that we do work on to
+backport are exported via EXPORT_SYMBOL_GPL() as we do work to backport them
+for the supported kernels. By using EXPORT_SYMBOL_GPL() we make it *clear* that
+if you use the backported symbols your software *is* considered derivative
+works of the Linux kernel.
+
+Comprendes, Mendes?
}
return ret + MTRR_TO_PHYS_WC_OFFSET;
}
-EXPORT_SYMBOL(arch_phys_wc_add);
+EXPORT_SYMBOL_GPL(arch_phys_wc_add);
/*
* arch_phys_wc_del - undoes arch_phys_wc_add
mtrr_del(handle - MTRR_TO_PHYS_WC_OFFSET, 0, 0);
}
}
-EXPORT_SYMBOL(arch_phys_wc_del);
+EXPORT_SYMBOL_GPL(arch_phys_wc_del);
/*
* phys_wc_to_mtrr_index - translates arch_phys_wc_add's return value
table->sgl = NULL;
}
-EXPORT_SYMBOL(__sg_free_table);
+EXPORT_SYMBOL_GPL(__sg_free_table);
/**
* sg_free_table - Free a previously allocated sg table
{
__sg_free_table(table, SG_MAX_SINGLE_ALLOC, sg_kfree);
}
-EXPORT_SYMBOL(sg_free_table);
+EXPORT_SYMBOL_GPL(sg_free_table);
/**
* __sg_alloc_table - Allocate and initialize an sg table with given allocator
return 0;
}
-EXPORT_SYMBOL(__sg_alloc_table);
+EXPORT_SYMBOL_GPL(__sg_alloc_table);
/**
* sg_alloc_table - Allocate and initialize an sg table
return ret;
}
-EXPORT_SYMBOL(sg_alloc_table);
+EXPORT_SYMBOL_GPL(sg_alloc_table);
/*
#include <net/compat.h>
const char hex_asc[] = "0123456789abcdef";
-EXPORT_SYMBOL(hex_asc);
+EXPORT_SYMBOL_GPL(hex_asc);
/* 2.6.24 does not have the struct kobject with a name */
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25))
dev->num_rx_queues = rxq;
return 0;
}
-EXPORT_SYMBOL(netif_set_real_num_rx_queues);
+EXPORT_SYMBOL_GPL(netif_set_real_num_rx_queues);
#endif
#endif
return ret;
}
-EXPORT_SYMBOL(__i2c_transfer);
+EXPORT_SYMBOL_GPL(__i2c_transfer);
#endif
/**
/* Ok, let it rip */
return io_remap_pfn_range(vma, vma->vm_start, pfn, vm_len, vma->vm_page_prot);
}
-EXPORT_SYMBOL(vm_iomap_memory);
+EXPORT_SYMBOL_GPL(vm_iomap_memory);