Merge branch 'android14-6.1' into 'android14-6.1-lts'

Catches the android14-6.1-lts branch up with the android14-6.1 branch
which has had a lot of changes that are needed here to resolve future
LTS merges and to ensure that the ABI is kept stable.

It contains the following commits:

* 0ee75a672c UPSTREAM: fs/ntfs3: Check fields while reading
* 6eb48b89a5 ANDROID: GKI: Update abi_gki_aarch64_qcom
* 17a080d04e ANDROID: ABI: Update pixel symbol list
* 0abc74db1a ANDROID: GKI: Move GKI module headers to generated includes
* 15a4b0d726 ANDROID: set kmi_symbol_list_add_only for Kleaf builds.
* dd567c60ff ANDROID: GKI: Add Android ABI padding to wwan_port_ops
* 7ed895f6b7 ANDROID: GKI: Add Android ABI padding to wwan_ops
* 13e8071ce0 ANDROID: update symbol list for unisoc regmap vendor hook
* ca372ba9e7 ANDROID: GKI: Update mtk ABI symbol list
* 8bb470d637 UPSTREAM: media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*()
* 701f85c2a1 ANDROID: abi_gki_aarch64_qcom: Update QCOM symbol list
* d51e21b394 ANDROID: ABI: Update pixel symbol list
* 25a11995fb ANDROID: GKI: add ABI symbol for xiaomi
* 7dd60ce804 ANDROID: vendor_hooks: add vendor hook to support SAGT
* f930b82d16 FROMLIST: fuse: revalidate: don't invalidate if interrupted
* 3a8999c683 ANDROID: GKI: Update pixel symbol list for thermal
* 6ca2ff04a1 ANDROID: thermal: Add vendor thermal genl check
* 62ef90de0d ANDROID: GKI: Update the pixel symbol list
* 7bfd71d298 ANDROID: GKI: Update protected exports
* 4a207efbe0 FROMGIT: mm: add missing VM_FAULT_RESULT_TRACE name for VM_FAULT_COMPLETED
* 77ae3e7bb8 FROMGIT: swap: remove remnants of polling from read_swap_cache_async

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8d0b0242e4c5413e38e0561b6d7afcba94a8c09e
This commit is contained in:
Greg Kroah-Hartman 2023-07-25 09:42:03 +00:00
commit 1ef7816a50
27 changed files with 603 additions and 80 deletions

View File

@ -76,6 +76,7 @@ define_common_kernels(target_configs = {
"kmi_symbol_list_strict_mode": True,
"module_implicit_outs": COMMON_GKI_MODULES_LIST,
"kmi_symbol_list": "android/abi_gki_aarch64",
"kmi_symbol_list_add_only": True,
"additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"],
"protected_exports_list": "android/abi_gki_protected_exports_aarch64",
"protected_modules_list": "android/gki_aarch64_protected_modules",
@ -90,6 +91,7 @@ define_common_kernels(target_configs = {
"kmi_symbol_list_strict_mode": False,
"module_implicit_outs": COMMON_GKI_MODULES_LIST,
"kmi_symbol_list": "android/abi_gki_aarch64",
"kmi_symbol_list_add_only": True,
"additional_kmi_symbol_lists": [":aarch64_additional_kmi_symbol_lists"],
"protected_exports_list": "android/abi_gki_protected_exports_aarch64",
"protected_modules_list": "android/gki_aarch64_protected_modules",

View File

@ -12896,6 +12896,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0x83286178
}
pointer_reference {
id: 0x2a5e3596
kind: POINTER
pointee_type_id: 0x833830c5
}
pointer_reference {
id: 0x2a5ed1c1
kind: POINTER
@ -23786,6 +23791,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0xfcc23ab7
}
pointer_reference {
id: 0x35a7c1c3
kind: POINTER
pointee_type_id: 0xfcdfe193
}
pointer_reference {
id: 0x35ab6b03
kind: POINTER
@ -27431,6 +27441,11 @@ pointer_reference {
kind: POINTER
pointee_type_id: 0xd06de2a9
}
pointer_reference {
id: 0x3e8d7c9a
kind: POINTER
pointee_type_id: 0xd07514f5
}
pointer_reference {
id: 0x3e8e572f
kind: POINTER
@ -28336,6 +28351,11 @@ typedef {
name: "bdaddr_t"
referred_type_id: 0x0b690cd3
}
typedef {
id: 0x833830c5
name: "be128"
referred_type_id: 0x3857842d
}
typedef {
id: 0x117ba19a
name: "bh_end_io_t"
@ -30856,6 +30876,11 @@ qualified {
qualifier: CONST
qualified_type_id: 0x30a49fb4
}
qualified {
id: 0xd07514f5
qualifier: CONST
qualified_type_id: 0x3193e55d
}
qualified {
id: 0xd08a0c68
qualifier: CONST
@ -33156,6 +33181,11 @@ qualified {
qualifier: CONST
qualified_type_id: 0x834f5c57
}
qualified {
id: 0xfcdfe193
qualifier: CONST
qualified_type_id: 0x833830c5
}
qualified {
id: 0xfd03f127
qualifier: CONST
@ -39256,6 +39286,12 @@ member {
name: "__i_nlink"
type_id: 0x4585663f
}
member {
id: 0xed0c7bc2
name: "__ifi_pad"
type_id: 0x5d8155a5
offset: 8
}
member {
id: 0x1d90045d
name: "__iter_idx"
@ -40205,6 +40241,11 @@ member {
name: "a"
type_id: 0xb02b353a
}
member {
id: 0x80a3e3d3
name: "a"
type_id: 0x7877cd32
}
member {
id: 0x80f2085f
name: "a"
@ -49135,6 +49176,12 @@ member {
name: "b"
type_id: 0x38df449f
}
member {
id: 0x4ce00bb0
name: "b"
type_id: 0x7877cd32
offset: 64
}
member {
id: 0x4cf8b2b0
name: "b"
@ -100711,6 +100758,35 @@ member {
type_id: 0x0fa767da
offset: 448
}
member {
id: 0x49aaa6b3
name: "ifi_change"
type_id: 0x4585663f
offset: 96
}
member {
id: 0xccfc5cc3
name: "ifi_family"
type_id: 0x5d8155a5
}
member {
id: 0xe5765ac4
name: "ifi_flags"
type_id: 0x4585663f
offset: 64
}
member {
id: 0x95c94564
name: "ifi_index"
type_id: 0x6720d32f
offset: 32
}
member {
id: 0x58fe8d2e
name: "ifi_type"
type_id: 0xc93e017b
offset: 16
}
member {
id: 0x9056806a
name: "ifindex"
@ -202703,6 +202779,15 @@ struct_union {
member_id: 0x80f2085f
}
}
struct_union {
id: 0x3857842d
kind: STRUCT
definition {
bytesize: 16
member_id: 0x80a3e3d3
member_id: 0x4ce00bb0
}
}
struct_union {
id: 0x3876ab11
kind: STRUCT
@ -224281,6 +224366,20 @@ struct_union {
member_id: 0x95dac005
}
}
struct_union {
id: 0x3193e55d
kind: STRUCT
name: "ifinfomsg"
definition {
bytesize: 16
member_id: 0xccfc5cc3
member_id: 0xed0c7bc2
member_id: 0x58fe8d2e
member_id: 0x95c94564
member_id: 0xe5765ac4
member_id: 0x49aaa6b3
}
}
struct_union {
id: 0x41f1df67
kind: STRUCT
@ -277411,6 +277510,12 @@ function {
return_type_id: 0x48b5725f
parameter_id: 0x049d4e97
}
function {
id: 0x11bf8d42
return_type_id: 0x48b5725f
parameter_id: 0x00c72527
parameter_id: 0x4585663f
}
function {
id: 0x11c013b1
return_type_id: 0x48b5725f
@ -280106,6 +280211,13 @@ function {
return_type_id: 0x48b5725f
parameter_id: 0x15a30023
}
function {
id: 0x15f1cac1
return_type_id: 0x48b5725f
parameter_id: 0x11e6864c
parameter_id: 0x4585663f
parameter_id: 0x18bd6530
}
function {
id: 0x15f330e3
return_type_id: 0x48b5725f
@ -282742,6 +282854,12 @@ function {
return_type_id: 0x48b5725f
parameter_id: 0x2936263d
}
function {
id: 0x1ad943f1
return_type_id: 0x48b5725f
parameter_id: 0x2a5e3596
parameter_id: 0x35a7c1c3
}
function {
id: 0x1ad9d0a2
return_type_id: 0x48b5725f
@ -294238,6 +294356,12 @@ function {
parameter_id: 0x32a623d7
parameter_id: 0x3e10b518
}
function {
id: 0x91d35e28
return_type_id: 0x6720d32f
parameter_id: 0x32a623d7
parameter_id: 0x3e8d7c9a
}
function {
id: 0x91d5541c
return_type_id: 0x6720d32f
@ -300498,6 +300622,17 @@ function {
return_type_id: 0x6720d32f
parameter_id: 0x156a41de
}
function {
id: 0x98da7fb1
return_type_id: 0x6720d32f
parameter_id: 0x11e6864c
parameter_id: 0x4585663f
parameter_id: 0xd92b1d75
parameter_id: 0xd92b1d75
parameter_id: 0x18bd6530
parameter_id: 0x3e10b518
parameter_id: 0xa52a0930
}
function {
id: 0x98de7695
return_type_id: 0x6720d32f
@ -301904,6 +302039,14 @@ function {
parameter_id: 0x6720d32f
parameter_id: 0x3c2755a3
}
function {
id: 0x9a2abc7b
return_type_id: 0x6720d32f
parameter_id: 0x18bd6530
parameter_id: 0x6720d32f
parameter_id: 0x6720d32f
parameter_id: 0x13580d6c
}
function {
id: 0x9a2af11b
return_type_id: 0x6720d32f
@ -303995,6 +304138,13 @@ function {
parameter_id: 0x188b9e81
parameter_id: 0x3ea31487
}
function {
id: 0x9b5a0fe0
return_type_id: 0x6720d32f
parameter_id: 0x18bd6530
parameter_id: 0x3df7e337
parameter_id: 0x09a83f1c
}
function {
id: 0x9b5aa874
return_type_id: 0x6720d32f
@ -304490,6 +304640,12 @@ function {
parameter_id: 0x2e029f76
parameter_id: 0x13580d6c
}
function {
id: 0x9b79f498
return_type_id: 0x6720d32f
parameter_id: 0x18bd6530
parameter_id: 0x3593bec8
}
function {
id: 0x9b79f513
return_type_id: 0x6720d32f
@ -316661,6 +316817,16 @@ function {
return_type_id: 0x6d7f5ff6
parameter_id: 0x040d1b01
}
function {
id: 0xffb4ff33
return_type_id: 0x32a623d7
parameter_id: 0x0ca27481
parameter_id: 0x3e10b518
parameter_id: 0x5d8155a5
parameter_id: 0x337b7b81
parameter_id: 0x0277bf8a
parameter_id: 0x07dcdbe1
}
function {
id: 0xffbaa126
return_type_id: 0x32a623d7
@ -319743,6 +319909,15 @@ elf_symbol {
type_id: 0x9b2ba01c
full_name: "__traceiter_android_rvh_audio_usb_offload_disconnect"
}
elf_symbol {
id: 0x144db0a1
name: "__traceiter_android_rvh_before_do_sched_yield"
is_defined: true
symbol_type: FUNCTION
crc: 0xce266c8e
type_id: 0x9b79f498
full_name: "__traceiter_android_rvh_before_do_sched_yield"
}
elf_symbol {
id: 0x192bbbd5
name: "__traceiter_android_rvh_build_perf_domains"
@ -321219,6 +321394,15 @@ elf_symbol {
type_id: 0x9bdc9aae
full_name: "__traceiter_android_vh_dup_task_struct"
}
elf_symbol {
id: 0xdcaa59a3
name: "__traceiter_android_vh_enable_thermal_genl_check"
is_defined: true
symbol_type: FUNCTION
crc: 0xc39a1e16
type_id: 0x9a2abc7b
full_name: "__traceiter_android_vh_enable_thermal_genl_check"
}
elf_symbol {
id: 0x7ebac47a
name: "__traceiter_android_vh_enable_thermal_power_throttle"
@ -321840,6 +322024,15 @@ elf_symbol {
type_id: 0x9bd7019d
full_name: "__traceiter_android_vh_record_rwsem_lock_starttime"
}
elf_symbol {
id: 0xe2d75052
name: "__traceiter_android_vh_regmap_update"
is_defined: true
symbol_type: FUNCTION
crc: 0x70e6bb0c
type_id: 0x9b5a0fe0
full_name: "__traceiter_android_vh_regmap_update"
}
elf_symbol {
id: 0x8d62858f
name: "__traceiter_android_vh_rmqueue_smallest_bypass"
@ -322893,6 +323086,15 @@ elf_symbol {
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_rvh_audio_usb_offload_disconnect"
}
elf_symbol {
id: 0xd7757253
name: "__tracepoint_android_rvh_before_do_sched_yield"
is_defined: true
symbol_type: OBJECT
crc: 0x94abc138
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_rvh_before_do_sched_yield"
}
elf_symbol {
id: 0x1e8a7e23
name: "__tracepoint_android_rvh_build_perf_domains"
@ -324369,6 +324571,15 @@ elf_symbol {
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_dup_task_struct"
}
elf_symbol {
id: 0x54b2cd01
name: "__tracepoint_android_vh_enable_thermal_genl_check"
is_defined: true
symbol_type: OBJECT
crc: 0x29cc54bf
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_enable_thermal_genl_check"
}
elf_symbol {
id: 0x188eab44
name: "__tracepoint_android_vh_enable_thermal_power_throttle"
@ -324990,6 +325201,15 @@ elf_symbol {
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_record_rwsem_lock_starttime"
}
elf_symbol {
id: 0x13b2fb38
name: "__tracepoint_android_vh_regmap_update"
is_defined: true
symbol_type: OBJECT
crc: 0xcf37e88a
type_id: 0x18ccbd2c
full_name: "__tracepoint_android_vh_regmap_update"
}
elf_symbol {
id: 0x04365139
name: "__tracepoint_android_vh_rmqueue_smallest_bypass"
@ -331131,6 +331351,13 @@ elf_symbol {
type_id: 0x11228b4e
full_name: "copy_highpage"
}
elf_symbol {
id: 0xc1167624
name: "copy_page"
is_defined: true
symbol_type: FUNCTION
crc: 0x4d0d163d
}
elf_symbol {
id: 0xd89255c2
name: "cpu_all_bits"
@ -332072,6 +332299,15 @@ elf_symbol {
type_id: 0x9112accf
full_name: "crypto_has_alg"
}
elf_symbol {
id: 0x80e1f666
name: "crypto_inc"
is_defined: true
symbol_type: FUNCTION
crc: 0x3ef051c8
type_id: 0x11bf8d42
full_name: "crypto_inc"
}
elf_symbol {
id: 0x62173925
name: "crypto_init_queue"
@ -333998,6 +334234,15 @@ elf_symbol {
type_id: 0xadd088bd
full_name: "device_find_child"
}
elf_symbol {
id: 0x01805ccc
name: "device_find_child_by_name"
is_defined: true
symbol_type: FUNCTION
crc: 0xfe92284a
type_id: 0xad414cb1
full_name: "device_find_child_by_name"
}
elf_symbol {
id: 0xd81e7ab3
name: "device_for_each_child"
@ -334772,6 +335017,15 @@ elf_symbol {
type_id: 0x5f3cfa16
full_name: "devm_gpiod_get_index"
}
elf_symbol {
id: 0x241e9d4d
name: "devm_gpiod_get_index_optional"
is_defined: true
symbol_type: FUNCTION
crc: 0xf71fb74b
type_id: 0x5f3cfa16
full_name: "devm_gpiod_get_index_optional"
}
elf_symbol {
id: 0xf6b9516e
name: "devm_gpiod_get_optional"
@ -341567,6 +341821,15 @@ elf_symbol {
type_id: 0x98851295
full_name: "extcon_set_property_capability"
}
elf_symbol {
id: 0xb1dfbb02
name: "extcon_set_property_sync"
is_defined: true
symbol_type: FUNCTION
crc: 0x710595c3
type_id: 0x98850898
full_name: "extcon_set_property_sync"
}
elf_symbol {
id: 0xacc42253
name: "extcon_set_state"
@ -343406,6 +343669,15 @@ elf_symbol {
type_id: 0x11a59ba3
full_name: "getboottime64"
}
elf_symbol {
id: 0x112db471
name: "gf128mul_lle"
is_defined: true
symbol_type: FUNCTION
crc: 0x9e13f6f6
type_id: 0x1ad943f1
full_name: "gf128mul_lle"
}
elf_symbol {
id: 0xfe79963a
name: "gfn_to_pfn_memslot"
@ -355457,6 +355729,15 @@ elf_symbol {
type_id: 0x578fa618
full_name: "pci_find_next_capability"
}
elf_symbol {
id: 0x08190210
name: "pci_free_irq"
is_defined: true
symbol_type: FUNCTION
crc: 0xdaf171ab
type_id: 0x15f1cac1
full_name: "pci_free_irq"
}
elf_symbol {
id: 0x8ffabaa9
name: "pci_free_irq_vectors"
@ -355754,6 +356035,15 @@ elf_symbol {
type_id: 0x185a3adc
full_name: "pci_remove_root_bus"
}
elf_symbol {
id: 0xf6896e34
name: "pci_request_irq"
is_defined: true
symbol_type: FUNCTION
crc: 0x17161b4b
type_id: 0x98da7fb1
full_name: "pci_request_irq"
}
elf_symbol {
id: 0x324ff23b
name: "pci_request_region"
@ -358049,6 +358339,15 @@ elf_symbol {
type_id: 0x1192ec84
full_name: "pm_runtime_set_autosuspend_delay"
}
elf_symbol {
id: 0xe263dcb4
name: "pm_schedule_suspend"
is_defined: true
symbol_type: FUNCTION
crc: 0xe5c44150
type_id: 0x9c00c8ec
full_name: "pm_schedule_suspend"
}
elf_symbol {
id: 0x59caaeac
name: "pm_stay_awake"
@ -361955,6 +362254,24 @@ elf_symbol {
type_id: 0x90657259
full_name: "rtc_valid_tm"
}
elf_symbol {
id: 0x19b7aeab
name: "rtnl_configure_link"
is_defined: true
symbol_type: FUNCTION
crc: 0x85c289df
type_id: 0x91d35e28
full_name: "rtnl_configure_link"
}
elf_symbol {
id: 0xfccc22f4
name: "rtnl_create_link"
is_defined: true
symbol_type: FUNCTION
crc: 0x817f3567
type_id: 0xffb4ff33
full_name: "rtnl_create_link"
}
elf_symbol {
id: 0x50b92bc4
name: "rtnl_is_locked"
@ -377421,6 +377738,7 @@ interface {
symbol_id: 0xb3d70eab
symbol_id: 0x0b48afa1
symbol_id: 0x48420da9
symbol_id: 0x144db0a1
symbol_id: 0x192bbbd5
symbol_id: 0xadc13d20
symbol_id: 0xc93c7d6d
@ -377585,6 +377903,7 @@ interface {
symbol_id: 0x9dbd7b92
symbol_id: 0x42312ccc
symbol_id: 0xf432d1c9
symbol_id: 0xdcaa59a3
symbol_id: 0x7ebac47a
symbol_id: 0xf586d5b6
symbol_id: 0x1f554c2a
@ -377654,6 +377973,7 @@ interface {
symbol_id: 0x0fa39b81
symbol_id: 0x92518ec5
symbol_id: 0x9792c22e
symbol_id: 0xe2d75052
symbol_id: 0x8d62858f
symbol_id: 0xcef5d79f
symbol_id: 0x91384eff
@ -377771,6 +378091,7 @@ interface {
symbol_id: 0xcd36f539
symbol_id: 0x748c1fd7
symbol_id: 0xaf461bff
symbol_id: 0xd7757253
symbol_id: 0x1e8a7e23
symbol_id: 0xfe3875f6
symbol_id: 0x60b5a917
@ -377935,6 +378256,7 @@ interface {
symbol_id: 0xe2d7542c
symbol_id: 0x988719fa
symbol_id: 0x732a182b
symbol_id: 0x54b2cd01
symbol_id: 0x188eab44
symbol_id: 0xe7584e1c
symbol_id: 0x0d418d38
@ -378004,6 +378326,7 @@ interface {
symbol_id: 0xef7ad117
symbol_id: 0x4568ff8f
symbol_id: 0xe918e2ec
symbol_id: 0x13b2fb38
symbol_id: 0x04365139
symbol_id: 0xd94bc301
symbol_id: 0x3fc5ffc9
@ -378687,6 +379010,7 @@ interface {
symbol_id: 0x9e7d8d76
symbol_id: 0x610edc84
symbol_id: 0xd71898b4
symbol_id: 0xc1167624
symbol_id: 0xd89255c2
symbol_id: 0x962b6a68
symbol_id: 0x33bbeca6
@ -378792,6 +379116,7 @@ interface {
symbol_id: 0xbf39e9a5
symbol_id: 0x4d4a15b0
symbol_id: 0xfc625698
symbol_id: 0x80e1f666
symbol_id: 0x62173925
symbol_id: 0x053cd2eb
symbol_id: 0xd1471c13
@ -379006,6 +379331,7 @@ interface {
symbol_id: 0xe85fa1f1
symbol_id: 0xe6df6df5
symbol_id: 0x0b165427
symbol_id: 0x01805ccc
symbol_id: 0xd81e7ab3
symbol_id: 0x3b013a69
symbol_id: 0x0576df29
@ -379092,6 +379418,7 @@ interface {
symbol_id: 0x097ab520
symbol_id: 0xccb2ecff
symbol_id: 0xd0f2d980
symbol_id: 0x241e9d4d
symbol_id: 0xf6b9516e
symbol_id: 0xa2b20c15
symbol_id: 0x0ea63f59
@ -379845,6 +380172,7 @@ interface {
symbol_id: 0x3f648037
symbol_id: 0xc75616d8
symbol_id: 0x467358e5
symbol_id: 0xb1dfbb02
symbol_id: 0xacc42253
symbol_id: 0x0a446897
symbol_id: 0xb107d2cd
@ -380049,6 +380377,7 @@ interface {
symbol_id: 0x4ba4e06f
symbol_id: 0xbac82e84
symbol_id: 0xa8319a8c
symbol_id: 0x112db471
symbol_id: 0xfe79963a
symbol_id: 0xbc19d975
symbol_id: 0x6dc59ee7
@ -381388,6 +381717,7 @@ interface {
symbol_id: 0x27f20808
symbol_id: 0x63876663
symbol_id: 0xdea420f5
symbol_id: 0x08190210
symbol_id: 0x8ffabaa9
symbol_id: 0x50bce06e
symbol_id: 0x133a7a3e
@ -381421,6 +381751,7 @@ interface {
symbol_id: 0x5b0002a1
symbol_id: 0x2c8694e0
symbol_id: 0xa21a61f0
symbol_id: 0xf6896e34
symbol_id: 0x324ff23b
symbol_id: 0xde0961b5
symbol_id: 0x93ed1ac4
@ -381676,6 +382007,7 @@ interface {
symbol_id: 0x878b97bb
symbol_id: 0x1f3f17bd
symbol_id: 0x53f4166f
symbol_id: 0xe263dcb4
symbol_id: 0x59caaeac
symbol_id: 0x64f92138
symbol_id: 0x2e13b831
@ -382110,6 +382442,8 @@ interface {
symbol_id: 0xa4ad8391
symbol_id: 0x5c1197ba
symbol_id: 0x22e1072c
symbol_id: 0x19b7aeab
symbol_id: 0xfccc22f4
symbol_id: 0x50b92bc4
symbol_id: 0x8c0dd14a
symbol_id: 0x3480e8df

View File

@ -395,6 +395,7 @@
device_del
device_destroy
device_find_child
device_find_child_by_name
device_for_each_child
device_get_child_node_count
device_get_match_data
@ -1200,6 +1201,7 @@
ip_send_check
__ipv6_addr_type
ipv6_dev_find
ipv6_ext_hdr
ipv6_skip_exthdr
ipv6_stub
__irq_apply_affinity_hint
@ -1337,10 +1339,14 @@
kthread_flush_work
kthread_flush_worker
__kthread_init_worker
kthread_park
kthread_parkme
kthread_queue_delayed_work
kthread_queue_work
kthread_should_park
kthread_should_stop
kthread_stop
kthread_unpark
kthread_worker_fn
ktime_get
ktime_get_coarse_with_offset
@ -1692,6 +1698,7 @@
out_of_line_wait_on_bit_timeout
overflowuid
page_endio
page_frag_free
page_pinner_inited
__page_pinner_put_page
page_pool_alloc_pages
@ -1715,6 +1722,7 @@
param_ops_uint
param_ops_ullong
param_ops_ulong
param_ops_ushort
param_set_bool
param_set_charp
param_set_uint
@ -1722,18 +1730,25 @@
pci_alloc_irq_vectors_affinity
pci_ats_supported
pci_bus_type
pci_clear_master
pci_device_group
pci_device_is_present
pci_dev_put
pci_disable_ats
pci_disable_device
pcie_capability_clear_and_set_word
pcie_capability_read_word
pci_enable_ats
pci_find_ext_capability
pci_free_irq
pci_free_irq_vectors
pci_generic_config_read32
pci_generic_config_write32
pci_get_slot
pci_host_probe
pci_irq_vector
pci_load_and_free_saved_state
pci_load_saved_state
pci_lock_rescan_remove
pcim_enable_device
pcim_iomap_regions
@ -1747,10 +1762,12 @@
pci_read_config_word
__pci_register_driver
pci_remove_root_bus
pci_request_irq
pci_restore_state
pci_save_state
pci_set_master
pci_stop_root_bus
pci_store_saved_state
pci_unlock_rescan_remove
pci_unregister_driver
pci_write_config_dword
@ -1869,6 +1886,7 @@
__pm_runtime_set_status
__pm_runtime_suspend
__pm_runtime_use_autosuspend
pm_schedule_suspend
__pm_stay_awake
pm_stay_awake
pm_suspend_default_s2idle
@ -1933,9 +1951,11 @@
queue_delayed_work_on
queue_work_on
radix_tree_delete
radix_tree_gang_lookup
radix_tree_insert
radix_tree_lookup
radix_tree_maybe_preload
radix_tree_next_chunk
radix_tree_tagged
___ratelimit
raw_notifier_call_chain
@ -2123,6 +2143,8 @@
rtc_tm_to_time64
rtc_update_irq
rtc_valid_tm
rtnl_configure_link
rtnl_create_link
rtnl_is_locked
rtnl_link_register
rtnl_link_unregister
@ -2526,6 +2548,7 @@
timecounter_init
timecounter_read
timer_of_init
timer_reduce
timer_unstable_counter_workaround
topology_clear_scale_freq_source
topology_update_thermal_pressure
@ -2733,6 +2756,7 @@
__tracepoint_task_newtask
trace_print_array_seq
trace_print_flags_seq
trace_print_hex_seq
trace_print_symbols_seq
__trace_puts
trace_raw_output_prep

View File

@ -369,15 +369,19 @@
devm_clk_put
devm_device_add_group
devm_device_add_groups
devm_device_remove_group
__devm_drm_dev_alloc
devm_drm_panel_bridge_add_typed
devm_extcon_dev_allocate
devm_extcon_dev_register
devm_free_irq
devm_fwnode_gpiod_get_index
devm_fwnode_pwm_get
devm_gen_pool_create
devm_gpiochip_add_data_with_key
devm_gpiod_get
devm_gpiod_get_array
devm_gpiod_get_index_optional
devm_gpiod_get_optional
devm_gpiod_put_array
devm_gpio_request
@ -396,6 +400,7 @@
devm_kmemdup
devm_kstrdup
devm_kstrdup_const
devm_led_classdev_register_ext
devm_mfd_add_devices
devm_nvmem_register
__devm_of_phy_provider_register
@ -410,6 +415,7 @@
devm_platform_ioremap_resource
devm_platform_ioremap_resource_byname
devm_power_supply_register
devm_pwm_get
devm_regmap_add_irq_chip
__devm_regmap_init
__devm_regmap_init_i2c
@ -742,6 +748,7 @@
extcon_register_notifier
extcon_set_property
extcon_set_property_capability
extcon_set_property_sync
extcon_set_state_sync
extcon_unregister_notifier
fasync_helper
@ -962,8 +969,10 @@
int_to_scsilun
iomem_resource
iommu_alloc_resv_region
iommu_attach_device
iommu_attach_device_pasid
iommu_attach_group
iommu_detach_device
iommu_detach_device_pasid
iommu_device_register
iommu_device_sysfs_add
@ -1124,6 +1133,7 @@
kvmalloc_node
led_classdev_register_ext
led_classdev_unregister
led_init_default_state_get
__list_add_valid
__list_del_entry_valid
list_sort
@ -1505,6 +1515,7 @@
__put_task_struct
put_unused_fd
put_vaddr_frames
pwm_apply_state
queue_delayed_work_on
queue_work_on
radix_tree_delete_item
@ -1607,6 +1618,7 @@
regulator_map_voltage_linear
regulator_notifier_call_chain
regulator_put
regulator_set_active_discharge_regmap
regulator_set_voltage
regulator_set_voltage_sel_regmap
regulator_unregister
@ -1977,6 +1989,7 @@
__traceiter_android_rvh_typec_tcpci_get_vbus
__traceiter_android_vh_cpu_idle_enter
__traceiter_android_vh_cpu_idle_exit
__traceiter_android_vh_enable_thermal_genl_check
__traceiter_android_vh_ipi_stop
__traceiter_android_vh_scheduler_tick
__traceiter_android_vh_sysrq_crash
@ -1997,14 +2010,22 @@
__traceiter_device_pm_callback_end
__traceiter_device_pm_callback_start
__traceiter_gpu_mem_total
__traceiter_hrtimer_expire_entry
__traceiter_hrtimer_expire_exit
__traceiter_irq_handler_entry
__traceiter_irq_handler_exit
__traceiter_mmap_lock_acquire_returned
__traceiter_mmap_lock_released
__traceiter_mmap_lock_start_locking
__traceiter_sched_switch
__traceiter_suspend_resume
__traceiter_workqueue_execute_end
__traceiter_workqueue_execute_start
trace_output_call
__tracepoint_android_rvh_typec_tcpci_get_vbus
__tracepoint_android_vh_cpu_idle_enter
__tracepoint_android_vh_cpu_idle_exit
__tracepoint_android_vh_enable_thermal_genl_check
__tracepoint_android_vh_ipi_stop
__tracepoint_android_vh_scheduler_tick
__tracepoint_android_vh_sysrq_crash
@ -2025,12 +2046,19 @@
__tracepoint_device_pm_callback_end
__tracepoint_device_pm_callback_start
__tracepoint_gpu_mem_total
__tracepoint_hrtimer_expire_entry
__tracepoint_hrtimer_expire_exit
__tracepoint_irq_handler_entry
__tracepoint_irq_handler_exit
__tracepoint_mmap_lock_acquire_returned
__tracepoint_mmap_lock_released
__tracepoint_mmap_lock_start_locking
tracepoint_probe_register
tracepoint_probe_unregister
__tracepoint_sched_switch
__tracepoint_suspend_resume
__tracepoint_workqueue_execute_end
__tracepoint_workqueue_execute_start
trace_print_array_seq
trace_print_bitmask_seq
trace_print_flags_seq

View File

@ -340,6 +340,7 @@
contig_page_data
_copy_from_iter
copy_from_kernel_nofault
copy_page
__copy_overflow
_copy_to_iter
__cpu_active_mask
@ -429,6 +430,7 @@
crypto_get_default_rng
crypto_has_ahash
crypto_has_alg
crypto_inc
crypto_init_queue
__crypto_memneq
crypto_put_default_rng
@ -1232,6 +1234,7 @@
get_user_ifreq
get_user_pages
get_zeroed_page
gf128mul_lle
gh_rm_call
gh_rm_notifier_register
gh_rm_notifier_unregister
@ -3262,6 +3265,7 @@
__traceiter_android_rvh_after_dequeue_task
__traceiter_android_rvh_after_enqueue_task
__traceiter_android_rvh_audio_usb_offload_disconnect
__traceiter_android_rvh_before_do_sched_yield
__traceiter_android_rvh_build_perf_domains
__traceiter_android_rvh_can_migrate_task
__traceiter_android_rvh_check_preempt_tick
@ -3405,6 +3409,7 @@
__tracepoint_android_rvh_after_dequeue_task
__tracepoint_android_rvh_after_enqueue_task
__tracepoint_android_rvh_audio_usb_offload_disconnect
__tracepoint_android_rvh_before_do_sched_yield
__tracepoint_android_rvh_build_perf_domains
__tracepoint_android_rvh_can_migrate_task
__tracepoint_android_rvh_check_preempt_tick

View File

@ -714,6 +714,7 @@
__traceiter_android_vh_get_thermal_zone_device
__traceiter_android_vh_modify_thermal_request_freq
__traceiter_android_vh_modify_thermal_target_freq
__traceiter_android_vh_regmap_update
__traceiter_android_vh_scheduler_tick
__traceiter_android_vh_thermal_power_cap
__traceiter_android_vh_thermal_register
@ -792,6 +793,7 @@
__tracepoint_android_vh_get_thermal_zone_device
__tracepoint_android_vh_modify_thermal_request_freq
__tracepoint_android_vh_modify_thermal_target_freq
__tracepoint_android_vh_regmap_update
__tracepoint_android_vh_scheduler_tick
__tracepoint_android_vh_thermal_power_cap
__tracepoint_android_vh_thermal_register

View File

@ -306,3 +306,7 @@
__tracepoint_android_vh_rmqueue_smallest_bypass
__traceiter_android_vh_free_one_page_bypass
__tracepoint_android_vh_free_one_page_bypass
# required by SAGT module
__traceiter_android_rvh_before_do_sched_yield
__tracepoint_android_rvh_before_do_sched_yield

View File

@ -336,12 +336,10 @@ wpan_phy_new
wpan_phy_register
wpan_phy_unregister
wwan_create_port
wwan_get_debugfs_dir
wwan_port_get_drvdata
wwan_port_rx
wwan_port_txoff
wwan_port_txon
wwan_put_debugfs_dir
wwan_register_ops
wwan_remove_port
wwan_unregister_ops

View File

@ -336,12 +336,10 @@ wpan_phy_new
wpan_phy_register
wpan_phy_unregister
wwan_create_port
wwan_get_debugfs_dir
wwan_port_get_drvdata
wwan_port_rx
wwan_port_txoff
wwan_port_txon
wwan_put_debugfs_dir
wwan_register_ops
wwan_remove_port
wwan_unregister_ops

View File

@ -312,3 +312,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_madvise_cold_pageout_skip);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_smallest_bypass);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_free_one_page_bypass);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_regmap_update);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_genl_check);

View File

@ -9,6 +9,7 @@
#include <linux/module.h>
#include <linux/kernel.h>
#include <net/genetlink.h>
#include <trace/hooks/thermal.h>
#include <uapi/linux/thermal.h>
#include "thermal_core.h"
@ -274,6 +275,11 @@ static int thermal_genl_send_event(enum thermal_genl_event event,
struct sk_buff *msg;
int ret = -EMSGSIZE;
void *hdr;
int enable_thermal_genl = 1;
trace_android_vh_enable_thermal_genl_check(event, p->tz_id, &enable_thermal_genl);
if (!enable_thermal_genl)
return 0;
msg = genlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
if (!msg)

View File

@ -321,7 +321,7 @@ static int fuse_dentry_revalidate(struct dentry *entry, unsigned int flags)
spin_unlock(&fi->lock);
}
kfree(forget);
if (ret == -ENOMEM)
if (ret == -ENOMEM || ret == -EINTR)
goto out;
if (ret || fuse_invalid_attr(&outarg.attr) ||
fuse_stale_inode(inode, outarg.generation, &outarg.attr))

View File

@ -605,11 +605,58 @@ static const struct NTFS_DE *hdr_insert_head(struct INDEX_HDR *hdr,
return e;
}
/*
* index_hdr_check
*
* return true if INDEX_HDR is valid
*/
static bool index_hdr_check(const struct INDEX_HDR *hdr, u32 bytes)
{
u32 end = le32_to_cpu(hdr->used);
u32 tot = le32_to_cpu(hdr->total);
u32 off = le32_to_cpu(hdr->de_off);
if (!IS_ALIGNED(off, 8) || tot > bytes || end > tot ||
off + sizeof(struct NTFS_DE) > end) {
/* incorrect index buffer. */
return false;
}
return true;
}
/*
* index_buf_check
*
* return true if INDEX_BUFFER seems is valid
*/
static bool index_buf_check(const struct INDEX_BUFFER *ib, u32 bytes,
const CLST *vbn)
{
const struct NTFS_RECORD_HEADER *rhdr = &ib->rhdr;
u16 fo = le16_to_cpu(rhdr->fix_off);
u16 fn = le16_to_cpu(rhdr->fix_num);
if (bytes <= offsetof(struct INDEX_BUFFER, ihdr) ||
rhdr->sign != NTFS_INDX_SIGNATURE ||
fo < sizeof(struct INDEX_BUFFER)
/* Check index buffer vbn. */
|| (vbn && *vbn != le64_to_cpu(ib->vbn)) || (fo % sizeof(short)) ||
fo + fn * sizeof(short) >= bytes ||
fn != ((bytes >> SECTOR_SHIFT) + 1)) {
/* incorrect index buffer. */
return false;
}
return index_hdr_check(&ib->ihdr,
bytes - offsetof(struct INDEX_BUFFER, ihdr));
}
void fnd_clear(struct ntfs_fnd *fnd)
{
int i;
for (i = 0; i < fnd->level; i++) {
for (i = fnd->level - 1; i >= 0; i--) {
struct indx_node *n = fnd->nodes[i];
if (!n)
@ -828,9 +875,16 @@ int indx_init(struct ntfs_index *indx, struct ntfs_sb_info *sbi,
u32 t32;
const struct INDEX_ROOT *root = resident_data(attr);
t32 = le32_to_cpu(attr->res.data_size);
if (t32 <= offsetof(struct INDEX_ROOT, ihdr) ||
!index_hdr_check(&root->ihdr,
t32 - offsetof(struct INDEX_ROOT, ihdr))) {
goto out;
}
/* Check root fields. */
if (!root->index_block_clst)
return -EINVAL;
goto out;
indx->type = type;
indx->idx2vbn_bits = __ffs(root->index_block_clst);
@ -842,19 +896,19 @@ int indx_init(struct ntfs_index *indx, struct ntfs_sb_info *sbi,
if (t32 < sbi->cluster_size) {
/* Index record is smaller than a cluster, use 512 blocks. */
if (t32 != root->index_block_clst * SECTOR_SIZE)
return -EINVAL;
goto out;
/* Check alignment to a cluster. */
if ((sbi->cluster_size >> SECTOR_SHIFT) &
(root->index_block_clst - 1)) {
return -EINVAL;
goto out;
}
indx->vbn2vbo_bits = SECTOR_SHIFT;
} else {
/* Index record must be a multiple of cluster size. */
if (t32 != root->index_block_clst << sbi->cluster_bits)
return -EINVAL;
goto out;
indx->vbn2vbo_bits = sbi->cluster_bits;
}
@ -862,7 +916,14 @@ int indx_init(struct ntfs_index *indx, struct ntfs_sb_info *sbi,
init_rwsem(&indx->run_lock);
indx->cmp = get_cmp_func(root);
return indx->cmp ? 0 : -EINVAL;
if (!indx->cmp)
goto out;
return 0;
out:
ntfs_set_state(sbi, NTFS_DIRTY_DIRTY);
return -EINVAL;
}
static struct indx_node *indx_new(struct ntfs_index *indx,
@ -1020,6 +1081,13 @@ int indx_read(struct ntfs_index *indx, struct ntfs_inode *ni, CLST vbn,
goto out;
ok:
if (!index_buf_check(ib, bytes, &vbn)) {
ntfs_inode_err(&ni->vfs_inode, "directory corrupted");
ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR);
err = -EINVAL;
goto out;
}
if (err == -E_NTFS_FIXUP) {
ntfs_write_bh(ni->mi.sbi, &ib->rhdr, &in->nb, 0);
err = 0;
@ -1607,9 +1675,9 @@ static int indx_insert_into_root(struct ntfs_index *indx, struct ntfs_inode *ni,
if (err) {
/* Restore root. */
if (mi_resize_attr(mi, attr, -ds_root))
if (mi_resize_attr(mi, attr, -ds_root)) {
memcpy(attr, a_root, asize);
else {
} else {
/* Bug? */
ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
}

View File

@ -81,7 +81,7 @@ static struct inode *ntfs_read_mft(struct inode *inode,
le16_to_cpu(ref->seq), le16_to_cpu(rec->seq));
goto out;
} else if (!is_rec_inuse(rec)) {
err = -EINVAL;
err = -ESTALE;
ntfs_err(sb, "Inode r=%x is not in use!", (u32)ino);
goto out;
}
@ -92,8 +92,10 @@ static struct inode *ntfs_read_mft(struct inode *inode,
goto out;
}
if (!is_rec_base(rec))
goto Ok;
if (!is_rec_base(rec)) {
err = -EINVAL;
goto out;
}
/* Record should contain $I30 root. */
is_dir = rec->flags & RECORD_FLAG_DIR;
@ -472,7 +474,6 @@ static struct inode *ntfs_read_mft(struct inode *inode,
inode->i_flags |= S_NOSEC;
}
Ok:
if (ino == MFT_REC_MFT && !sb->s_root)
sbi->mft.ni = NULL;
@ -526,6 +527,9 @@ struct inode *ntfs_iget5(struct super_block *sb, const struct MFT_REF *ref,
_ntfs_bad_inode(inode);
}
if (IS_ERR(inode) && name)
ntfs_set_state(sb->s_fs_info, NTFS_DIRTY_ERROR);
return inode;
}
@ -1641,10 +1645,8 @@ struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
ntfs_remove_reparse(sbi, IO_REPARSE_TAG_SYMLINK, &new_de->ref);
out5:
if (S_ISDIR(mode) || run_is_empty(&ni->file.run))
goto out4;
run_deallocate(sbi, &ni->file.run, false);
if (!S_ISDIR(mode))
run_deallocate(sbi, &ni->file.run, false);
out4:
clear_rec_inuse(rec);

View File

@ -795,12 +795,12 @@ int run_pack(const struct runs_tree *run, CLST svcn, CLST len, u8 *run_buf,
u32 run_buf_size, CLST *packed_vcns);
int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf,
u32 run_buf_size);
int run_buf_size);
#ifdef NTFS3_CHECK_FREE_CLST
int run_unpack_ex(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf,
u32 run_buf_size);
int run_buf_size);
#else
#define run_unpack_ex run_unpack
#endif

View File

@ -919,12 +919,15 @@ int run_pack(const struct runs_tree *run, CLST svcn, CLST len, u8 *run_buf,
*/
int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf,
u32 run_buf_size)
int run_buf_size)
{
u64 prev_lcn, vcn64, lcn, next_vcn;
const u8 *run_last, *run_0;
bool is_mft = ino == MFT_REC_MFT;
if (run_buf_size < 0)
return -EINVAL;
/* Check for empty. */
if (evcn + 1 == svcn)
return 0;
@ -1046,7 +1049,7 @@ int run_unpack(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
*/
int run_unpack_ex(struct runs_tree *run, struct ntfs_sb_info *sbi, CLST ino,
CLST svcn, CLST evcn, CLST vcn, const u8 *run_buf,
u32 run_buf_size)
int run_buf_size)
{
int ret, err;
CLST next_vcn, lcn, len;

View File

@ -42,28 +42,26 @@ static inline size_t packed_ea_size(const struct EA_FULL *ea)
* Assume there is at least one xattr in the list.
*/
static inline bool find_ea(const struct EA_FULL *ea_all, u32 bytes,
const char *name, u8 name_len, u32 *off)
const char *name, u8 name_len, u32 *off, u32 *ea_sz)
{
*off = 0;
u32 ea_size;
if (!ea_all || !bytes)
*off = 0;
if (!ea_all)
return false;
for (;;) {
for (; *off < bytes; *off += ea_size) {
const struct EA_FULL *ea = Add2Ptr(ea_all, *off);
u32 next_off = *off + unpacked_ea_size(ea);
if (next_off > bytes)
return false;
ea_size = unpacked_ea_size(ea);
if (ea->name_len == name_len &&
!memcmp(ea->name, name, name_len))
!memcmp(ea->name, name, name_len)) {
if (ea_sz)
*ea_sz = ea_size;
return true;
*off = next_off;
if (next_off >= bytes)
return false;
}
}
return false;
}
/*
@ -74,12 +72,12 @@ static inline bool find_ea(const struct EA_FULL *ea_all, u32 bytes,
static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea,
size_t add_bytes, const struct EA_INFO **info)
{
int err;
int err = -EINVAL;
struct ntfs_sb_info *sbi = ni->mi.sbi;
struct ATTR_LIST_ENTRY *le = NULL;
struct ATTRIB *attr_info, *attr_ea;
void *ea_p;
u32 size;
u32 size, off, ea_size;
static_assert(le32_to_cpu(ATTR_EA_INFO) < le32_to_cpu(ATTR_EA));
@ -96,24 +94,31 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea,
*info = resident_data_ex(attr_info, sizeof(struct EA_INFO));
if (!*info)
return -EINVAL;
goto out;
/* Check Ea limit. */
size = le32_to_cpu((*info)->size);
if (size > sbi->ea_max_size)
return -EFBIG;
if (size > sbi->ea_max_size) {
err = -EFBIG;
goto out;
}
if (attr_size(attr_ea) > sbi->ea_max_size)
return -EFBIG;
if (attr_size(attr_ea) > sbi->ea_max_size) {
err = -EFBIG;
goto out;
}
if (!size) {
/* EA info persists, but xattr is empty. Looks like EA problem. */
goto out;
}
/* Allocate memory for packed Ea. */
ea_p = kmalloc(size_add(size, add_bytes), GFP_NOFS);
if (!ea_p)
return -ENOMEM;
if (!size) {
/* EA info persists, but xattr is empty. Looks like EA problem. */
} else if (attr_ea->non_res) {
if (attr_ea->non_res) {
struct runs_tree run;
run_init(&run);
@ -124,24 +129,52 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea,
run_close(&run);
if (err)
goto out;
goto out1;
} else {
void *p = resident_data_ex(attr_ea, size);
if (!p) {
err = -EINVAL;
goto out;
}
if (!p)
goto out1;
memcpy(ea_p, p, size);
}
memset(Add2Ptr(ea_p, size), 0, add_bytes);
/* Check all attributes for consistency. */
for (off = 0; off < size; off += ea_size) {
const struct EA_FULL *ef = Add2Ptr(ea_p, off);
u32 bytes = size - off;
/* Check if we can use field ea->size. */
if (bytes < sizeof(ef->size))
goto out1;
if (ef->size) {
ea_size = le32_to_cpu(ef->size);
if (ea_size > bytes)
goto out1;
continue;
}
/* Check if we can use fields ef->name_len and ef->elength. */
if (bytes < offsetof(struct EA_FULL, name))
goto out1;
ea_size = ALIGN(struct_size(ef, name,
1 + ef->name_len +
le16_to_cpu(ef->elength)),
4);
if (ea_size > bytes)
goto out1;
}
*ea = ea_p;
return 0;
out:
out1:
kfree(ea_p);
*ea = NULL;
out:
ntfs_set_state(sbi, NTFS_DIRTY_DIRTY);
return err;
}
@ -163,6 +196,7 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
const struct EA_FULL *ea;
u32 off, size;
int err;
int ea_size;
size_t ret;
err = ntfs_read_ea(ni, &ea_all, 0, &info);
@ -175,8 +209,9 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
size = le32_to_cpu(info->size);
/* Enumerate all xattrs. */
for (ret = 0, off = 0; off < size; off += unpacked_ea_size(ea)) {
for (ret = 0, off = 0; off < size; off += ea_size) {
ea = Add2Ptr(ea_all, off);
ea_size = unpacked_ea_size(ea);
if (buffer) {
if (ret + ea->name_len + 1 > bytes_per_buffer) {
@ -227,7 +262,8 @@ static int ntfs_get_ea(struct inode *inode, const char *name, size_t name_len,
goto out;
/* Enumerate all xattrs. */
if (!find_ea(ea_all, le32_to_cpu(info->size), name, name_len, &off)) {
if (!find_ea(ea_all, le32_to_cpu(info->size), name, name_len, &off,
NULL)) {
err = -ENODATA;
goto out;
}
@ -269,7 +305,7 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
struct EA_FULL *new_ea;
struct EA_FULL *ea_all = NULL;
size_t add, new_pack;
u32 off, size;
u32 off, size, ea_sz;
__le16 size_pack;
struct ATTRIB *attr;
struct ATTR_LIST_ENTRY *le;
@ -304,9 +340,8 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
size_pack = ea_info.size_pack;
}
if (info && find_ea(ea_all, size, name, name_len, &off)) {
if (info && find_ea(ea_all, size, name, name_len, &off, &ea_sz)) {
struct EA_FULL *ea;
size_t ea_sz;
if (flags & XATTR_CREATE) {
err = -EEXIST;
@ -329,8 +364,6 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name,
if (ea->flags & FILE_NEED_EA)
le16_add_cpu(&ea_info.count, -1);
ea_sz = unpacked_ea_size(ea);
le16_add_cpu(&ea_info.size_pack, 0 - packed_ea_size(ea));
memmove(ea, Add2Ptr(ea, ea_sz), size - off - ea_sz);

View File

@ -942,7 +942,8 @@ enum vm_fault_reason {
{ VM_FAULT_RETRY, "RETRY" }, \
{ VM_FAULT_FALLBACK, "FALLBACK" }, \
{ VM_FAULT_DONE_COW, "DONE_COW" }, \
{ VM_FAULT_NEEDDSYNC, "NEEDDSYNC" }
{ VM_FAULT_NEEDDSYNC, "NEEDDSYNC" }, \
{ VM_FAULT_COMPLETED, "COMPLETED" }
struct vm_special_mapping {
const char *name; /* The name, e.g. "[vdso]". */

View File

@ -7,6 +7,7 @@
#include <linux/poll.h>
#include <linux/netdevice.h>
#include <linux/types.h>
#include <linux/android_kabi.h>
/**
* enum wwan_port_type - WWAN port types
@ -60,6 +61,9 @@ struct wwan_port_ops {
int (*tx_blocking)(struct wwan_port *port, struct sk_buff *skb);
__poll_t (*tx_poll)(struct wwan_port *port, struct file *filp,
poll_table *wait);
ANDROID_KABI_RESERVE(1);
ANDROID_KABI_RESERVE(2);
};
/**
@ -165,6 +169,9 @@ struct wwan_ops {
u32 if_id, struct netlink_ext_ack *extack);
void (*dellink)(void *ctxt, struct net_device *dev,
struct list_head *head);
ANDROID_KABI_RESERVE(1);
ANDROID_KABI_RESERVE(2);
};
int wwan_register_ops(struct device *parent, const struct wwan_ops *ops,

View File

@ -255,6 +255,10 @@ DECLARE_RESTRICTED_HOOK(android_rvh_do_sched_yield,
TP_PROTO(struct rq *rq),
TP_ARGS(rq), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_before_do_sched_yield,
TP_PROTO(long *unused),
TP_ARGS(unused), 1);
DECLARE_HOOK(android_vh_free_task,
TP_PROTO(struct task_struct *p),
TP_ARGS(p));

View File

@ -25,12 +25,12 @@ obj-$(CONFIG_MODULE_UNLOAD_TAINT_TRACKING) += tracking.o
# ANDROID: GKI: Generate headerfiles required for gki_module.o
#
# Dependencies on generated files need to be listed explicitly
$(obj)/gki_module.o: $(obj)/gki_module_protected_exports.h \
$(obj)/gki_module_unprotected.h
$(obj)/gki_module.o: include/generated/gki_module_protected_exports.h \
include/generated/gki_module_unprotected.h
ALL_KMI_SYMBOLS := all_kmi_symbols
$(obj)/gki_module_unprotected.h: $(ALL_KMI_SYMBOLS) \
include/generated/gki_module_unprotected.h: $(ALL_KMI_SYMBOLS) \
$(srctree)/scripts/gen_gki_modules_headers.sh
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_gki_modules_headers.sh $@ \
"$(srctree)" \
@ -48,7 +48,7 @@ else
ABI_PROTECTED_EXPORTS_FILE := $(wildcard $(srctree)/android/abi_gki_protected_exports_$(ARCH))
endif
$(obj)/gki_module_protected_exports.h: $(ABI_PROTECTED_EXPORTS_FILE) \
include/generated/gki_module_protected_exports.h: $(ABI_PROTECTED_EXPORTS_FILE) \
$(srctree)/scripts/gen_gki_modules_headers.sh
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/gen_gki_modules_headers.sh $@ \
"$(srctree)" \

View File

@ -16,8 +16,8 @@
* gki_module_protected_exports.h -- Symbols protected from _export_ by unsigned modules
* gki_module_unprotected.h -- Symbols allowed to _access_ by unsigned modules
*/
#include "gki_module_protected_exports.h"
#include "gki_module_unprotected.h"
#include <generated/gki_module_protected_exports.h>
#include <generated/gki_module_unprotected.h>
#define MAX_STRCMP_LEN (max(MAX_UNPROTECTED_NAME_LEN, MAX_PROTECTED_EXPORTS_NAME_LEN))

View File

@ -8446,6 +8446,11 @@ static void do_sched_yield(void)
{
struct rq_flags rf;
struct rq *rq;
long skip = 0;
trace_android_rvh_before_do_sched_yield(&skip);
if (skip)
return;
rq = this_rq_lock_irq(&rf);

View File

@ -75,6 +75,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_is_cpu_allowed);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_get_nohz_timer_target);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_getaffinity);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_do_sched_yield);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_before_do_sched_yield);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_fork_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug);

View File

@ -223,7 +223,7 @@ static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start,
trace_android_vh_madvise_swapin_walk_pmd_entry(entry);
page = read_swap_cache_async(entry, GFP_HIGHUSER_MOVABLE,
vma, index, false, &splug);
vma, index, &splug);
if (page)
put_page(page);
}
@ -259,7 +259,7 @@ static void force_shm_swapin_readahead(struct vm_area_struct *vma,
rcu_read_unlock();
page = read_swap_cache_async(swap, GFP_HIGHUSER_MOVABLE,
NULL, 0, false, &splug);
NULL, 0, &splug);
if (page)
put_page(page);

View File

@ -46,7 +46,6 @@ struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index);
struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
struct vm_area_struct *vma,
unsigned long addr,
bool do_poll,
struct swap_iocb **plug);
struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
struct vm_area_struct *vma,

View File

@ -515,15 +515,14 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
*/
struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
struct vm_area_struct *vma,
unsigned long addr, bool do_poll,
struct swap_iocb **plug)
unsigned long addr, struct swap_iocb **plug)
{
bool page_was_allocated;
struct page *retpage = __read_swap_cache_async(entry, gfp_mask,
vma, addr, &page_was_allocated);
if (page_was_allocated)
swap_readpage(retpage, do_poll, plug);
swap_readpage(retpage, false, plug);
return retpage;
}
@ -618,7 +617,7 @@ struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t gfp_mask,
struct swap_info_struct *si = swp_swap_info(entry);
struct blk_plug plug;
struct swap_iocb *splug = NULL;
bool do_poll = true, page_allocated;
bool page_allocated;
struct vm_area_struct *vma = vmf->vma;
unsigned long addr = vmf->address;
@ -626,7 +625,6 @@ struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t gfp_mask,
if (!mask)
goto skip;
do_poll = false;
/* Read a page_cluster sized and aligned cluster around offset. */
start_offset = offset & ~mask;
end_offset = offset | mask;
@ -658,7 +656,7 @@ struct page *swap_cluster_readahead(swp_entry_t entry, gfp_t gfp_mask,
lru_add_drain(); /* Push any new pages onto the LRU now */
skip:
/* The page was likely read above, so no need for plugging here */
return read_swap_cache_async(entry, gfp_mask, vma, addr, do_poll, NULL);
return read_swap_cache_async(entry, gfp_mask, vma, addr, NULL);
}
int init_swap_address_space(unsigned int type, unsigned long nr_pages)
@ -832,7 +830,7 @@ static struct page *swap_vma_readahead(swp_entry_t fentry, gfp_t gfp_mask,
skip:
/* The page was likely read above, so no need for plugging here */
return read_swap_cache_async(fentry, gfp_mask, vma, vmf->address,
ra_info.win == 1, NULL);
NULL);
}
/**