- 17 4月, 2014 3 次提交
-
-
由 Aaron Sierra 提交于
Save some characters by using to_pci_dev() instead of container_of(). Signed-off-by: NAaron Sierra <asierra@xes-inc.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Joe Schultz 提交于
Previously, tsi148_master_set() assumed the address contained in its PCI bus resource represented the actual PCI bus address. This is a fine assumption on some platforms. However, on platforms that don't use a 1:1 (CPU:PCI) mapping this results in the tsi148 driver configuring an invalid master window translation. This patch updates the vme_tsi148 driver to first convert the address contained in the PCI bus resource into a PCI bus address before using it. [asierra: account for pcibios_resource_to_bus() prototype change] Signed-off-by: NJoe Schultz <jschultz@xes-inc.com> Signed-off-by: NAaron Sierra <asierra@xes-inc.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Joe Schultz 提交于
This patch corrects a typo where "vme_base" was used instead of "*vme_base". The typo resulted in an incorrect value being returned to userspace (via vme_user). It also removes the following compile warning on some platforms: warning: cast from pointer to integer of different size [asierra: commit title/log rewording] Signed-off-by: NJoe Schultz <jschultz@xes-inc.com> Signed-off-by: NAaron Sierra <asierra@xes-inc.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 16 2月, 2014 1 次提交
-
-
由 Martyn Welch 提交于
The ca91cx42 and tsi148 VME bridges use the width of reads and writes on the PCI bus in part to control the width of the cycles on the VME bus. It is important that we can control the width of cycles on the VME bus as some VME hardware requires cycles of a specific width. The memcpy_toio() and memcpy_fromio() functions do not provide sufficient control, so instead loop using ioread functions. Reported-by: NMichael Kenney <mfkenney@gmail.com> Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 08 2月, 2014 1 次提交
-
-
由 Martyn Welch 提交于
In order to ensure the correct width cycles on the VME bus, the VME bridge drivers implement an algorithm to utilise the largest possible width reads and writes whilst maintaining natural alignment constraints. The algorithm currently looks at the start address rather than the current read/write address when determining whether a 16-bit width cycle is required to get to 32-bit alignment. This results in incorrect alignment, Reported-by: NJim Strouth <james.strouth@ge.com> Tested-by: NJim Strouth <james.strouth@ge.com> Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 04 12月, 2013 1 次提交
-
-
由 Jingoo Han 提交于
Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro is not preferred. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 20 8月, 2013 1 次提交
-
-
由 Jingoo Han 提交于
Added missing __iomem annotation in order to fix the following sparse warnings: drivers/vme/bridges/vme_tsi148.c:1270:39: warning: incorrect type in initializer (different address spaces) drivers/vme/bridges/vme_tsi148.c:1270:39: expected void *addr drivers/vme/bridges/vme_tsi148.c:1270:39: got void [noderef] <asn:2>* drivers/vme/bridges/vme_tsi148.c:1287:30: warning: incorrect type in argument 1 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1287:30: expected void const volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1287:30: got void *addr drivers/vme/bridges/vme_tsi148.c:1294:47: warning: incorrect type in argument 1 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1294:47: expected void const volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1294:47: got void * drivers/vme/bridges/vme_tsi148.c:1298:48: warning: incorrect type in argument 1 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1298:48: expected void const volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1298:48: got void * drivers/vme/bridges/vme_tsi148.c:1305:17: warning: incorrect type in argument 2 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1305:17: expected void const volatile [noderef] <asn:2>*<noident> drivers/vme/bridges/vme_tsi148.c:1305:17: got void * drivers/vme/bridges/vme_tsi148.c:1310:40: warning: incorrect type in argument 1 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1310:40: expected void const volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1310:40: got void * drivers/vme/bridges/vme_tsi148.c:1314:39: warning: incorrect type in argument 1 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1314:39: expected void const volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1314:39: got void * drivers/vme/bridges/vme_tsi148.c:1351:39: warning: incorrect type in initializer (different address spaces) drivers/vme/bridges/vme_tsi148.c:1351:39: expected void *addr drivers/vme/bridges/vme_tsi148.c:1351:39: got void [noderef] <asn:2>* drivers/vme/bridges/vme_tsi148.c:1369:17: warning: incorrect type in argument 2 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1369:17: expected void volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1369:17: got void *addr drivers/vme/bridges/vme_tsi148.c:1376:25: warning: incorrect type in argument 2 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1376:25: expected void volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1376:25: got void * drivers/vme/bridges/vme_tsi148.c:1380:25: warning: incorrect type in argument 2 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1380:25: expected void volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1380:25: got void * drivers/vme/bridges/vme_tsi148.c:1387:17: warning: incorrect type in argument 1 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1387:17: expected void volatile [noderef] <asn:2>*<noident> drivers/vme/bridges/vme_tsi148.c:1387:17: got void * drivers/vme/bridges/vme_tsi148.c:1392:17: warning: incorrect type in argument 2 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1392:17: expected void volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1392:17: got void * drivers/vme/bridges/vme_tsi148.c:1396:17: warning: incorrect type in argument 2 (different address spaces) drivers/vme/bridges/vme_tsi148.c:1396:17: expected void volatile [noderef] <asn:2>*addr drivers/vme/bridges/vme_tsi148.c:1396:17: got void * Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 25 6月, 2013 1 次提交
-
-
由 Wei Yongjun 提交于
Fix to return a negative error code in the tsi148_crcsr_init() error handling case instead of 0, as done elsewhere in this function. Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 18 6月, 2013 3 次提交
-
-
由 Martyn Welch 提交于
The tsi148 driver can be configured to reserve a window for internal use (as part of the error checking routine). The intialisation of this window currently configures a set of attributes that are never used as these are only ever used by the VME core and this window is not advertised to the core. Remove configuration of these attributes. Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Martyn Welch 提交于
The logic in the init routine for the TSI148 is inverted. It isn't switching on the CR/CSR space when it should be and is reporting it's on when its not. Correct the logic to do the right thing. Reported-by: NDe Roo, Steven <steven.deroo@arcelormittal.com> Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Martyn Welch 提交于
The TSI148 driver provides an optional mechanism for ensuring that errors resulting from posted transfers are caught whilst still relevant. To do this errors are stored in a link list. If bus errors are not checked, this list would grow until available memory had been exhausted. Only store the errors in a link list if error detection is switched on. Reported-by: NDe Roo, Steven <steven.deroo@arcelormittal.com> Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 26 10月, 2012 1 次提交
-
-
由 Wei Yongjun 提交于
Use the module_pci_driver() macro to make the code simpler by eliminating module_init and module_exit calls. dpatch engine is used to auto generate this patch. (https://github.com/weiyj/dpatch) Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 07 9月, 2012 1 次提交
-
-
由 Wei Yongjun 提交于
Since we will be removing items off the list using list_del() we need to use a safer version of the list_for_each() macro aptly named list_for_each_safe(). Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 20 7月, 2012 1 次提交
-
-
由 Martyn Welch 提交于
The memcpy_fromio() and memcpy_toio() functions use the __memcpy() function, at least on x86. This function carries out transfers smaller than 32 bits as multiple 8 bit transfers, causing a single (aligned) 16 bit transfer to be split into 2 8 bit transfers which may not be supported by the target VME device. The commit 53059aa0 fixed this for the ca91cx42, however this was not fixed for the tsi148 at the time. This patch uses the same algorithm to fix the tsi148. Reported-by: NDaniel Lambert <daniel.lambert@clermont.in2p3.fr> Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 09 5月, 2012 1 次提交
-
-
由 H Hartley Sweeten lin 提交于
Functions not referenced outside of a source file should be marked static to prevent them from being exposed globally. Quiets the sparse warnings: warning: symbol 'tsi148_alloc_consistent' was not declared. Should it be static? warning: symbol 'tsi148_free_consistent' was not declared. Should it be static? Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 27 4月, 2012 1 次提交
-
-
由 Greg Kroah-Hartman 提交于
This moves the VME core, VME board drivers, and VME bridge drivers out of the drivers/staging/vme/ area to drivers/vme/. The VME device drivers have not moved out yet due to some API questions they are still working through, that should happen soon, hopefully. Cc: Martyn Welch <martyn.welch@ge.com> Cc: Manohar Vanga <manohar.vanga@cern.ch> Cc: Vincent Bossier <vincent.bossier@gmail.com> Cc: "Emilio G. Cota" <cota@braap.org> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 11 4月, 2012 2 次提交
-
-
由 Martyn Welch 提交于
The DMA functionality fails to work on little endian processors, such as found on x86 based platforms. The DMA engine copies the link list descriptors from memory into big endian registers. On little endian systems this results in the values being byte swapped. This patch uses standard kernel functionality to ensure that the descriptors are stored in big endian format. Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Martyn Welch 提交于
The DMA functionality fails to work on some Intel based platforms. Some recent Intel platforms have an IOMMU. Transferring the DMA descriptors, which were mapped using virt_to_phys(), failed. This patch updates the driver to use dma_map_single(). Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 13 1月, 2012 1 次提交
-
-
由 Rusty Russell 提交于
module_param(bool) used to counter-intuitively take an int. In fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy trick. It's time to remove the int/unsigned int option. For this version it'll simply give a warning, but it'll break next kernel version. Acked-by: NMauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
-
- 02 12月, 2011 1 次提交
-
-
由 Martyn Welch 提交于
The use of typedefs is discouraged, remove them. Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 24 8月, 2011 1 次提交
-
-
由 Manohar Vanga 提交于
Make PCI dependent functions ([alloc|free]_consistent() in 'vme.c') bridge specific. By removing the dependency of the VME bridge framework on PCI, this patch allows for addition of non-PCI based VME bridges. Signed-off-by: NManohar Vanga <manohar.vanga@cern.ch> Acked-by: NMartyn Welch <martyn.welch@ge.com> Acked-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 29 6月, 2011 1 次提交
-
-
由 Vincent Bossier 提交于
This patch solves all the existing issues reported by checkpatch.pl in the VME sub-system. Signed-off-by: NVincent Bossier <vincent.bossier@gmail.com> Acked-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 15 3月, 2011 1 次提交
-
-
由 Ilia Mirkin 提交于
This patch was generated by the following semantic patch: // <smpl> @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // </smpl> Signed-off-by: NIlia Mirkin <imirkin@alum.mit.edu> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 01 3月, 2011 1 次提交
-
-
由 Manohar Vanga 提交于
Remove some more unreachable code found in bridges/vme_ca91cx42.c and bridges/vme_tsi148.c Signed-off-by: NManohar Vanga <manohar.vanga@cern.ch> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 10 12月, 2010 1 次提交
-
-
由 Namhyung Kim 提交于
Convert 'const struct pci_device_id xxx[]' to 'DEFINE_PCI_DEVICE_TABLE(xxx)'. Signed-off-by: NNamhyung Kim <namhyung@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 17 11月, 2010 6 次提交
-
-
由 Emilio G. Cota 提交于
Signed-off-by: NEmilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Emilio G. Cota 提交于
Signed-off-by: NEmilio G. Cota <cota@braap.org> Acked-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Emilio G. Cota 提交于
The cookie passed to request_irq isn't the same as the one passed to free_irq, which results in the following warning: [ 63.243533] WARNING: at kernel/irq/manage.c:899 __free_irq+0x9b/0x17d() [ 63.243533] Hardware name: [ 63.243533] Trying to free already-free IRQ 17 [ 63.243533] Modules linked in: vme_tsi148(-) vme e1000e iTCO_wdt iTCO_vendor_support [last unloaded: scsi_wait_scan] [ 63.243533] Pid: 2013, comm: rmmod Not tainted 2.6.35 #2 [ 63.243533] Call Trace: [ 63.243533] [<ffffffff81036ea3>] warn_slowpath_common+0x80/0x98 [ 63.243533] [<ffffffff81036f4f>] warn_slowpath_fmt+0x41/0x43 [ 63.243533] [<ffffffff810678c4>] __free_irq+0x9b/0x17d [ 63.243533] [<ffffffff810679d9>] free_irq+0x33/0x4e [ 63.243533] [<ffffffffa004a897>] tsi148_irq_exit+0x6b/0x70 [vme_tsi148] [...] [ 63.243533] ---[ end trace bbf92311d969efb4 ]--- Fix it by passing the same cookie to both functions. Signed-off-by: NEmilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Emilio G. Cota 提交于
tsi148_irq_exit is called twice in .remove, which causes an oops. Remove the second call, which apart from being redundant cannot possibly work; the CR/CSR space has been already unmapped. Signed-off-by: NEmilio G. Cota <cota@braap.org> Acked-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Emilio G. Cota 提交于
This fixes an oops when removing the module. Signed-off-by: NEmilio G. Cota <cota@braap.org> Acked-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Emilio G. Cota 提交于
done with find . -name '*.c' | xargs perl -p -i -e 's/&\(([^()]+)\)/&$1/g' Signed-off-by: NEmilio G. Cota <cota@braap.org> Acked-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 09 7月, 2010 1 次提交
-
-
由 Kulikov Vasiliy 提交于
Remove unnesessary casts from void*. Signed-off-by: NKulikov Vasiliy <segooon@gmail.com> Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 05 6月, 2010 1 次提交
-
-
由 Julia Lawall 提交于
In each case, the containing function is only called from one place, where a spin lock is held. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @gfp exists@ identifier fn; position p; @@ fn(...) { ... when != spin_unlock when any GFP_KERNEL@p ... when any } @locked@ identifier gfp.fn; @@ spin_lock(...) ... when != spin_unlock fn(...) @depends on locked@ position gfp.p; @@ - GFP_KERNEL@p + GFP_ATOMIC // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Cc: Jonathan Cameron <jic23@cam.ac.uk> Cc: Marek Lindner <lindner_marek@yahoo.de> Cc: Martyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 15 5月, 2010 1 次提交
-
-
由 Julia Lawall 提交于
Use kcalloc or kzalloc rather than the combination of kmalloc and memset. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression x,y,flags; statement S; type T; @@ x = - kmalloc + kcalloc ( - y * sizeof(T), + y, sizeof(T), flags); if (x == NULL) S -memset(x, 0, y * sizeof(T)); @@ expression x,size,flags; statement S; @@ -x = kmalloc(size,flags); +x = kzalloc(size,flags); if (x == NULL) S -memset(x, 0, size); // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk>
-
- 12 5月, 2010 3 次提交
-
-
由 Julia Lawall 提交于
Drop cast on the result of kmalloc and similar functions. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ type T; @@ - (T *) (\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\)(...)) // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Martyn Welch 提交于
Correct numerous checkpatch errors in the vme driver. Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
由 Martyn Welch 提交于
Replace instances of printk with dev_err where possible. Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 01 5月, 2010 1 次提交
-
-
由 Martyn Welch 提交于
Somehow I managed to remove a set of rather necessary brackets in commit 29848ac9. Put them back. Signed-off-by: NMartyn Welch <martyn.welch@ge.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 30 3月, 2010 1 次提交
-
-
由 Tejun Heo 提交于
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: NTejun Heo <tj@kernel.org> Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
-