Difference between revisions of "Kernel 3.4 to 3.10 porting guide"

From eLinux.org
Jump to: navigation, search
(add commit link for __devinitdata removal)
(capture all the __dev macros that were removed in 3.8)
Line 1: Line 1:
 
Here are some issues you may run into when porting something from 3.4 to 3.10:
 
Here are some issues you may run into when porting something from 3.4 to 3.10:
  
* __devexit is no longer used (or defined)
+
* a whole set of __dev... macros are no longer used or defined
** background: __devexit was an attribute used on certain driver routinesIt was removed between 3.4 and 3.10, and should no longer be used
+
** Here is the list: __devinit, __devinitdata, __devinitconst, __devexit, __devexitdata, __devexitconst
** just remove the attribute from any functions it is used with
+
** background: These attribute were used on certain driver and data declarations, putting them in a separate ELF section that could be discarded under certain circumstancesThis functionality is no longer relevant, and the macros were removed in version 3.8 of the kernel. The macros should no longer be used.
----
+
** Just remove the attributes any place they are used.
* __devinitdata is no longer used (or defined)
+
** background: __devinitdata was an attribute used on certain data declarations. It was removed between 3.4 and 3.10 and should not longer be used
+
 
** see this commit: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54b956b903607
 
** see this commit: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54b956b903607
** just remove the attribute from any declarations is it used with
 
 
----
 
----
 
* sysdev.h is gone, along with all it declared:
 
* sysdev.h is gone, along with all it declared:

Revision as of 23:11, 10 July 2013

Here are some issues you may run into when porting something from 3.4 to 3.10:

  • a whole set of __dev... macros are no longer used or defined
    • Here is the list: __devinit, __devinitdata, __devinitconst, __devexit, __devexitdata, __devexitconst
    • background: These attribute were used on certain driver and data declarations, putting them in a separate ELF section that could be discarded under certain circumstances. This functionality is no longer relevant, and the macros were removed in version 3.8 of the kernel. The macros should no longer be used.
    • Just remove the attributes any place they are used.
    • see this commit: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54b956b903607

  • sysdev.h is gone, along with all it declared:
    • struct sys_device, struct sysdev_attribute

  • arch/arm/include/asm/hardware/gic.h was moved to include/linux/irqchip/arm-gic.h
    • change #include <asm/hardware/gic.h> to #include <linux/irqchip/arm-gic.h>