diff options
author | Andrey Konovalov <andrey.konovalov@linaro.org> | 2015-04-30 18:57:00 +0300 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2015-04-30 18:57:00 +0300 |
commit | eecc87b23d1c5388c8fb7a183ef1e6f60d3cde8a (patch) | |
tree | 3a2b96613c237f904ea5e1bba98b2db7d115b0c0 /drivers | |
parent | a02ae6c69680b4a30f58cb1741d3f2f1e671885f (diff) | |
parent | 230b22d72454f0b9ed2cf1410771bbba7830f89e (diff) |
Automatically merging tracking-llvm into merge-linux-linaro
Conflicting files:
arch/arm/kernel/psci.c
arch/mips/include/asm/thread_info.h
arch/mips/math-emu/dp_add.c
arch/mips/math-emu/dp_sub.c
arch/mips/math-emu/sp_add.c
arch/mips/math-emu/sp_sub.c
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/bus/arm-cci.c | 2 | ||||
-rw-r--r-- | drivers/md/bcache/sysfs.c | 10 | ||||
-rw-r--r-- | drivers/md/raid10.c | 24 | ||||
-rw-r--r-- | drivers/net/wimax/i2400m/fw.c | 2 | ||||
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas_base.c | 2 |
5 files changed, 23 insertions, 17 deletions
diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c index b854125e4831..1a1f277a4a6f 100644 --- a/drivers/bus/arm-cci.c +++ b/drivers/bus/arm-cci.c @@ -1325,7 +1325,7 @@ asmlinkage void __naked cci_enable_port_for_self(void) [sizeof_struct_ace_port] "i" (sizeof(struct cci_ace_port)), [offsetof_port_phys] "i" (offsetof(struct cci_ace_port, phys)) ); - unreachable(); + // unreachable(); // not allowed in naked function } /** diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c index b3ff57d61dde..53d8baa741fb 100644 --- a/drivers/md/bcache/sysfs.c +++ b/drivers/md/bcache/sysfs.c @@ -731,6 +731,11 @@ static struct attribute *bch_cache_set_internal_files[] = { }; KTYPE(bch_cache_set_internal); +static int __bch_cache_cmp(const void *l, const void *r) +{ + return *((uint16_t *) r) - *((uint16_t *) l); +} + SHOW(__bch_cache) { struct cache *ca = container_of(kobj, struct cache, kobj); @@ -755,9 +760,6 @@ SHOW(__bch_cache) CACHE_REPLACEMENT(&ca->sb)); if (attr == &sysfs_priority_stats) { - int cmp(const void *l, const void *r) - { return *((uint16_t *) r) - *((uint16_t *) l); } - struct bucket *b; size_t n = ca->sb.nbuckets, i; size_t unused = 0, available = 0, dirty = 0, meta = 0; @@ -786,7 +788,7 @@ SHOW(__bch_cache) p[i] = ca->buckets[i].prio; mutex_unlock(&ca->set->bucket_lock); - sort(p, n, sizeof(uint16_t), cmp, NULL); + sort(p, n, sizeof(uint16_t), __bch_cache_cmp, NULL); while (n && !cached[n - 1]) diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index e793ab6b3570..ba244d28e740 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -711,11 +711,7 @@ static int raid10_mergeable_bvec(struct mddev *mddev, max = biovec->bv_len; if (mddev->merge_check_needed) { - struct { - struct r10bio r10_bio; - struct r10dev devs[conf->copies]; - } on_stack; - struct r10bio *r10_bio = &on_stack.r10_bio; + struct r10bio *r10_bio; int s; if (conf->reshape_progress != MaxSector) { /* Cannot give any guidance during reshape */ @@ -723,6 +719,10 @@ static int raid10_mergeable_bvec(struct mddev *mddev, return biovec->bv_len; return 0; } + r10_bio = kmalloc(sizeof *r10_bio + + conf->copies * sizeof(struct r10dev), GFP_NOIO); + if (!r10_bio) + return 0; r10_bio->sector = sector; raid10_find_phys(conf, r10_bio); rcu_read_lock(); @@ -755,6 +755,7 @@ static int raid10_mergeable_bvec(struct mddev *mddev, } } rcu_read_unlock(); + kfree(r10_bio); } return max; } @@ -4554,15 +4555,16 @@ static int handle_reshape_read_error(struct mddev *mddev, /* Use sync reads to get the blocks from somewhere else */ int sectors = r10_bio->sectors; struct r10conf *conf = mddev->private; - struct { - struct r10bio r10_bio; - struct r10dev devs[conf->copies]; - } on_stack; - struct r10bio *r10b = &on_stack.r10_bio; + struct r10bio *r10b; + int slot = 0; int idx = 0; struct bio_vec *bvec = r10_bio->master_bio->bi_io_vec; + r10b = kmalloc(sizeof *r10b + conf->copies * sizeof(struct r10dev), + GFP_NOIO); + if (!r10b) + return -ENOMEM; r10b->sector = r10_bio->sector; __raid10_find_phys(&conf->prev, r10b); @@ -4602,11 +4604,13 @@ static int handle_reshape_read_error(struct mddev *mddev, /* couldn't read this block, must give up */ set_bit(MD_RECOVERY_INTR, &mddev->recovery); + kfree(r10b); return -EIO; } sectors -= s; idx++; } + kfree(r10b); return 0; } diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c index c9c711dcd0e6..a89b5685e68b 100644 --- a/drivers/net/wimax/i2400m/fw.c +++ b/drivers/net/wimax/i2400m/fw.c @@ -652,7 +652,7 @@ static int i2400m_download_chunk(struct i2400m *i2400m, const void *chunk, struct device *dev = i2400m_dev(i2400m); struct { struct i2400m_bootrom_header cmd; - u8 cmd_payload[chunk_len]; + u8 cmd_payload[]; } __packed *buf; struct i2400m_bootrom_header ack; diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 890637fdd61e..2fbf1a246ac7 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -261,7 +261,7 @@ __megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) * @instance: Adapter soft state * @cmd: Command packet to be returned to free command pool */ -inline void +void megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) { unsigned long flags; |