diff options
| author | Huang Shijie <shijie8@gmail.com> | 2012-08-18 13:07:41 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-13 05:50:33 +0900 |
| commit | d7cced49961655a90d61148ce8fd4aaa8c44cd9f (patch) | |
| tree | 0ac0b7646450607e01ef7424bbce94228b864381 /drivers/scsi/mpt2sas/mpi/mpi2_sas.h | |
| parent | 22e22876160b6b19e4aa52d8e562149840945e9b (diff) | |
mtd: mtdpart: break it as soon as we parse out the partitions
commit c51803ddba10d80d9f246066802c6e359cf1d44c upstream.
We may cause a memory leak when the @types has more then one parser.
Take the `default_mtd_part_types` for example. The default_mtd_part_types has
two parsers now: `cmdlinepart` and `ofpart`.
Assume the following case:
The kernel command line sets the partitions like:
#gpmi-nand:20m(boot),20m(kernel),1g(rootfs),-(user)
But the devicetree file(such as arch/arm/boot/dts/imx28-evk.dts) also sets
the same partitions as the kernel command line does.
In the current code, the partitions parsed out by the `ofpart` will
overwrite the @pparts which has already set by the `cmdlinepart` parser,
and the the partitions parsed out by the `cmdlinepart` is missed.
A memory leak occurs.
So we should break the code as soon as we parse out the partitions,
In actually, this patch makes a priority order between the parsers.
If one parser has already parsed out the partitions successfully,
it's no need to use another parser anymore.
Signed-off-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_sas.h')
0 files changed, 0 insertions, 0 deletions
