Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2019-05-21 | treewide: Add SPDX license identifier for more missed files | Thomas Gleixner | 1 | -0/+1 | |
Add SPDX license identifiers to all files which: - Have no license information of any form - Have MODULE_LICENCE("GPL*") inside which was used in the initial scan/conversion to ignore the file These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0-only Signed-off-by: Thomas Gleixner <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> | |||||
2018-06-12 | treewide: Use array_size() in vmalloc() | Kees Cook | 1 | -1/+2 | |
The vmalloc() function has no 2-factor argument form, so multiplication factors need to be wrapped in array_size(). This patch replaces cases of: vmalloc(a * b) with: vmalloc(array_size(a, b)) as well as handling cases of: vmalloc(a * b * c) with: vmalloc(array3_size(a, b, c)) This does, however, attempt to ignore constant size factors like: vmalloc(4 * 1024) though any constants defined via macros get caught up in the conversion. Any factors with a sizeof() of "unsigned char", "char", and "u8" were dropped, since they're redundant. The Coccinelle script used for this was: // Fix redundant parens around sizeof(). @@ type TYPE; expression THING, E; @@ ( vmalloc( - (sizeof(TYPE)) * E + sizeof(TYPE) * E , ...) | vmalloc( - (sizeof(THING)) * E + sizeof(THING) * E , ...) ) // Drop single-byte sizes and redundant parens. @@ expression COUNT; typedef u8; typedef __u8; @@ ( vmalloc( - sizeof(u8) * (COUNT) + COUNT , ...) | vmalloc( - sizeof(__u8) * (COUNT) + COUNT , ...) | vmalloc( - sizeof(char) * (COUNT) + COUNT , ...) | vmalloc( - sizeof(unsigned char) * (COUNT) + COUNT , ...) | vmalloc( - sizeof(u8) * COUNT + COUNT , ...) | vmalloc( - sizeof(__u8) * COUNT + COUNT , ...) | vmalloc( - sizeof(char) * COUNT + COUNT , ...) | vmalloc( - sizeof(unsigned char) * COUNT + COUNT , ...) ) // 2-factor product with sizeof(type/expression) and identifier or constant. @@ type TYPE; expression THING; identifier COUNT_ID; constant COUNT_CONST; @@ ( vmalloc( - sizeof(TYPE) * (COUNT_ID) + array_size(COUNT_ID, sizeof(TYPE)) , ...) | vmalloc( - sizeof(TYPE) * COUNT_ID + array_size(COUNT_ID, sizeof(TYPE)) , ...) | vmalloc( - sizeof(TYPE) * (COUNT_CONST) + array_size(COUNT_CONST, sizeof(TYPE)) , ...) | vmalloc( - sizeof(TYPE) * COUNT_CONST + array_size(COUNT_CONST, sizeof(TYPE)) , ...) | vmalloc( - sizeof(THING) * (COUNT_ID) + array_size(COUNT_ID, sizeof(THING)) , ...) | vmalloc( - sizeof(THING) * COUNT_ID + array_size(COUNT_ID, sizeof(THING)) , ...) | vmalloc( - sizeof(THING) * (COUNT_CONST) + array_size(COUNT_CONST, sizeof(THING)) , ...) | vmalloc( - sizeof(THING) * COUNT_CONST + array_size(COUNT_CONST, sizeof(THING)) , ...) ) // 2-factor product, only identifiers. @@ identifier SIZE, COUNT; @@ vmalloc( - SIZE * COUNT + array_size(COUNT, SIZE) , ...) // 3-factor product with 1 sizeof(type) or sizeof(expression), with // redundant parens removed. @@ expression THING; identifier STRIDE, COUNT; type TYPE; @@ ( vmalloc( - sizeof(TYPE) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | vmalloc( - sizeof(TYPE) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | vmalloc( - sizeof(TYPE) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | vmalloc( - sizeof(TYPE) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | vmalloc( - sizeof(THING) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | vmalloc( - sizeof(THING) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | vmalloc( - sizeof(THING) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | vmalloc( - sizeof(THING) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) ) // 3-factor product with 2 sizeof(variable), with redundant parens removed. @@ expression THING1, THING2; identifier COUNT; type TYPE1, TYPE2; @@ ( vmalloc( - sizeof(TYPE1) * sizeof(TYPE2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | vmalloc( - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | vmalloc( - sizeof(THING1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | vmalloc( - sizeof(THING1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | vmalloc( - sizeof(TYPE1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) | vmalloc( - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) ) // 3-factor product, only identifiers, with redundant parens removed. @@ identifier STRIDE, SIZE, COUNT; @@ ( vmalloc( - (COUNT) * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - COUNT * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - COUNT * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - (COUNT) * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - COUNT * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - (COUNT) * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - (COUNT) * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | vmalloc( - COUNT * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) ) // Any remaining multi-factor products, first at least 3-factor products // when they're not all constants... @@ expression E1, E2, E3; constant C1, C2, C3; @@ ( vmalloc(C1 * C2 * C3, ...) | vmalloc( - E1 * E2 * E3 + array3_size(E1, E2, E3) , ...) ) // And then all remaining 2 factors products when they're not all constants. @@ expression E1, E2; constant C1, C2; @@ ( vmalloc(C1 * C2, ...) | vmalloc( - E1 * E2 + array_size(E1, E2) , ...) ) Signed-off-by: Kees Cook <[email protected]> | |||||
2018-03-15 | mtd: Unconditionally update ->fail_addr and ->addr in part_erase() | Boris Brezillon | 1 | -1/+0 | |
->fail_addr and ->addr can be updated no matter the result of parent->_erase(), we just need to remove the code doing the same thing in mtd_erase_callback() to avoid adjusting those fields twice. Note that this can be done because all MTD users have been converted to not pass an erase_info->callback() and are thus only taking the ->addr_fail and ->addr fields into account after part_erase() has returned. While we're at it, get rid of the erase_info->mtd field which was only needed to let mtd_erase_callback() get the partition device back. Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Richard Weinberger <[email protected]> | |||||
2018-03-15 | mtd: Stop assuming mtd_erase() is asynchronous | Boris Brezillon | 1 | -64/+28 | |
None of the mtd->_erase() implementations work in an asynchronous manner, so let's simplify MTD users that call mtd_erase(). All they need to do is check the value returned by mtd_erase() and assume that != 0 means failure. Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Richard Weinberger <[email protected]> | |||||
2014-03-10 | mtd: remove some duplicative checks | Dan Carpenter | 1 | -6/+3 | |
"rc" is an error code here, no need to check it a second time. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Brian Norris <[email protected]> | |||||
2012-01-09 | mtd: do not use mtd->sync directly | Artem Bityutskiy | 1 | -2/+1 | |
This patch teaches 'mtd_sync()' to do nothing when the MTD driver does not have the '->sync()' method, which allows us to remove all direct 'mtd->sync' accesses. Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2012-01-09 | mtd: introduce mtd_sync interface | Artem Bityutskiy | 1 | -1/+1 | |
Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2012-01-09 | mtd: introduce mtd_write interface | Artem Bityutskiy | 1 | -9/+8 | |
Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2012-01-09 | mtd: introduce mtd_read interface | Artem Bityutskiy | 1 | -12/+12 | |
Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2012-01-09 | mtd: introduce mtd_erase interface | Artem Bityutskiy | 1 | -1/+1 | |
This patch is part of a patch-set which changes the MTD interface from 'mtd->func()' form to 'mtd_func()' form. We need this because we want to add common code to to all drivers in the mtd core level, which is impossible with the current interface when MTD clients call driver functions like 'read()' or 'write()' directly. At this point we just introduce a new inline wrapper function, but later some of them are expected to gain more code. E.g., the input parameters check should be moved to the wrappers rather than be duplicated at many drivers. This particular patch introduced the 'mtd_erase()' interface. The following patches add all the other interfaces one by one. Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2011-10-31 | mtd: Add module.h to drivers users that were implicitly using it. | Paul Gortmaker | 1 | -0/+1 | |
We are cleaning up the implicit presence of module.h that these drivers are taking advantage of. Fix them in advance of the cleanup operation. Signed-off-by: Paul Gortmaker <[email protected]> | |||||
2010-08-08 | mtd: Update copyright notices | David Woodhouse | 1 | -1/+1 | |
Signed-off-by: David Woodhouse <[email protected]> | |||||
2010-02-26 | mtd: blktrans: Hotplug fixes | Maxim Levitsky | 1 | -1/+0 | |
* Add locking where it was missing. * Don't do a get_mtd_device in blktrans_open because it would lead to a deadlock; instead do that in add_mtd_blktrans_dev. * Only free the mtd_blktrans_dev structure when the last user exits. * Flush request queue on device removal. * Track users, and call tr->release in del_mtd_blktrans_dev Due to that ->open and release aren't called more that once. Now it is safe to call del_mtd_blktrans_dev while the device is still in use. Signed-off-by: Maxim Levitsky <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2008-12-10 | [MTD] remove private wrapper of endian helpers in rfd_ftl.c | Harvey Harrison | 1 | -4/+2 | |
Base versions handle constant folding just fine. Signed-off-by: Harvey Harrison <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2008-12-10 | [MTD] update internal API to support 64-bit device size | Adrian Hunter | 1 | -11/+12 | |
MTD internal API presently uses 32-bit values to represent device size. This patch updates them to 64-bits but leaves the external API unchanged. Extending the external API is a separate issue for several reasons. First, no one needs it at the moment. Secondly, whether the implementation is done with IOCTLs, sysfs or both is still debated. Thirdly external API changes require the internal API to be accepted first. Note that although the MTD API will be able to support 64-bit device sizes, existing drivers do not and are not required to do so, although NAND base has been updated. In general, changing from 32-bit to 64-bit values cause little or no changes to the majority of the code with the following exceptions: - printk message formats - division and modulus of 64-bit values - NAND base support - 32-bit local variables used by mtdpart and mtdconcat - naughtily assuming one structure maps to another in MEMERASE ioctl Signed-off-by: Adrian Hunter <[email protected]> Signed-off-by: Artem Bityutskiy <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2008-06-04 | MTD/JFFS2: remove CVS keywords | Adrian Bunk | 1 | -2/+0 | |
Once upon a time, the MTD repository was using CVS. This patch therefore removes all usages of the no longer updated CVS keywords from the MTD code. This also includes code that printed them to the user. Signed-off-by: Adrian Bunk <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2008-04-22 | [MTD] make struct rfd_ftl_tr static | Adrian Bunk | 1 | -1/+1 | |
This patch makes the needlessly global struct rfd_ftl_tr static. Signed-off-by: Adrian Bunk <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2007-07-23 | [MTD] Remove embedded return in RFD FTL. | [email protected] | 1 | -5/+3 | |
embedded returns are evil. Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2007-07-23 | [MTD] Fix potential leak in rfd_ftl_add_mtd | Florin Malita | 1 | -0/+1 | |
This fixes a leak in the !mtd->erasesize error path (Coverity 1765). Signed-off-by: Florin Malita <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2007-01-18 | Merge branch 'master' of ↵ | David Woodhouse | 1 | -1/+1 | |
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 | |||||
2006-12-13 | [PATCH] Fix numerous kcalloc() calls, convert to kzalloc() | Robert P. J. Day | 1 | -1/+1 | |
All kcalloc() calls of the form "kcalloc(1,...)" are converted to the equivalent kzalloc() calls, and a few kcalloc() calls with the incorrect ordering of the first two arguments are fixed. Signed-off-by: Robert P. J. Day <[email protected]> Cc: Jeff Garzik <[email protected]> Cc: Alan Cox <[email protected]> Cc: Dominik Brodowski <[email protected]> Cc: Adam Belay <[email protected]> Cc: James Bottomley <[email protected]> Cc: Greg KH <[email protected]> Cc: Mark Fasheh <[email protected]> Cc: Trond Myklebust <[email protected]> Cc: Neil Brown <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]> | |||||
2006-11-28 | [MTD] Allow variable block sizes in mtd_blkdevs | Richard Purdie | 1 | -1/+2 | |
Currently, mtd_blkdevs enforces a block size of 512, even if the drivers can seemingly request a different size. This patch fixes mtd_blkdevs so block sizes other than 512 work correctly. Signed-off-by: Richard Purdie <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2006-05-17 | [MTD] RFD FTL: Be noisier, and don't assume block without RFD magic are erased | Sean Young | 1 | -23/+25 | |
Signed-off-by: Sean Young <[email protected]> Signed-off-by: David Woodhouse <[email protected]> | |||||
2006-01-08 | [PATCH] fix more missing includes | Tim Schmielau | 1 | -0/+1 | |
Include fixes for 2.6.14-git11. Should allow to remove sched.h from module.h on i386, x86_64, arm, ia64, ppc, ppc64, and s390. Probably more to come since I haven't yet checked the other archs. Signed-off-by: Tim Schmielau <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]> | |||||
2005-11-29 | [MTD] RFD_FTL: Use lanana assigned major device number | Sean Young | 1 | -4/+2 | |
A major block device number is now assigned by lanana. Signed-off-by: Sean Young <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> | |||||
2005-11-09 | [PATCH] mtd: rfd_ftl build fix | Andrew Morton | 1 | -0/+1 | |
drivers/mtd/rfd_ftl.c: In function `find_free_block': drivers/mtd/rfd_ftl.c:528: error: `jiffies' undeclared (first use in this function) drivers/mtd/rfd_ftl.c:528: error: (Each undeclared identifier is reported only once drivers/mtd/rfd_ftl.c:528: error: for each function it appears in.) Cc: Thomas Gleixner <[email protected]> Cc: David Woodhouse <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]> | |||||
2005-11-07 | [MTD] core: Clean up trailing white spaces | Thomas Gleixner | 1 | -57/+57 | |
Signed-off-by: Thomas Gleixner <[email protected]> | |||||
2005-11-06 | [MTD] Add Resident Flash Disk (RFD) support | Sean Young | 1 | -0/+855 | |
This type of flash translation layer (FTL) is used by the Embedded BIOS by General Software. It is known as the Resident Flash Disk (RFD), see: http://www.gensw.com/pages/prod/bios/rfd.htm Signed-off-by: Sean Young <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> |