-
Notifications
You must be signed in to change notification settings - Fork 54.9k
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
Merge pull request #1 from torvalds/master #377
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
make changes
krzk
pushed a commit
to krzk/linux
that referenced
this pull request
May 15, 2017
It must be safe to move these calls outside tree_lock: Will hopefully fix the lockdep splat: [ 3587.997451] ================================= [ 3587.997453] [ INFO: inconsistent lock state ] [ 3587.997456] 4.5.0-rc2-next-20160203-dbg-00007-g37a0a9d-dirty torvalds#377 Not tainted [ 3587.997457] --------------------------------- [ 3587.997459] inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage. [ 3587.997462] cc1plus/22766 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 3587.997464] (&(&mapping->tree_lock)->rlock){+.?...}, at: [<ffffffff8113aaee>] migrate_page_move_mapping+0xbd/0x33f [ 3587.997474] {IN-SOFTIRQ-W} state was registered at: [ 3587.997476] [<ffffffff81082515>] __lock_acquire+0x973/0x18fc [ 3587.997481] [<ffffffff81083c77>] lock_acquire+0x10d/0x1a8 [ 3587.997484] [<ffffffff813c3486>] _raw_spin_lock_irqsave+0x3d/0x51 [ 3587.997489] [<ffffffff81100552>] test_clear_page_writeback+0x75/0x1b4 [ 3587.997493] [<ffffffff810f53cb>] end_page_writeback+0x29/0x4a [ 3587.997497] [<ffffffff8117ffd5>] end_buffer_async_write+0xfb/0x176 [ 3587.997501] [<ffffffff8117fb53>] end_bio_bh_io_sync+0x2c/0x37 [ 3587.997503] [<ffffffff811d0a43>] bio_endio+0x53/0x5b [ 3587.997508] [<ffffffff811d8548>] blk_update_request+0x1fb/0x34d [ 3587.997512] [<ffffffffa00ed512>] scsi_end_request+0x31/0x182 [scsi_mod] [ 3587.997522] [<ffffffffa00eec2d>] scsi_io_completion+0x186/0x46e [scsi_mod] [ 3587.997530] [<ffffffffa00e7aa2>] scsi_finish_command+0xd4/0xdd [scsi_mod] [ 3587.997537] [<ffffffffa00ee51c>] scsi_softirq_done+0xe0/0xe7 [scsi_mod] [ 3587.997544] [<ffffffff811df3ef>] blk_done_softirq+0x84/0x8b [ 3587.997548] [<ffffffff8104625c>] __do_softirq+0x196/0x3f5 [ 3587.997552] [<ffffffff810466aa>] irq_exit+0x40/0x94 [ 3587.997554] [<ffffffff813c6041>] do_IRQ+0x101/0x119 [ 3587.997558] [<ffffffff813c4689>] ret_from_intr+0x0/0x19 [ 3587.997561] [<ffffffff812d9906>] cpuidle_enter+0x17/0x19 [ 3587.997565] [<ffffffff8107c32a>] call_cpuidle+0x3e/0x40 [ 3587.997569] [<ffffffff8107c65b>] cpu_startup_entry+0x242/0x35e [ 3587.997572] [<ffffffff813bd4fa>] rest_init+0x131/0x137 [ 3587.997575] [<ffffffff816d4ec1>] start_kernel+0x3dd/0x3ea [ 3587.997579] [<ffffffff816d42f1>] x86_64_start_reservations+0x2a/0x2c [ 3587.997582] [<ffffffff816d445d>] x86_64_start_kernel+0x16a/0x178 [ 3587.997586] irq event stamp: 191930 [ 3587.997587] hardirqs last enabled at (191929): [<ffffffff810fb0da>] free_hot_cold_page+0x166/0x179 [ 3587.997591] hardirqs last disabled at (191930): [<ffffffff813c34ad>] _raw_spin_lock_irq+0x13/0x47 [ 3587.997594] softirqs last enabled at (191758): [<ffffffff810463a5>] __do_softirq+0x2df/0x3f5 [ 3587.997597] softirqs last disabled at (191741): [<ffffffff810466aa>] irq_exit+0x40/0x94 [ 3587.997600] other info that might help us debug this: [ 3587.997602] Possible unsafe locking scenario: [ 3587.997604] CPU0 [ 3587.997605] ---- [ 3587.997607] lock(&(&mapping->tree_lock)->rlock); [ 3587.997610] <Interrupt> [ 3587.997611] lock(&(&mapping->tree_lock)->rlock); [ 3587.997614] *** DEADLOCK *** [ 3587.997617] 2 locks held by cc1plus/22766: [ 3587.997618] #0: (&mm->mmap_sem){++++++}, at: [<ffffffff81036ee0>] __do_page_fault+0x140/0x35a [ 3587.997626] #1: (&(&mapping->tree_lock)->rlock){+.?...}, at: [<ffffffff8113aaee>] migrate_page_move_mapping+0xbd/0x33f [ 3587.997633] stack backtrace: [ 3587.997636] CPU: 7 PID: 22766 Comm: cc1plus Not tainted 4.5.0-rc2-next-20160203-dbg-00007-g37a0a9d-dirty torvalds#377 [ 3587.997638] 0000000000000000 ffff88010f73f818 ffffffff811f1b02 ffffffff81f35160 [ 3587.997643] ffff88013813e900 ffff88010f73f850 ffffffff810f3000 0000000000000006 [ 3587.997647] ffff88013813f058 ffff88013813e900 ffffffff8107f99d 0000000000000006 [ 3587.997651] Call Trace: [ 3587.997656] [<ffffffff811f1b02>] dump_stack+0x67/0x90 [ 3587.997660] [<ffffffff810f3000>] print_usage_bug.part.24+0x259/0x268 [ 3587.997663] [<ffffffff8107f99d>] ? check_usage_forwards+0x11c/0x11c [ 3587.997666] [<ffffffff81080579>] mark_lock+0x381/0x567 [ 3587.997670] [<ffffffff810807bd>] mark_held_locks+0x5e/0x74 [ 3587.997673] [<ffffffff813c363f>] ? _raw_spin_unlock_irq+0x2c/0x4a [ 3587.997676] [<ffffffff8108093f>] trace_hardirqs_on_caller+0x16c/0x188 [ 3587.997679] [<ffffffff81080968>] trace_hardirqs_on+0xd/0xf [ 3587.997682] [<ffffffff813c363f>] _raw_spin_unlock_irq+0x2c/0x4a [ 3587.997686] [<ffffffff81148bef>] unlock_page_lru+0x11f/0x12a [ 3587.997689] [<ffffffff8114a90f>] mem_cgroup_migrate+0x196/0x1d9 [ 3587.997692] [<ffffffff8113abf3>] migrate_page_move_mapping+0x1c2/0x33f [ 3587.997696] [<ffffffff8113b669>] buffer_migrate_page+0x47/0x102 [ 3587.997699] [<ffffffff8113b4e4>] move_to_new_page+0x56/0x194 [ 3587.997702] [<ffffffff8113bb6b>] migrate_pages+0x447/0x978 [ 3587.997705] [<ffffffff811171f0>] ? isolate_freepages_block+0x353/0x353 [ 3587.997708] [<ffffffff81115cd6>] ? pageblock_pfn_to_page+0xbf/0xbf [ 3587.997711] [<ffffffff81118834>] compact_zone+0x690/0x92e [ 3587.997714] [<ffffffff81118b40>] compact_zone_order+0x6e/0x8a [ 3587.997717] [<ffffffff81118dc3>] try_to_compact_pages+0x151/0x28f [ 3587.997720] [<ffffffff81118dc3>] ? try_to_compact_pages+0x151/0x28f [ 3587.997723] [<ffffffff8108111a>] ? __lock_is_held+0x3c/0x57 [ 3587.997726] [<ffffffff810fc471>] __alloc_pages_direct_compact+0x3e/0xeb [ 3587.997729] [<ffffffff810fc965>] __alloc_pages_nodemask+0x447/0xb8b [ 3587.997732] [<ffffffff81120a18>] ? handle_mm_fault+0x8b4/0x16bf [ 3587.997737] [<ffffffff8106409f>] ? __might_sleep+0x75/0x7c [ 3587.997740] [<ffffffff81140704>] do_huge_pmd_anonymous_page+0x1d1/0x3fc [ 3587.997744] [<ffffffff811202ae>] ? handle_mm_fault+0x14a/0x16bf [ 3587.997747] [<ffffffff81120623>] handle_mm_fault+0x4bf/0x16bf [ 3587.997750] [<ffffffff8108111a>] ? __lock_is_held+0x3c/0x57 [ 3587.997754] [<ffffffff81036f7f>] __do_page_fault+0x1df/0x35a [ 3587.997757] [<ffffffff8103712c>] do_page_fault+0xc/0xe [ 3587.997760] [<ffffffff813c5892>] page_fault+0x22/0x30 Reported-by: Sergey Senozhatsky <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Vladimir Davydov <[email protected]> Cc: Greg Thelen <[email protected]> Cc: Hugh Dickins <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
fengguang
pushed a commit
to 0day-ci/linux
that referenced
this pull request
Mar 15, 2021
This commit fixes the following checkpatch.pl errors: ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#19: FILE: ./hal/HalBtc8723b2Ant.c:19: +static struct COEX_DM_8723B_2ANT * pCoexDm = &GLCoexDm8723b2Ant; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#21: FILE: ./hal/HalBtc8723b2Ant.c:21: +static struct COEX_STA_8723B_2ANT * pCoexSta = &GLCoexSta8723b2Ant; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#111: FILE: ./hal/HalBtc8723b2Ant.c:111: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#192: FILE: ./hal/HalBtc8723b2Ant.c:192: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#215: FILE: ./hal/HalBtc8723b2Ant.c:215: +static void halbtc8723b2ant_MonitorBtCtr(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#265: FILE: ./hal/HalBtc8723b2Ant.c:265: +static void halbtc8723b2ant_QueryBtInfo(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#282: FILE: ./hal/HalBtc8723b2Ant.c:282: +static bool halbtc8723b2ant_IsWifiStatusChanged(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#313: FILE: ./hal/HalBtc8723b2Ant.c:313: +static void halbtc8723b2ant_UpdateBtLinkInfo(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#315: FILE: ./hal/HalBtc8723b2Ant.c:315: + struct BTC_BT_LINK_INFO * pBtLinkInfo = &pBtCoexist->btLinkInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#377: FILE: ./hal/HalBtc8723b2Ant.c:377: +static u8 halbtc8723b2ant_ActionAlgorithm(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#379: FILE: ./hal/HalBtc8723b2Ant.c:379: + struct BTC_BT_LINK_INFO * pBtLinkInfo = &pBtCoexist->btLinkInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#552: FILE: ./hal/HalBtc8723b2Ant.c:552: + struct BTC_COEXIST * pBtCoexist, u8 dacSwingLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#576: FILE: ./hal/HalBtc8723b2Ant.c:576: + struct BTC_COEXIST * pBtCoexist, u8 decBtPwrLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#597: FILE: ./hal/HalBtc8723b2Ant.c:597: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, u8 decBtPwrLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#631: FILE: ./hal/HalBtc8723b2Ant.c:631: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, u8 fwDacSwingLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#666: FILE: ./hal/HalBtc8723b2Ant.c:666: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#689: FILE: ./hal/HalBtc8723b2Ant.c:689: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bRxRfShrinkOn ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#723: FILE: ./hal/HalBtc8723b2Ant.c:723: + struct BTC_COEXIST * pBtCoexist, bool bLowPenaltyRa ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#751: FILE: ./hal/HalBtc8723b2Ant.c:751: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bLowPenaltyRa ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #785: FILE: ./hal/HalBtc8723b2Ant.c:785: +static void halbtc8723b2ant_SetDacSwingReg(struct BTC_COEXIST * pBtCoexist, u32 level) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#798: FILE: ./hal/HalBtc8723b2Ant.c:798: + struct BTC_COEXIST * pBtCoexist, bool bSwDacSwingOn, u32 swDacSwingLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#809: FILE: ./hal/HalBtc8723b2Ant.c:809: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#853: FILE: ./hal/HalBtc8723b2Ant.c:853: + struct BTC_COEXIST * pBtCoexist, bool bAgcTableEn ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#913: FILE: ./hal/HalBtc8723b2Ant.c:913: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bAgcTableEn ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#947: FILE: ./hal/HalBtc8723b2Ant.c:947: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#984: FILE: ./hal/HalBtc8723b2Ant.c:984: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#1050: FILE: ./hal/HalBtc8723b2Ant.c:1050: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, u8 type ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#1099: FILE: ./hal/HalBtc8723b2Ant.c:1099: + struct BTC_COEXIST * pBtCoexist, bool bEnable ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#1120: FILE: ./hal/HalBtc8723b2Ant.c:1120: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bEnable ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1148: FILE: ./hal/HalBtc8723b2Ant.c:1148: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1187: FILE: ./hal/HalBtc8723b2Ant.c:1187: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1199: FILE: ./hal/HalBtc8723b2Ant.c:1199: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1211: FILE: ./hal/HalBtc8723b2Ant.c:1211: + struct BTC_COEXIST * pBtCoexist, u8 antPosType, bool bInitHwCfg, bool bWifiOff ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1214: FILE: ./hal/HalBtc8723b2Ant.c:1214: + struct BTC_BOARD_INFO * pBoardInfo = &pBtCoexist->boardInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1305: FILE: ./hal/HalBtc8723b2Ant.c:1305: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bTurnOn, u8 type ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1437: FILE: ./hal/HalBtc8723b2Ant.c:1437: +static void halbtc8723b2ant_CoexAllOff(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1453: FILE: ./hal/HalBtc8723b2Ant.c:1453: +static void halbtc8723b2ant_InitCoexDm(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1465: FILE: ./hal/HalBtc8723b2Ant.c:1465: +static void halbtc8723b2ant_ActionBtInquiry(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1493: FILE: ./hal/HalBtc8723b2Ant.c:1493: +static bool halbtc8723b2ant_IsCommonAction(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1594: FILE: ./hal/HalBtc8723b2Ant.c:1594: + struct BTC_COEXIST * pBtCoexist, bool bScoHid, bool bTxPause, u8 maxInterval ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2044: FILE: ./hal/HalBtc8723b2Ant.c:2044: +static void halbtc8723b2ant_ActionSco(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2099: FILE: ./hal/HalBtc8723b2Ant.c:2099: +static void halbtc8723b2ant_ActionHid(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2160: FILE: ./hal/HalBtc8723b2Ant.c:2160: +static void halbtc8723b2ant_ActionA2dp(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2241: FILE: ./hal/HalBtc8723b2Ant.c:2241: +static void halbtc8723b2ant_ActionA2dpPanHs(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2291: FILE: ./hal/HalBtc8723b2Ant.c:2291: +static void halbtc8723b2ant_ActionPanEdr(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2349: FILE: ./hal/HalBtc8723b2Ant.c:2349: +static void halbtc8723b2ant_ActionPanHs(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2399: FILE: ./hal/HalBtc8723b2Ant.c:2399: +static void halbtc8723b2ant_ActionPanEdrA2dp(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2460: FILE: ./hal/HalBtc8723b2Ant.c:2460: +static void halbtc8723b2ant_ActionPanEdrHid(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2524: FILE: ./hal/HalBtc8723b2Ant.c:2524: +static void halbtc8723b2ant_ActionHidA2dpPanEdr(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2584: FILE: ./hal/HalBtc8723b2Ant.c:2584: +static void halbtc8723b2ant_ActionHidA2dp(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2659: FILE: ./hal/HalBtc8723b2Ant.c:2659: +static void halbtc8723b2ant_RunCoexistMechanism(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2758: FILE: ./hal/HalBtc8723b2Ant.c:2758: +static void halbtc8723b2ant_WifiOffHwCfg(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2783: FILE: ./hal/HalBtc8723b2Ant.c:2783: +static void halbtc8723b2ant_InitHwConfig(struct BTC_COEXIST * pBtCoexist, bool bBackUp) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2817: FILE: ./hal/HalBtc8723b2Ant.c:2817: +void EXhalbtc8723b2ant_PowerOnSetting(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2819: FILE: ./hal/HalBtc8723b2Ant.c:2819: + struct BTC_BOARD_INFO * pBoardInfo = &pBtCoexist->boardInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2869: FILE: ./hal/HalBtc8723b2Ant.c:2869: +void EXhalbtc8723b2ant_InitHwConfig(struct BTC_COEXIST * pBtCoexist, bool bWifiOnly) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2874: FILE: ./hal/HalBtc8723b2Ant.c:2874: +void EXhalbtc8723b2ant_InitCoexDm(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2881: FILE: ./hal/HalBtc8723b2Ant.c:2881: +void EXhalbtc8723b2ant_DisplayCoexInfo(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2883: FILE: ./hal/HalBtc8723b2Ant.c:2883: + struct BTC_BOARD_INFO * pBoardInfo = &pBtCoexist->boardInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2884: FILE: ./hal/HalBtc8723b2Ant.c:2884: + struct BTC_STACK_INFO * pStackInfo = &pBtCoexist->stackInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2885: FILE: ./hal/HalBtc8723b2Ant.c:2885: + struct BTC_BT_LINK_INFO * pBtLinkInfo = &pBtCoexist->btLinkInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3262: FILE: ./hal/HalBtc8723b2Ant.c:3262: +void EXhalbtc8723b2ant_IpsNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3279: FILE: ./hal/HalBtc8723b2Ant.c:3279: +void EXhalbtc8723b2ant_LpsNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3290: FILE: ./hal/HalBtc8723b2Ant.c:3290: +void EXhalbtc8723b2ant_ScanNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3299: FILE: ./hal/HalBtc8723b2Ant.c:3299: +void EXhalbtc8723b2ant_ConnectNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3308: FILE: ./hal/HalBtc8723b2Ant.c:3308: +void EXhalbtc8723b2ant_MediaStatusNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3354: FILE: ./hal/HalBtc8723b2Ant.c:3354: +void EXhalbtc8723b2ant_SpecialPacketNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3362: FILE: ./hal/HalBtc8723b2Ant.c:3362: + struct BTC_COEXIST * pBtCoexist, u8 *tmpBuf, u8 length ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3506: FILE: ./hal/HalBtc8723b2Ant.c:3506: +void EXhalbtc8723b2ant_HaltNotify(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3517: FILE: ./hal/HalBtc8723b2Ant.c:3517: +void EXhalbtc8723b2ant_PnpNotify(struct BTC_COEXIST * pBtCoexist, u8 pnpState) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3531: FILE: ./hal/HalBtc8723b2Ant.c:3531: +void EXhalbtc8723b2ant_Periodical(struct BTC_COEXIST * pBtCoexist) Signed-off-by: Marco Cesati <[email protected]>
fengguang
pushed a commit
to 0day-ci/linux
that referenced
this pull request
Mar 16, 2021
This commit fixes the following checkpatch.pl errors: ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#19: FILE: ./hal/HalBtc8723b2Ant.c:19: +static struct COEX_DM_8723B_2ANT * pCoexDm = &GLCoexDm8723b2Ant; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#21: FILE: ./hal/HalBtc8723b2Ant.c:21: +static struct COEX_STA_8723B_2ANT * pCoexSta = &GLCoexSta8723b2Ant; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#111: FILE: ./hal/HalBtc8723b2Ant.c:111: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#192: FILE: ./hal/HalBtc8723b2Ant.c:192: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#215: FILE: ./hal/HalBtc8723b2Ant.c:215: +static void halbtc8723b2ant_MonitorBtCtr(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#265: FILE: ./hal/HalBtc8723b2Ant.c:265: +static void halbtc8723b2ant_QueryBtInfo(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#282: FILE: ./hal/HalBtc8723b2Ant.c:282: +static bool halbtc8723b2ant_IsWifiStatusChanged(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#313: FILE: ./hal/HalBtc8723b2Ant.c:313: +static void halbtc8723b2ant_UpdateBtLinkInfo(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#315: FILE: ./hal/HalBtc8723b2Ant.c:315: + struct BTC_BT_LINK_INFO * pBtLinkInfo = &pBtCoexist->btLinkInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#377: FILE: ./hal/HalBtc8723b2Ant.c:377: +static u8 halbtc8723b2ant_ActionAlgorithm(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#379: FILE: ./hal/HalBtc8723b2Ant.c:379: + struct BTC_BT_LINK_INFO * pBtLinkInfo = &pBtCoexist->btLinkInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#552: FILE: ./hal/HalBtc8723b2Ant.c:552: + struct BTC_COEXIST * pBtCoexist, u8 dacSwingLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#576: FILE: ./hal/HalBtc8723b2Ant.c:576: + struct BTC_COEXIST * pBtCoexist, u8 decBtPwrLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#597: FILE: ./hal/HalBtc8723b2Ant.c:597: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, u8 decBtPwrLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#631: FILE: ./hal/HalBtc8723b2Ant.c:631: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, u8 fwDacSwingLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#666: FILE: ./hal/HalBtc8723b2Ant.c:666: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#689: FILE: ./hal/HalBtc8723b2Ant.c:689: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bRxRfShrinkOn ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#723: FILE: ./hal/HalBtc8723b2Ant.c:723: + struct BTC_COEXIST * pBtCoexist, bool bLowPenaltyRa ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#751: FILE: ./hal/HalBtc8723b2Ant.c:751: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bLowPenaltyRa ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #785: FILE: ./hal/HalBtc8723b2Ant.c:785: +static void halbtc8723b2ant_SetDacSwingReg(struct BTC_COEXIST * pBtCoexist, u32 level) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#798: FILE: ./hal/HalBtc8723b2Ant.c:798: + struct BTC_COEXIST * pBtCoexist, bool bSwDacSwingOn, u32 swDacSwingLvl ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#809: FILE: ./hal/HalBtc8723b2Ant.c:809: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#853: FILE: ./hal/HalBtc8723b2Ant.c:853: + struct BTC_COEXIST * pBtCoexist, bool bAgcTableEn ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#913: FILE: ./hal/HalBtc8723b2Ant.c:913: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bAgcTableEn ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#947: FILE: ./hal/HalBtc8723b2Ant.c:947: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#984: FILE: ./hal/HalBtc8723b2Ant.c:984: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#1050: FILE: ./hal/HalBtc8723b2Ant.c:1050: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, u8 type ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#1099: FILE: ./hal/HalBtc8723b2Ant.c:1099: + struct BTC_COEXIST * pBtCoexist, bool bEnable ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" torvalds#1120: FILE: ./hal/HalBtc8723b2Ant.c:1120: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bEnable ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1148: FILE: ./hal/HalBtc8723b2Ant.c:1148: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1187: FILE: ./hal/HalBtc8723b2Ant.c:1187: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1199: FILE: ./hal/HalBtc8723b2Ant.c:1199: + struct BTC_COEXIST * pBtCoexist, ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1211: FILE: ./hal/HalBtc8723b2Ant.c:1211: + struct BTC_COEXIST * pBtCoexist, u8 antPosType, bool bInitHwCfg, bool bWifiOff ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1214: FILE: ./hal/HalBtc8723b2Ant.c:1214: + struct BTC_BOARD_INFO * pBoardInfo = &pBtCoexist->boardInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1305: FILE: ./hal/HalBtc8723b2Ant.c:1305: + struct BTC_COEXIST * pBtCoexist, bool bForceExec, bool bTurnOn, u8 type ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1437: FILE: ./hal/HalBtc8723b2Ant.c:1437: +static void halbtc8723b2ant_CoexAllOff(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1453: FILE: ./hal/HalBtc8723b2Ant.c:1453: +static void halbtc8723b2ant_InitCoexDm(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1465: FILE: ./hal/HalBtc8723b2Ant.c:1465: +static void halbtc8723b2ant_ActionBtInquiry(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1493: FILE: ./hal/HalBtc8723b2Ant.c:1493: +static bool halbtc8723b2ant_IsCommonAction(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #1594: FILE: ./hal/HalBtc8723b2Ant.c:1594: + struct BTC_COEXIST * pBtCoexist, bool bScoHid, bool bTxPause, u8 maxInterval ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2044: FILE: ./hal/HalBtc8723b2Ant.c:2044: +static void halbtc8723b2ant_ActionSco(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2099: FILE: ./hal/HalBtc8723b2Ant.c:2099: +static void halbtc8723b2ant_ActionHid(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2160: FILE: ./hal/HalBtc8723b2Ant.c:2160: +static void halbtc8723b2ant_ActionA2dp(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2241: FILE: ./hal/HalBtc8723b2Ant.c:2241: +static void halbtc8723b2ant_ActionA2dpPanHs(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2291: FILE: ./hal/HalBtc8723b2Ant.c:2291: +static void halbtc8723b2ant_ActionPanEdr(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2349: FILE: ./hal/HalBtc8723b2Ant.c:2349: +static void halbtc8723b2ant_ActionPanHs(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2399: FILE: ./hal/HalBtc8723b2Ant.c:2399: +static void halbtc8723b2ant_ActionPanEdrA2dp(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2460: FILE: ./hal/HalBtc8723b2Ant.c:2460: +static void halbtc8723b2ant_ActionPanEdrHid(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2524: FILE: ./hal/HalBtc8723b2Ant.c:2524: +static void halbtc8723b2ant_ActionHidA2dpPanEdr(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2584: FILE: ./hal/HalBtc8723b2Ant.c:2584: +static void halbtc8723b2ant_ActionHidA2dp(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2659: FILE: ./hal/HalBtc8723b2Ant.c:2659: +static void halbtc8723b2ant_RunCoexistMechanism(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2758: FILE: ./hal/HalBtc8723b2Ant.c:2758: +static void halbtc8723b2ant_WifiOffHwCfg(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2783: FILE: ./hal/HalBtc8723b2Ant.c:2783: +static void halbtc8723b2ant_InitHwConfig(struct BTC_COEXIST * pBtCoexist, bool bBackUp) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2817: FILE: ./hal/HalBtc8723b2Ant.c:2817: +void EXhalbtc8723b2ant_PowerOnSetting(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2819: FILE: ./hal/HalBtc8723b2Ant.c:2819: + struct BTC_BOARD_INFO * pBoardInfo = &pBtCoexist->boardInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2869: FILE: ./hal/HalBtc8723b2Ant.c:2869: +void EXhalbtc8723b2ant_InitHwConfig(struct BTC_COEXIST * pBtCoexist, bool bWifiOnly) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2874: FILE: ./hal/HalBtc8723b2Ant.c:2874: +void EXhalbtc8723b2ant_InitCoexDm(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2881: FILE: ./hal/HalBtc8723b2Ant.c:2881: +void EXhalbtc8723b2ant_DisplayCoexInfo(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2883: FILE: ./hal/HalBtc8723b2Ant.c:2883: + struct BTC_BOARD_INFO * pBoardInfo = &pBtCoexist->boardInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2884: FILE: ./hal/HalBtc8723b2Ant.c:2884: + struct BTC_STACK_INFO * pStackInfo = &pBtCoexist->stackInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #2885: FILE: ./hal/HalBtc8723b2Ant.c:2885: + struct BTC_BT_LINK_INFO * pBtLinkInfo = &pBtCoexist->btLinkInfo; ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3262: FILE: ./hal/HalBtc8723b2Ant.c:3262: +void EXhalbtc8723b2ant_IpsNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3279: FILE: ./hal/HalBtc8723b2Ant.c:3279: +void EXhalbtc8723b2ant_LpsNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3290: FILE: ./hal/HalBtc8723b2Ant.c:3290: +void EXhalbtc8723b2ant_ScanNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3299: FILE: ./hal/HalBtc8723b2Ant.c:3299: +void EXhalbtc8723b2ant_ConnectNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3308: FILE: ./hal/HalBtc8723b2Ant.c:3308: +void EXhalbtc8723b2ant_MediaStatusNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3354: FILE: ./hal/HalBtc8723b2Ant.c:3354: +void EXhalbtc8723b2ant_SpecialPacketNotify(struct BTC_COEXIST * pBtCoexist, u8 type) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3362: FILE: ./hal/HalBtc8723b2Ant.c:3362: + struct BTC_COEXIST * pBtCoexist, u8 *tmpBuf, u8 length ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3506: FILE: ./hal/HalBtc8723b2Ant.c:3506: +void EXhalbtc8723b2ant_HaltNotify(struct BTC_COEXIST * pBtCoexist) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3517: FILE: ./hal/HalBtc8723b2Ant.c:3517: +void EXhalbtc8723b2ant_PnpNotify(struct BTC_COEXIST * pBtCoexist, u8 pnpState) ERROR:POINTER_LOCATION: "foo * bar" should be "foo *bar" #3531: FILE: ./hal/HalBtc8723b2Ant.c:3531: +void EXhalbtc8723b2ant_Periodical(struct BTC_COEXIST * pBtCoexist) Reviewed-by: Dan Carpenter <[email protected]> Signed-off-by: Marco Cesati <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
ojeda
pushed a commit
to ojeda/linux
that referenced
this pull request
Jun 29, 2021
rust: update `Ref` to use the kernel's `refcount_t`.
gatieme
pushed a commit
to gatieme/linux
that referenced
this pull request
Nov 24, 2022
ANBZ: torvalds#377 Add a mount option to allow backend daemon set fs magic value. Applications identify file system type by fsmgic listed in 'linux/magic.h'. All FUSE-Based filesystems return the value 'FUSE_SUPER_MAGIC' regardless of huge difference between them. By the time this patch is applied, a mechanism is provided that front-end applications could distinguish different FUSE-Based user-space filesystems by traditional statfs(2) and make use of their respective advantages. One practical scenario is Alibaba Cloud's Database file System(DBFS) which is FUSE-based and supports multiple types of storage engines. Transfer unique fs magic for each engine to front-end enables applications to select appropriate instance for different model. For example, MyFS engine with magic number 'alibaba::dbfs::MYFS_SUPER_MAGIC' is suitable for oltp while LFS engine with 'alibaba::dbfs::LFS_SUPER_MAGIC' benefit olap. FUSE-Based filesystem uses this option should deal with conflicts with values defined in 'linux/magic.h' and other FUSE-Based filesystems. Signed-off-by: sanyulh <[email protected]> Reviewed-by: Joseph Qi <[email protected]> Reviewed-by: Gao Xiang <[email protected]> Reviewed-by: Jeffle Xu <[email protected]>
intel-lab-lkp
pushed a commit
to intel-lab-lkp/linux
that referenced
this pull request
Jan 30, 2023
The task of ftrace_arch_code_modify(_post)_prepare() caller is stop_machine, whose caller and work thread are of different tasks. The lockdep checker needs the same task context, or it's wrong. That means it's a bug here to use lockdep_assert_held because we don't guarantee the same task context. kernel/locking/lockdep.c: int __lock_is_held(const struct lockdep_map *lock, int read) { struct task_struct *curr = current; int i; for (i = 0; i < curr->lockdep_depth; i++) { ^^^^^^^^^^^^^^^^^^^ struct held_lock *hlock = curr->held_locks + i; ^^^^^^^^^^^^^^^^ if (match_held_lock(hlock, lock)) { if (read == -1 || !!hlock->read == read) return LOCK_STATE_HELD; The __lock_is_held depends on current held_locks records; if stop_machine makes the checker runing on another task, that's wrong. Here is the log: [ 15.761523] ------------[ cut here ]------------ [ 15.762125] WARNING: CPU: 0 PID: 15 at arch/riscv/kernel/patch.c:63 patch_insn_write+0x72/0x364 [ 15.763258] Modules linked in: [ 15.764154] CPU: 0 PID: 15 Comm: migration/0 Not tainted 6.1.0-rc1-00014-g66924be85884-dirty torvalds#377 [ 15.765339] Hardware name: riscv-virtio,qemu (DT) [ 15.765985] Stopper: multi_cpu_stop+0x0/0x192 <- stop_cpus.constprop.0+0x90/0xe2 [ 15.766711] epc : patch_insn_write+0x72/0x364 [ 15.767011] ra : patch_insn_write+0x70/0x364 [ 15.767276] epc : ffffffff8000721e ra : ffffffff8000721c sp : ff2000000067bca0 [ 15.767622] gp : ffffffff81603f90 tp : ff60000002432a00 t0 : 7300000000000000 [ 15.767919] t1 : 0000000000000000 t2 : 73695f6b636f6c5f s0 : ff2000000067bcf0 [ 15.768238] s1 : 0000000000000008 a0 : 0000000000000000 a1 : 0000000000000000 [ 15.768537] a2 : 0000000000000000 a3 : 0000000000000000 a4 : 0000000000000000 [ 15.768837] a5 : 0000000000000000 a6 : 0000000000000000 a7 : 0000000000000000 [ 15.769139] s2 : ffffffff80009faa s3 : ff2000000067bd10 s4 : ffffffffffffffff [ 15.769447] s5 : 0000000000000001 s6 : 0000000000000001 s7 : 0000000000000003 [ 15.769740] s8 : 0000000000000002 s9 : 0000000000000004 s10: 0000000000000003 [ 15.770027] s11: 0000000000000002 t3 : 0000000000000000 t4 : ffffffff819af097 [ 15.770323] t5 : ffffffff819af098 t6 : ff2000000067ba28 [ 15.770574] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003 [ 15.771102] [<ffffffff80007520>] patch_text_nosync+0x10/0x3a [ 15.771421] [<ffffffff80009c66>] ftrace_update_ftrace_func+0x74/0x10a [ 15.771704] [<ffffffff800fa17e>] ftrace_modify_all_code+0xb0/0x16c [ 15.771958] [<ffffffff800fa24c>] __ftrace_modify_code+0x12/0x1c [ 15.772196] [<ffffffff800e110e>] multi_cpu_stop+0x14a/0x192 [ 15.772454] [<ffffffff800e0a34>] cpu_stopper_thread+0x96/0x14c [ 15.772699] [<ffffffff8003f4ea>] smpboot_thread_fn+0xf8/0x1cc [ 15.772945] [<ffffffff8003ac9c>] kthread+0xe2/0xf8 [ 15.773160] [<ffffffff80003e98>] ret_from_exception+0x0/0x14 [ 15.773471] ---[ end trace 0000000000000000 ]--- By the way, this also fixes the same issue for patch_text(). Fixes: 0ff7c3b ("riscv: Use text_mutex instead of patch_lock") Co-developed-by: Guo Ren <[email protected]> Signed-off-by: Guo Ren <[email protected]> Cc: Zong Li <[email protected]> Cc: Palmer Dabbelt <[email protected]> Signed-off-by: Changbin Du <[email protected]>
intel-lab-lkp
pushed a commit
to intel-lab-lkp/linux
that referenced
this pull request
Feb 2, 2023
The task of ftrace_arch_code_modify(_post)_prepare() caller is stop_machine, whose caller and work thread are of different tasks. The lockdep checker needs the same task context, or it's wrong. That means it's a bug here to use lockdep_assert_held because we don't guarantee the same task context. kernel/locking/lockdep.c: int __lock_is_held(const struct lockdep_map *lock, int read) { struct task_struct *curr = current; int i; for (i = 0; i < curr->lockdep_depth; i++) { ^^^^^^^^^^^^^^^^^^^ struct held_lock *hlock = curr->held_locks + i; ^^^^^^^^^^^^^^^^ if (match_held_lock(hlock, lock)) { if (read == -1 || !!hlock->read == read) return LOCK_STATE_HELD; The __lock_is_held depends on current held_locks records; if stop_machine makes the checker running on another task, that's wrong. Here is the log: [ 15.761523] ------------[ cut here ]------------ [ 15.762125] WARNING: CPU: 0 PID: 15 at arch/riscv/kernel/patch.c:63 patch_insn_write+0x72/0x364 [ 15.763258] Modules linked in: [ 15.764154] CPU: 0 PID: 15 Comm: migration/0 Not tainted 6.1.0-rc1-00014-g66924be85884-dirty torvalds#377 [ 15.765339] Hardware name: riscv-virtio,qemu (DT) [ 15.765985] Stopper: multi_cpu_stop+0x0/0x192 <- stop_cpus.constprop.0+0x90/0xe2 [ 15.766711] epc : patch_insn_write+0x72/0x364 [ 15.767011] ra : patch_insn_write+0x70/0x364 [ 15.767276] epc : ffffffff8000721e ra : ffffffff8000721c sp : ff2000000067bca0 [ 15.767622] gp : ffffffff81603f90 tp : ff60000002432a00 t0 : 7300000000000000 [ 15.767919] t1 : 0000000000000000 t2 : 73695f6b636f6c5f s0 : ff2000000067bcf0 [ 15.768238] s1 : 0000000000000008 a0 : 0000000000000000 a1 : 0000000000000000 [ 15.768537] a2 : 0000000000000000 a3 : 0000000000000000 a4 : 0000000000000000 [ 15.768837] a5 : 0000000000000000 a6 : 0000000000000000 a7 : 0000000000000000 [ 15.769139] s2 : ffffffff80009faa s3 : ff2000000067bd10 s4 : ffffffffffffffff [ 15.769447] s5 : 0000000000000001 s6 : 0000000000000001 s7 : 0000000000000003 [ 15.769740] s8 : 0000000000000002 s9 : 0000000000000004 s10: 0000000000000003 [ 15.770027] s11: 0000000000000002 t3 : 0000000000000000 t4 : ffffffff819af097 [ 15.770323] t5 : ffffffff819af098 t6 : ff2000000067ba28 [ 15.770574] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003 [ 15.771102] [<ffffffff80007520>] patch_text_nosync+0x10/0x3a [ 15.771421] [<ffffffff80009c66>] ftrace_update_ftrace_func+0x74/0x10a [ 15.771704] [<ffffffff800fa17e>] ftrace_modify_all_code+0xb0/0x16c [ 15.771958] [<ffffffff800fa24c>] __ftrace_modify_code+0x12/0x1c [ 15.772196] [<ffffffff800e110e>] multi_cpu_stop+0x14a/0x192 [ 15.772454] [<ffffffff800e0a34>] cpu_stopper_thread+0x96/0x14c [ 15.772699] [<ffffffff8003f4ea>] smpboot_thread_fn+0xf8/0x1cc [ 15.772945] [<ffffffff8003ac9c>] kthread+0xe2/0xf8 [ 15.773160] [<ffffffff80003e98>] ret_from_exception+0x0/0x14 [ 15.773471] ---[ end trace 0000000000000000 ]--- By the way, this also fixes the same issue for patch_text(). Fixes: 0ff7c3b ("riscv: Use text_mutex instead of patch_lock") Co-developed-by: Guo Ren <[email protected]> Signed-off-by: Guo Ren <[email protected]> Cc: Zong Li <[email protected]> Cc: Palmer Dabbelt <[email protected]> Signed-off-by: Changbin Du <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
make changes