lkml.org 
[lkml]   [2016]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
Subject[BUG REPORT] use of unreachable() masks uninitialized variables warnings
From
Hi,

I noticed that the use of the function -- unreachable() -- inside of
the BUG() macro in arch/x86/include/asm/bug.h causes compiler output
to be suspect based on review of assembly output for quite a few
areas.

if as a test, you remove the call to unreachable() in the BUG() macro,
it seems to generate a large number of build warnings about the use of
uninitialized variables that are apparently masked by the compiler
since it believes this code is going to halt, even in the cases where
the BUG() macro is used conditionally, as in an if (condition) then
BUG() (which the compiler does not seem to understand).

This seems to indicate that the use of these built in macros telling
the compiler to create a bunch of infinite jump labels is masking
quite a few bugs lurking around in the regular code since gcc
apparently just throws out the checks for uninitialized variables in
any function if it sees this macro anywhere in the function.

Here are the sources of several bugs I have seen recently in ext4 I am
pretty sure with a null bh. One good check is to set the BUG() macro
NOT TO call unreachable() as a build test since the compiler will
ignore uninitialized variables in a function if someone calls BUG()
even conditionally, and never report them during build.


The following are from v4.4.1 with a BUG() macro with the call to
unreachable() removed:

arch/x86/kernel/apic/x2apic_uv_x.c: In function ‘boot_pnode_to_blade’:
arch/x86/kernel/apic/x2apic_uv_x.c:443:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
arch/x86/kernel/apic/x2apic_uv_x.c: In function ‘uv_acpi_madt_oem_check’:
arch/x86/kernel/apic/x2apic_uv_x.c:201:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
arch/x86/kvm/x86.c: In function ‘emulator_cmpxchg_emulated’:
arch/x86/kvm/x86.c:4562:5: warning: ‘exchanged’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (!exchanged)
^
In file included from kernel/locking/qspinlock.c:470:0:
kernel/locking/qspinlock_paravirt.h: In function ‘pv_unhash’:
kernel/locking/qspinlock_paravirt.h:144:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
kernel/locking/qspinlock_paravirt.h: In function ‘pv_hash’:
kernel/locking/qspinlock_paravirt.h:121:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
kernel/sched/core.c: In function ‘pick_next_task’:
kernel/sched/core.c:3064:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
kernel/seccomp.c: In function ‘seccomp_phase1’:
kernel/seccomp.c:672:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
mm/mmap.c: In function ‘vma_adjust’:
mm/mmap.c:661:15: warning: ‘rb_parent’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
__vma_link_rb(mm, vma, rb_link, rb_parent);
^
mm/mmap.c:692:29: note: ‘rb_parent’ was declared here
struct rb_node **rb_link, *rb_parent;
^
mm/mmap.c:661:15: warning: ‘rb_link’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
__vma_link_rb(mm, vma, rb_link, rb_parent);
^
mm/mmap.c:692:19: note: ‘rb_link’ was declared here
struct rb_node **rb_link, *rb_parent;
^
mm/mmap.c:660:17: warning: ‘prev’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
__vma_link_list(mm, vma, prev, rb_parent);
^
mm/mmap.c:691:25: note: ‘prev’ was declared here
struct vm_area_struct *prev;
^
mm/hugetlb.c: In function ‘__vma_reservation_common’:
mm/hugetlb.c:1815:3: warning: ‘ret’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
return ret < 0 ? ret : 0;
^
mm/mempolicy.c: In function ‘mempolicy_slab_node’:
mm/mempolicy.c:1731:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
mm/memcontrol.c: In function ‘mem_cgroup_read_u64’:
mm/memcontrol.c:2892:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from mm/memcontrol.c:34:0:
mm/memcontrol.c: In function ‘mem_cgroup_reset’:
include/linux/page_counter.h:49:21: warning: ‘counter’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
counter->watermark = page_counter_read(counter);
^
mm/memcontrol.c:3038:23: note: ‘counter’ was declared here
struct page_counter *counter;
^
mm/memcontrol.c: In function ‘__mem_cgroup_usage_unregister_event’:
mm/memcontrol.c:3511:6: warning: ‘usage’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
if (new->entries[j].threshold <= usage) {
^
mm/memcontrol.c:3506:35: warning: ‘thresholds’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
for (i = 0, j = 0; i < thresholds->primary->size; i++) {
^
mm/memcontrol.c: In function ‘__mem_cgroup_usage_register_event’:
mm/memcontrol.c:3423:6: warning: ‘usage’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
if (new->entries[i].threshold <= usage) {
^
mm/memcontrol.c:3392:16: warning: ‘thresholds’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (thresholds->primary)
^
In file included from ./arch/x86/include/asm/atomic.h:4:0,
from include/linux/atomic.h:4,
from include/linux/page_counter.h:4,
from mm/memcontrol.c:34:
mm/memcontrol.c: In function ‘mem_cgroup_read_u64’:
include/linux/compiler.h:207:26: warning: ‘counter’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
case 8: *(__u64 *)res = *(volatile __u64 *)p; break; \
^
mm/memcontrol.c:2858:23: note: ‘counter’ was declared here
struct page_counter *counter;
^
mm/hugetlb_cgroup.c: In function ‘hugetlb_cgroup_read_u64’:
mm/hugetlb_cgroup.c:268:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/btrfs/inode.c: In function ‘run_delalloc_nocow’:
fs/btrfs/inode.c:1384:6: warning: ‘extent_end’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (extent_end <= start) {
^
In file included from include/linux/sched.h:17:0,
from fs/btrfs/volumes.c:18:
fs/btrfs/volumes.c: In function ‘__btrfs_alloc_chunk’:
include/linux/kernel.h:725:24: warning: ‘max_chunk_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
_min1 < _min2 ? _min1 : _min2; })
^
fs/btrfs/volumes.c:4507:6: note: ‘max_chunk_size’ was declared here
u64 max_chunk_size;
^
fs/btrfs/volumes.c:4599:29: warning: ‘max_stripe_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
ret = find_free_dev_extent(trans, device,
^
fs/btrfs/delayed-inode.c: In function ‘__btrfs_add_delayed_item’:
fs/btrfs/delayed-inode.c:407:18: warning: ‘root’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
struct rb_root *root;
^
fs/btrfs/backref.c: In function ‘__add_delayed_refs’:
fs/btrfs/backref.c:649:33: warning: ‘sgn’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
*total_refs += (node->ref_mod * sgn);
^
fs/btrfs/acl.c: In function ‘btrfs_get_acl’:
fs/btrfs/acl.c:49:25: warning: ‘name’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
size = __btrfs_getxattr(inode, name, "", 0);
^
fs/ceph/locks.c: In function ‘ceph_lock_wait_for_completion’:
fs/ceph/locks.c:140:40: warning: ‘lock_type’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
intr_req->r_args.filelock_change.rule = lock_type;
^
In file included from fs/ext4/file.c:30:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/fsync.c:32:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/inode.c:41:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/ext4/inode.c: In function ‘ext4_map_blocks’:
fs/ext4/inode.c:548:5: warning: ‘retval’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
if (retval > 0 && map->m_flags & EXT4_MAP_MAPPED) {
^
In file included from fs/ext4/super.c:48:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/extents.c:43:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/ext4/extents.c: In function ‘ext4_ext_put_gap_in_cache’:
fs/ext4/extents.c:2306:14: warning: ‘lblock’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
ext4_lblk_t lblock;
^
fs/ext4/extents.c:2305:14: warning: ‘len’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
ext4_lblk_t len;
^
In file included from fs/ext4/ext4_jbd2.c:5:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/mballoc.c:24:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/move_extent.c:19:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/indirect.c:23:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
In file included from fs/ext4/inline.c:17:0:
fs/ext4/ext4_jbd2.h: In function ‘ext4_inode_journal_mode’:
fs/ext4/ext4_jbd2.h:409:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/ext4/acl.c: In function ‘ext4_get_acl’:
fs/ext4/acl.c:160:9: warning: ‘name_index’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
retval = ext4_xattr_get(inode, name_index, "", NULL, 0);
^
fs/nfs/filelayout/filelayout.c: In function ‘filelayout_get_dserver_offset’:
fs/nfs/filelayout/filelayout.c:86:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
fs/nfs/flexfilelayout/flexfilelayoutdev.c: In function
‘nfs4_ff_find_or_create_ds_client’:
fs/nfs/flexfilelayout/flexfilelayoutdev.c:493:1: warning: control
reaches end of non-void function [-Wreturn-type]
}
^
In file included from include/linux/sunrpc/svcsock.h:13:0,
from include/linux/sunrpc/svcauth_gss.h:16,
from fs/nfsd/nfs4state.c:42:
include/linux/sunrpc/svc_xprt.h: In function ‘svc_addr_len’:
include/linux/sunrpc/svc_xprt.h:174:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
fs/notify/fanotify/fanotify.c: In function ‘fanotify_handle_event’:
fs/notify/fanotify/fanotify.c:143:32: warning: ‘marks_ignored_mask’
may be used uninitialized in this function [-Wmaybe-uninitialized]
!(marks_mask & FS_ISDIR & ~marks_ignored_mask))
^
fs/notify/fanotify/fanotify.c:106:20: note: ‘marks_ignored_mask’ was
declared here
__u32 marks_mask, marks_ignored_mask;
^
fs/notify/fanotify/fanotify.c:143:30: warning: ‘marks_mask’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
!(marks_mask & FS_ISDIR & ~marks_ignored_mask))
^
fs/notify/fanotify/fanotify.c:106:8: note: ‘marks_mask’ was declared here
__u32 marks_mask, marks_ignored_mask;
^
fs/quota/kqid.c: In function ‘qid_eq’:
fs/quota/kqid.c:26:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/quota/kqid.c: In function ‘qid_lt’:
fs/quota/kqid.c:52:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/quota/kqid.c: In function ‘from_kqid’:
fs/quota/kqid.c:79:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/quota/kqid.c: In function ‘from_kqid_munged’:
fs/quota/kqid.c:112:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/quota/kqid.c: In function ‘qid_valid’:
fs/quota/kqid.c:131:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
fs/udf/inode.c: In function ‘udf_setsize’:
fs/udf/inode.c:641:15: warning: ‘adsize’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
epos.offset -= adsize;
^
fs/udf/inode.c:608:6: note: ‘adsize’ was declared here
int adsize;
^
fs/udf/truncate.c: In function ‘udf_truncate_tail_extent’:
fs/udf/truncate.c:105:16: warning: ‘adsize’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
epos.offset -= adsize;
^
fs/udf/truncate.c: In function ‘udf_truncate_extents’:
fs/udf/truncate.c:229:14: warning: ‘adsize’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
epos.offset -= adsize;
^
fs/xfs/xfs_acl.c: In function ‘xfs_get_acl’:
fs/xfs/xfs_acl.c:156:8: warning: ‘ea_name’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
error = xfs_attr_get(ip, ea_name, (unsigned char *)xfs_acl,
^
fs/posix_acl.c: In function ‘acl_by_type’:
fs/posix_acl.c:34:1: warning: control reaches end of non-void function
[-Wreturn-type]
}
^
In file included from include/linux/async_tx.h:20:0,
from crypto/async_tx/async_pq.c:27:
include/linux/dmaengine.h: In function ‘dma_maxpq’:
include/linux/dmaengine.h:955:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
block/cfq-iosched.c: In function ‘cfq_async_queue_prio’:
block/cfq-iosched.c:3775:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
drivers/ata/pata_atiixp.c: In function ‘atiixp_set_dmamode’:
drivers/ata/pata_atiixp.c:195:24: warning: ‘wanted_pio’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
atiixp_set_pio_timing(ap, adev, wanted_pio);
^
drivers/gpu/drm/gma500/psb_irq.c: In function ‘psb_pipestat’:
drivers/gpu/drm/gma500/psb_irq.c:47:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/gma500/psb_irq.c: In function ‘mid_pipe_event’:
drivers/gpu/drm/gma500/psb_irq.c:59:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/gma500/psb_irq.c: In function ‘mid_pipeconf’:
drivers/gpu/drm/gma500/psb_irq.c:83:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/i915/i915_sysfs.c: In function ‘gt_rp_mhz_show’:
drivers/gpu/drm/i915/i915_sysfs.c:492:17: warning: ‘val’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
return snprintf(buf, PAGE_SIZE, "%d\n", val);
^
In file included from drivers/gpu/drm/i915/i915_trace.h:10:0,
from drivers/gpu/drm/i915/i915_drv.h:2636,
from drivers/gpu/drm/i915/intel_runtime_pm.c:32:
drivers/gpu/drm/i915/intel_drv.h: In function ‘vlv_dport_to_phy’:
drivers/gpu/drm/i915/intel_drv.h:837:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/i915/intel_drv.h: In function ‘vlv_dport_to_channel’:
drivers/gpu/drm/i915/intel_drv.h:823:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/i915/i915_cmd_parser.c: In function ‘i915_cmd_parser_init_ring’:
drivers/gpu/drm/i915/i915_cmd_parser.c:563:2: warning:
‘cmd_table_count’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
for (i = 0; i < cmd_table_count; i++) {
^
drivers/gpu/drm/i915/i915_cmd_parser.c:691:6: note: ‘cmd_table_count’
was declared here
int cmd_table_count;
^
drivers/gpu/drm/i915/i915_cmd_parser.c:690:35: warning: ‘cmd_tables’
may be used uninitialized in this function [-Wmaybe-uninitialized]
const struct drm_i915_cmd_table *cmd_tables;
^
In file included from include/linux/list.h:8:0,
from include/linux/agp_backend.h:33,
from include/drm/drmP.h:35,
from drivers/gpu/drm/i915/i915_gem_context.c:88:
drivers/gpu/drm/i915/i915_gem_context.c: In function ‘i915_gem_context_init’:
include/linux/kernel.h:63:30: warning: ‘ret’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
#define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1)
^
drivers/gpu/drm/i915/i915_gem_context.c:111:6: note: ‘ret’ was declared here
int ret;
^
In file included from drivers/gpu/drm/i915/intel_display.c:36:0:
drivers/gpu/drm/i915/intel_drv.h: In function ‘vlv_pipe_to_channel’:
drivers/gpu/drm/i915/intel_drv.h:851:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/i915/intel_display.c: In function ‘ironlake_check_fdi_lanes’:
drivers/gpu/drm/i915/intel_display.c:6564:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/i915/intel_display.c: In function ‘vlv_wait_port_ready’:
drivers/gpu/drm/i915/intel_display.c:1841:6: warning: ‘dpll_reg’ may
be used uninitialized in this function [-Wmaybe-uninitialized]
int dpll_reg;
^
drivers/gpu/drm/i915/intel_display.c:1861:36: warning: ‘port_mask’ may
be used uninitialized in this function [-Wmaybe-uninitialized]
if (wait_for((I915_READ(dpll_reg) & port_mask) == expected_mask, 1000))
^
drivers/gpu/drm/i915/intel_ddi.c: In function ‘intel_prepare_ddi’:
drivers/gpu/drm/i915/intel_ddi.c:441:30: warning: ‘ddi_translations’
may be used uninitialized in this function [-Wmaybe-uninitialized]
const struct ddi_buf_trans *ddi_translations;
^
drivers/gpu/drm/i915/intel_ddi.c:435:6: warning: ‘size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
size;
^
In file included from drivers/gpu/drm/i915/intel_dp.c:38:0:
drivers/gpu/drm/i915/intel_drv.h: In function ‘vlv_pipe_to_channel’:
drivers/gpu/drm/i915/intel_drv.h:851:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/i915/intel_drv.h: In function ‘vlv_dport_to_channel’:
drivers/gpu/drm/i915/intel_drv.h:823:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
In file included from drivers/gpu/drm/i915/intel_hdmi.c:37:0:
drivers/gpu/drm/i915/intel_drv.h: In function ‘vlv_dport_to_channel’:
drivers/gpu/drm/i915/intel_drv.h:823:1: warning: control reaches end
of non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c: In function ‘read_pll_ref’:
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:118:5: warning: ‘M’ may
be used uninitialized in this function [-Wmaybe-uninitialized]
if (M)
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:58:12: note: ‘M’ was
declared here
int P, N, M, id;
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:119:15: warning: ‘N’
may be used uninitialized in this function [-Wmaybe-uninitialized]
return (ref * N / M) >> P;
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:58:9: note: ‘N’ was declared here
int P, N, M, id;
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:119:3: warning: ‘P’ may
be used uninitialized in this function [-Wmaybe-uninitialized]
return (ref * N / M) >> P;
^
drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.c:58:6: note: ‘P’ was declared here
int P, N, M, id;
^
drivers/gpu/drm/radeon/ni.c: In function ‘ni_init_microcode’:
drivers/gpu/drm/radeon/ni.c:812:6: warning: ‘mc_req_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (rdev->mc_fw->size != mc_req_size) {
^
drivers/gpu/drm/radeon/ni.c:799:5: warning: ‘rlc_req_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (rdev->rlc_fw->size != rlc_req_size) {
^
drivers/gpu/drm/radeon/ni.c:788:5: warning: ‘me_req_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (rdev->me_fw->size != me_req_size) {
^
drivers/gpu/drm/radeon/ni.c:776:5: warning: ‘pfp_req_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if (rdev->pfp_fw->size != pfp_req_size) {
^
drivers/gpu/drm/radeon/ni.c:795:10: warning: ‘rlc_chip_name’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", rlc_chip_name);
^
drivers/gpu/drm/radeon/ni.c:821:11: warning: ‘chip_name’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
^
drivers/gpu/drm/radeon/si.c: In function ‘si_init’:
drivers/gpu/drm/radeon/si.c:1830:42: warning: ‘mc2_req_size’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
if ((rdev->mc_fw->size != mc_req_size) &&
^
drivers/gpu/drm/radeon/si.c:1652:23: note: ‘mc2_req_size’ was declared here
size_t smc_req_size, mc2_req_size;
^
drivers/gpu/drm/radeon/si.c:1862:13: warning: ‘smc_req_size’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
} else if (rdev->smc_fw->size != smc_req_size) {
^
drivers/gpu/drm/radeon/si.c:1652:9: note: ‘smc_req_size’ was declared here
size_t smc_req_size, mc2_req_size;
^
drivers/gpu/drm/radeon/si.c:1830:6: warning: ‘mc_req_size’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
if ((rdev->mc_fw->size != mc_req_size) &&
^
drivers/gpu/drm/radeon/si.c:1651:63: note: ‘mc_req_size’ was declared here
size_t pfp_req_size, me_req_size, ce_req_size, rlc_req_size, mc_req_size;
^
drivers/gpu/drm/radeon/si.c:1850:10: warning: ‘new_chip_name’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", new_chip_name);
^
drivers/gpu/drm/radeon/si.c:1650:14: note: ‘new_chip_name’ was declared here
const char *new_chip_name;
^
drivers/gpu/drm/radeon/si.c:1853:11: warning: ‘chip_name’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
^
drivers/gpu/drm/radeon/si.c:1649:14: note: ‘chip_name’ was declared here
const char *chip_name;
^
drivers/gpu/drm/radeon/cik.c: In function ‘cik_init_microcode’:
drivers/gpu/drm/radeon/cik.c:2295:12: warning: ‘num_fw’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
} else if (new_fw < num_fw) {
^
drivers/gpu/drm/radeon/cik.c:2186:6: warning: ‘rlc_req_size’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
if (rdev->rlc_fw->size != rlc_req_size) {
^
drivers/gpu/drm/radeon/cik.c:2262:11: warning: ‘new_chip_name’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", new_chip_name);
^
drivers/gpu/drm/radeon/cik.c:2265:12: warning: ‘chip_name’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
^
drivers/gpu/drm/radeon/rv770_smc.c: In function ‘rv770_load_smc_ucode’:
drivers/gpu/drm/radeon/rv770_smc.c:489:6: warning: ‘ucode_size’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
u16 ucode_size;
^
drivers/gpu/drm/radeon/rv770_smc.c:384:70: warning: ‘int_vect’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
tmp = (src[i] << 24) | (src[i + 1] << 16) | (src[i + 2] << 8) | src[i + 3];
^
drivers/gpu/drm/radeon/rv770_smc.c:484:12: note: ‘int_vect’ was declared here
const u8 *int_vect;
^
drivers/gpu/drm/radeon/si_smc.c: In function ‘si_load_smc_ucode’:
drivers/gpu/drm/radeon/si_smc.c:215:6: warning: ‘ucode_size’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
u32 ucode_size;
^
drivers/gpu/drm/drm_crtc.c: In function ‘drm_crtc_index’:
drivers/gpu/drm/drm_crtc.c:755:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/drm_crtc.c: In function ‘drm_connector_index’:
drivers/gpu/drm/drm_crtc.c:1007:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
drivers/gpu/drm/drm_crtc.c: In function ‘drm_plane_index’:
drivers/gpu/drm/drm_crtc.c:1299:1: warning: control reaches end of
non-void function [-Wreturn-type]
}
^
drivers/iommu/dmar.c: In function ‘dmar_msi_reg’:
drivers/iommu/dmar.c:1510:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
drivers/md/raid0.c: In function ‘find_zone’:
drivers/md/raid0.c:298:1: warning: control reaches end of non-void
function [-Wreturn-type]
}
^
CC [M] drivers/md/raid1.o
CC [M] drivers/md/raid10.o
CC [M] drivers/md/raid5.o
In file included from ./arch/x86/include/asm/bug.h:48:0,
from include/linux/bug.h:4,
from include/linux/thread_info.h:11,
from ./arch/x86/include/asm/preempt.h:6,
from include/linux/preempt.h:59,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:35,
from include/linux/time.h:5,
from include/uapi/linux/timex.h:56,
from include/linux/timex.h:56,
from include/linux/sched.h:19,
from include/linux/blkdev.h:4,
from drivers/md/raid5.c:46:
drivers/md/raid5.c: In function ‘raid_run_ops’:
include/asm-generic/bug.h:55:35: warning: ‘target’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
^
drivers/md/raid5.c:1383:6: note: ‘target’ was declared here
int target;
^
drivers/media/common/saa7146/saa7146_fops.c: In function ‘fops_write’:
drivers/media/common/saa7146/saa7146_fops.c:425:1: warning: control
reaches end of non-void function [-Wreturn-type]
}
^
drivers/media/common/saa7146/saa7146_fops.c: In function ‘fops_read’:
drivers/media/common/saa7146/saa7146_fops.c:402:1: warning: control
reaches end of non-void function [-Wreturn-type]
}
^
drivers/media/common/saa7146/saa7146_fops.c: In function ‘fops_mmap’:
drivers/media/common/saa7146/saa7146_fops.c:318:6: warning: ‘q’ may be
used uninitialized in this function [-Wmaybe-uninitialized]
res = videobuf_mmap_mapper(q, vma);
^
drivers/media/firewire/firedtv-avc.c: In function ‘avc_tuner_dsd’:
drivers/media/firewire/firedtv-avc.c:591:6: warning: ‘pos’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
int pos, ret;
^
drivers/media/pci/pt1/va1j5jf8007s.c: In function ‘va1j5jf8007s_read_status’:
drivers/media/pci/pt1/va1j5jf8007s.c:143:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
drivers/media/pci/pt1/va1j5jf8007s.c: In function ‘va1j5jf8007s_tune’:
drivers/media/pci/pt1/va1j5jf8007s.c:508:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
CC [M] drivers/media/pci/pt1/va1j5jf8007t.o
drivers/media/pci/pt1/va1j5jf8007t.c: In function ‘va1j5jf8007t_read_status’:
drivers/media/pci/pt1/va1j5jf8007t.c:127:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
drivers/media/pci/pt1/va1j5jf8007t.c: In function ‘va1j5jf8007t_tune’:
drivers/media/pci/pt1/va1j5jf8007t.c:354:1: warning: control reaches
end of non-void function [-Wreturn-type]
}
^
drivers/media/pci/saa7164/saa7164-encoder.c: In function ‘saa7164_s_frequency’:
drivers/media/pci/saa7164/saa7164-encoder.c:403:5: warning: ‘tsport’
may be used uninitialized in this function [-Wmaybe-uninitialized]
fe = tsport->dvb.frontend;
^

\
 
 \ /
  Last update: 2016-02-11 04:21    [W:0.128 / U:0.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site