Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

visornic: visornic_set_multi(): simplify if statement[upstream] #43

Closed
selltc opened this issue May 2, 2016 · 3 comments
Closed

visornic: visornic_set_multi(): simplify if statement[upstream] #43

selltc opened this issue May 2, 2016 · 3 comments
Labels

Comments

@selltc
Copy link
Collaborator

selltc commented May 2, 2016

1019   */
1020  static void
1021  visornic_set_multi(struct net_device *netdev)
1022  {
1023          struct uiscmdrsp *cmdrsp;
1024          struct visornic_devdata *devdata = netdev_priv(netdev);
1025  
1026          /* any filtering changes */
1027          if (devdata->old_flags != netdev->flags) {
1028                  if ((netdev->flags & IFF_PROMISC) !=
1029                      (devdata->old_flags & IFF_PROMISC)) {

Source: Dan Carpenter dan.carpenter@oracle.com Mon 5/2/2016 5:53 AM

Reverse these if statements and pull the code in two indent levels.

See KanBoard-1001

@ghost
Copy link

ghost commented May 5, 2016

branch: visornic_simplify_if, commit 7f43241
checkpatch-cleared: yes
T710-1 verified: yes

@selltc
Copy link
Collaborator Author

selltc commented May 6, 2016

This patch looks good to me. Feel free to mark:

Reviewed-by: Tim Sell <Timothy.Sell@unisys.com>

@davidker davidker added the queued label May 9, 2016
@davidker davidker changed the title visornic: visornic_set_multi(): simplify if statement visornic: visornic_set_multi(): simplify if statement[upstream-next] May 9, 2016
@davidker davidker changed the title visornic: visornic_set_multi(): simplify if statement[upstream-next] visornic: visornic_set_multi(): simplify if statement[upstream] May 12, 2016
@selltc selltc assigned ghost May 22, 2016
@selltc
Copy link
Collaborator Author

selltc commented Jun 9, 2016

6/8 - Greg committed this to staging-testing and staging-next:

  • commit 6d8c96c - staging: unisys: visornic: simplify visornic if statements

@selltc selltc closed this as completed Jun 9, 2016
davidker pushed a commit that referenced this issue Jun 14, 2017
If bio has no data, such as ones from blkdev_issue_flush(),
then we have nothing to protect.

This patch prevent bugon like follows:

kfree_debugcheck: out of range ptr ac1fa1d106742a5ah
kernel BUG at mm/slab.c:2773!
invalid opcode: 0000 [#1] SMP
Modules linked in: bcache
CPU: 0 PID: 4428 Comm: xfs_io Tainted: G        W       4.11.0-rc4-ext4-00041-g2ef0043-dirty #43
Hardware name: Virtuozzo KVM, BIOS seabios-1.7.5-11.vz7.4 04/01/2014
task: ffff880137786440 task.stack: ffffc90000ba8000
RIP: 0010:kfree_debugcheck+0x25/0x2a
RSP: 0018:ffffc90000babde0 EFLAGS: 00010082
RAX: 0000000000000034 RBX: ac1fa1d106742a5a RCX: 0000000000000007
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88013f3ccb40
RBP: ffffc90000babde8 R08: 0000000000000000 R09: 0000000000000000
R10: 00000000fcb76420 R11: 00000000725172ed R12: 0000000000000282
R13: ffffffff8150e766 R14: ffff88013a145e00 R15: 0000000000000001
FS:  00007fb09384bf40(0000) GS:ffff88013f200000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fd0172f9e40 CR3: 0000000137fa9000 CR4: 00000000000006f0
Call Trace:
 kfree+0xc8/0x1b3
 bio_integrity_free+0xc3/0x16b
 bio_free+0x25/0x66
 bio_put+0x14/0x26
 blkdev_issue_flush+0x7a/0x85
 blkdev_fsync+0x35/0x42
 vfs_fsync_range+0x8e/0x9f
 vfs_fsync+0x1c/0x1e
 do_fsync+0x31/0x4a
 SyS_fsync+0x10/0x14
 entry_SYSCALL_64_fastpath+0x1f/0xc2

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
davidker pushed a commit that referenced this issue Mar 20, 2019
…acro

Use offsetof() to calculate offset of a field to take advantage of
compiler built-in version when possible, and avoid UBSAN warning when
compiling with Clang:

  UBSAN: Undefined behaviour in mm/swapfile.c:3010:38
  member access within null pointer of type 'union swap_header'
  CPU: 6 PID: 1833 Comm: swapon Tainted: G S                4.19.23 #43
  Call trace:
   dump_backtrace+0x0/0x194
   show_stack+0x20/0x2c
   __dump_stack+0x20/0x28
   dump_stack+0x70/0x94
   ubsan_epilogue+0x14/0x44
   ubsan_type_mismatch_common+0xf4/0xfc
   __ubsan_handle_type_mismatch_v1+0x34/0x54
   __se_sys_swapon+0x654/0x1084
   __arm64_sys_swapon+0x1c/0x24
   el0_svc_common+0xa8/0x150
   el0_svc_compat_handler+0x2c/0x38
   el0_svc_compat+0x8/0x18

Link: http://lkml.kernel.org/r/20190312081902.223764-1-pihsun@chromium.org
Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants