Merge remote-tracking branch 'openela/linux-4.14.y' into 14.0
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
upstream_repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
|
||||
upstream_base: 4.19.304
|
||||
base: 4.14.336
|
||||
upstream_version: 4.19.309
|
||||
version: 4.14.341
|
||||
upstream_version: 4.19.311
|
||||
version: 4.14.343
|
||||
|
||||
143
.elts/meta/4.14.342.yaml
Normal file
143
.elts/meta/4.14.342.yaml
Normal file
@@ -0,0 +1,143 @@
|
||||
683e08ff6ef0a279343ba4383c6e01e4a9143050:
|
||||
title: 'ip: validate header length on virtual device xmit'
|
||||
mainline: cb9f1b783850b14cbd7f87d061d784a666dfba1f
|
||||
60e32c8d4c6bb518863249d1c7c7e1fb7c5a9f96:
|
||||
title: 'net: lan78xx: Allow for VLAN headers in timeout calcs'
|
||||
b64278fd3d498eeb7a3f9b44cdffd303eaa41ca7:
|
||||
title: 'net: usb: lan78xx: Disable interrupts before calling generic_handle_irq()'
|
||||
mainline: 0a29ac5bd3a988dc151c8d26910dec2557421f64
|
||||
e2ad089a70e591cf7c886be6f559a0e8503674fc:
|
||||
title: 'net: usb: lan78xx: Remove lots of set but unused ''ret'' variables'
|
||||
mainline: 06cd7c46b3ab3f2252c61bf85b191236cf0254e1
|
||||
upstream: 7585522bf089bfebb7bbd22fddb5495f16f250c9
|
||||
f6cbd3c0c4516263a546a791a9eb985ca5ee04a6:
|
||||
title: 'lan78xx: Fix white space and style issues'
|
||||
mainline: 9ceec7d33adf9647293f24d2fd9a055b89c63864
|
||||
upstream: 09a8c3e4e79157bd3358bc9f0fab1517ae8ad884
|
||||
b70394861f10fc4bb0a53bb4fe54b79f497fdf79:
|
||||
title: 'lan78xx: Add missing return code checks'
|
||||
mainline: 3415f6baaddb9b39d7112247ab39ef3c700f882e
|
||||
upstream: 20ccd52bd3b5e1323e58a1049d7d5285650c6c64
|
||||
c2688f303badea10dd8526d734db642898128e7e:
|
||||
title: 'lan78xx: Fix partial packet errors on suspend/resume'
|
||||
mainline: e1210fe63bf8b080edd0805240e90b81b6b069c1
|
||||
upstream: 242c4cd0d906f6f8708c0214b0c926b109f63168
|
||||
cb2fabebb54f6cc12e8d180c40d9ac59076bb666:
|
||||
title: 'lan78xx: Fix race conditions in suspend/resume handling'
|
||||
mainline: 5f4cc6e25148cc141f97afb41b4dfe9eb1cce613
|
||||
upstream: 513cfa1886cd2a06658410b788236522c2a69583
|
||||
30336393906643b4fece662c7c2f1871766222fd:
|
||||
title: 'net: lan78xx: fix runtime PM count underflow on link stop'
|
||||
mainline: 1eecc7ab82c42133b748e1895275942a054a7f67
|
||||
upstream: 575689f40b415299864bf1826d03e71d3d807c73
|
||||
de6f8690a982faf789a071b7683e3b26274faf4e:
|
||||
title: 'net: move definition of pcpu_lstats to header file'
|
||||
mainline: 52bb6677d530d37055092d86b4eab69dce6c166a
|
||||
upstream: 6463ace2a35d22642c90147ebced20ef6145eac6
|
||||
46ae53df59e8bb5f52d184011ff4db8582b47874:
|
||||
title: 'net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb'
|
||||
mainline: d13f048dd40e8577260cd43faea8ec9b77520197
|
||||
3b1e13eb6c7bcbc71e0766dc21ccb55f8d15ab50:
|
||||
title: 'geneve: make sure to pull inner header in geneve_rx()'
|
||||
mainline: 1ca1ba465e55b9460e4e75dec9fff31e708fec74
|
||||
upstream: e431c3227864b5646601c97f5f898d99472f2914
|
||||
08230f3ca93b03add21ae1e8ddf08bd283daab23:
|
||||
title: 'netfilter: nf_conntrack_h323: Remove typedef struct'
|
||||
0025d996dd7b719a14f477ad3fa810abdf406585:
|
||||
title: 'netfilter: nf_ct_h323: Out Of Bound Read in Netfilter Conntrack'
|
||||
5ee983c52f6ca4fa4f15d9ff3b82634237b49e4f:
|
||||
title: 'netfilter: nf_ct_h323: Convert CHECK_BOUND macro to function'
|
||||
74a4c76141e79f28621987d7a5d1233528717105:
|
||||
title: 'netfilter: nf_ct_h323: Extend nf_h323_error_boundary to work on bits as well'
|
||||
1c31b4059c9416af2dfb42f087f64edd607eb35f:
|
||||
title: 'netfilter: nf_conntrack_h323: Add protection for bmp length out of range'
|
||||
mainline: 767146637efc528b5e3d31297df115e85a2fd362
|
||||
upstream: 98db42191329c679f4ca52bec0b319689e1ad8cb
|
||||
7bab6671e4d56af53eaa19b4e61d349ce3b1cee7:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_default_path_quality'
|
||||
mainline: 958d6145a6d9ba9e075c921aead8753fb91c9101
|
||||
upstream: 7644df766006d4878a556e427e3ecc78c2d5606b
|
||||
5993b06357724c9656435dcd39ef3f731bb68719:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_obsolescence_count_initialiser'
|
||||
mainline: cfd9f4a740f772298308b2e6070d2c744fb5cf79
|
||||
upstream: e3a3718b1723253d4f068e88e81d880d71f1a1e9
|
||||
3babe0b373c89f4557d880edfaee1269e0565619:
|
||||
title: 'netrom: Fix data-races around sysctl_netrom_network_ttl_initialiser'
|
||||
mainline: 119cae5ea3f9e35cdada8e572cc067f072fa825a
|
||||
upstream: acc653e8a3aaab1b7103f98645f2cce7be89e3d3
|
||||
75af2f874a607d406075ebee8872267e7610cc9c:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_timeout'
|
||||
mainline: 60a7a152abd494ed4f69098cf0f322e6bb140612
|
||||
upstream: 500936692ccca8617a955652d1929f079b17a201
|
||||
6e9e490c1c0f727effa44d696b29b363b9ddf216:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_maximum_tries'
|
||||
mainline: e799299aafed417cc1f32adccb2a0e5268b3f6d5
|
||||
upstream: 84b8486e9cedc93875f251ba31abcf73bd586a3a
|
||||
9da1d2a1e6687d4009eff99367df4bf7dee17f6c:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_acknowledge_delay'
|
||||
mainline: 806f462ba9029d41aadf8ec93f2f99c5305deada
|
||||
upstream: 6133a71c75dacea12fcc85838b4455c2055b0f14
|
||||
943942802104ff9dcb435d85456b08967878b40d:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_busy_delay'
|
||||
mainline: 43547d8699439a67b78d6bb39015113f7aa360fd
|
||||
upstream: 7782e5e7047cae6b9255ee727c99fc73d77cf773
|
||||
3f661371119e40c7307cff48dfaa28ba19ec6a20:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_requested_window_size'
|
||||
mainline: a2e706841488f474c06e9b33f71afc947fb3bf56
|
||||
upstream: 4f2efa17c3ec5e4be0567b47439b9713c0dc6550
|
||||
0a8e233837a214086305549c6cc3c10505960a18:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_no_activity_timeout'
|
||||
mainline: f99b494b40431f0ca416859f2345746199398e2b
|
||||
upstream: 73426c32e259c767d40613b956d5b80d0c28a9a9
|
||||
4851e4321fdf86f860623d8541f46916cbd9b8e7:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_routing_control'
|
||||
mainline: b5dffcb8f71bdd02a4e5799985b51b12f4eeaf76
|
||||
upstream: c13fbb5902bce848759385986d4833f5b90782c1
|
||||
3c574b4ac9511dee909385868739d64de9abf892:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_link_fails_count'
|
||||
mainline: bc76645ebdd01be9b9994dac39685a3d0f6f7985
|
||||
upstream: 97a4d8b9f67cc7efe9a0c137e12f6d9e40795bf1
|
||||
daa941d9ed63191c6d3e13d640ecd55a07d449a3:
|
||||
title: 'netrom: Fix data-races around sysctl_net_busy_read'
|
||||
mainline: d380ce70058a4ccddc3e5f5c2063165dc07672c6
|
||||
upstream: d623fd5298d95b65d27ef5a618ebf39541074856
|
||||
0e37e77f60fe5fe48b7010deb499d284c92003c6:
|
||||
title: 'tools/selftest/vm: allow choosing mem size and page size in map_hugetlb'
|
||||
mainline: fa7b9a805c797b729022029aaa3a2b7c35fff4c6
|
||||
upstream: becbfcabedfe3ceb9bd6184c172fad00c0a8feb0
|
||||
b37d2d9d10c65fabe5b9b53ec84d9388202f4bf2:
|
||||
title: 'selftests: mm: fix map_hugetlb failure on 64K page size systems'
|
||||
mainline: 91b80cc5b39f00399e8e2d17527cad2c7fa535e2
|
||||
upstream: abdbd5f3e8c504d864fdc032dd5a4eb481cb12bf
|
||||
fb847632d0d888521c17c0f1109ca827316281a4:
|
||||
title: 'um: allow not setting extra rpaths in the linux binary'
|
||||
mainline: 386093c68ba3e8bcfe7f46deba901e0e80713c29
|
||||
upstream: 90091bdf5df0195de0d2d8e3e4d43aaaee122d34
|
||||
8ddca3d65f8a45b7a4e8d844441b30f990e0b015:
|
||||
title: 'hv_netvsc: use netif_is_bond_master() instead of open code'
|
||||
mainline: c60882a4566a0a62dc3a40c85131103aad83dcb3
|
||||
upstream: a2577793ff166cc18fe4192a8b1bca2d37253e6a
|
||||
f2348ee837cee8604c0502b6ef9d806ce1cc13ec:
|
||||
title: 'getrusage: add the "signal_struct *sig" local variable'
|
||||
mainline: c7ac8231ace9b07306d0299969e42073b189c70a
|
||||
upstream: e904c9a4834888cb2b37607d9571f49964f4603f
|
||||
c048d8254a03786c76d3e0f7b687c98f951c7957:
|
||||
title: 'getrusage: move thread_group_cputime_adjusted() outside of lock_task_sighand()'
|
||||
mainline: daa694e4137571b4ebec330f9a9b4d54aa8b8089
|
||||
upstream: 33ec341e3e9588962ff3cf49f642da140d3ecfc0
|
||||
82f1e0dc48d7753fa960bfc2cec672a0aaf69e01:
|
||||
title: 'getrusage: use __for_each_thread()'
|
||||
mainline: 13b7bc60b5353371460a203df6c38ccd38ad7a3a
|
||||
upstream: e24772adaaf4b81ac0855cceb17080352526f765
|
||||
8d11949c478109b80f65d7b3da4927407e61c10a:
|
||||
title: 'getrusage: use sig->stats_lock rather than lock_task_sighand()'
|
||||
mainline: f7ec1cd5cc7ef3ad964b677ba82b8b77f1c93009
|
||||
upstream: c96f49d3a741f6693feecdb067c442b609903d03
|
||||
fee13d620a067a56d35582ad3bae29e9fd6dd1f8:
|
||||
title: 'selftests/vm: fix display of page size in map_hugetlb'
|
||||
mainline: 1ec882fc81e3177faf055877310dbdb0c68eb7db
|
||||
upstream: 71317d703c550c819b5465c3a49ce98650089865
|
||||
f19d6a15935beb1be8aee2845912d846e5649981:
|
||||
title: 'selftests/vm: fix map_hugetlb length used for testing read and write'
|
||||
mainline: cabc30da10e677c67ab9a136b1478175734715c5
|
||||
upstream: af289249ec5c79200c4ec4ec7f4902378956c4d7
|
||||
532
.elts/meta/4.14.343.yaml
Normal file
532
.elts/meta/4.14.343.yaml
Normal file
@@ -0,0 +1,532 @@
|
||||
3300a318344fb9cee9d92161549c7cfef5ac1413:
|
||||
title: 'xen/events: only register debug interrupt for 2-level events'
|
||||
mainline: d04b1ae5a9b0c868dda8b4b34175ef08f3cb9e93
|
||||
5ee8a0e79d4147dd41e7e4e420d91e2f16eb4bb6:
|
||||
title: 'x86/xen: Fix memory leak in xen_smp_intr_init{_pv}()'
|
||||
mainline: 69143f60868b3939ddc89289b29db593b647295e
|
||||
f2645f10d789c047bcaf11a573ed337bad4f0707:
|
||||
title: 'x86/xen: Add some null pointer checking to smp.c'
|
||||
mainline: 3693bb4465e6e32a204a5b86d3ec7e6b9f7e67c2
|
||||
upstream: 70a33a629090130d731fc1e1ad498bb672eea165
|
||||
96405638c5c2567f6c27cfd84ada8a5a5311b231:
|
||||
title: 'MIPS: Clear Cause.BD in instruction_pointer_set'
|
||||
mainline: 9d6e21ddf20293b3880ae55b9d14de91c5891c59
|
||||
upstream: b0b3373993a5b445eeb410d7c74a87710aad9d6e
|
||||
3ded98fc3b9716997438f60daf0452b7c3e6d360:
|
||||
title: 'net/iucv: fix the allocation size of iucv_path_table array'
|
||||
mainline: b4ea9b6a18ebf7f9f3a7a60f82e925186978cfcf
|
||||
upstream: 13f5b64a584b5554f81e7e493dcbafaddd06557d
|
||||
e9f9eb0c2d8c5c96fc354cf8ede84f4ba6f38d19:
|
||||
title: 'block: sed-opal: handle empty atoms when parsing response'
|
||||
mainline: 5429c8de56f6b2bd8f537df3a1e04e67b9c04282
|
||||
upstream: 72da7347f460b2ecc5e934bcbef312e0fa5ebf2b
|
||||
e6d8df74f2692f4e83306e293a8c503112d32aa8:
|
||||
title: 'dm-verity, dm-crypt: align "struct bvec_iter" correctly'
|
||||
mainline: 787f1b2800464aa277236a66eb3c279535edd460
|
||||
upstream: 8338d971f919256b312f28a9a320f552a499dc8e
|
||||
70928e45cbbe230a8fde12a6bb7bbbfb77139e7f:
|
||||
title: 'scsi: mpt3sas: Prevent sending diag_reset when the controller is ready'
|
||||
mainline: ee0017c3ed8a8abfa4d40e42f908fb38c31e7515
|
||||
upstream: 6cc96148d26afbf1e3b8167ee68dc9eec387804d
|
||||
b79150eddce93e7bf87f005c9c996abd90d4655e:
|
||||
title: 'Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security'
|
||||
mainline: 2535b848fa0f42ddff3e5255cf5e742c9b77bb26
|
||||
upstream: 369f419c097e82407dd429a202cde9a73d3ae29b
|
||||
51ec1ed43d0b4ab1228eb55189fa939ad579c4c2:
|
||||
title: 'firewire: core: use long bus reset on gap count error'
|
||||
mainline: d0b06dc48fb15902d7da09c5c0861e7f042a9381
|
||||
upstream: b89198d02d0149f22149675766c47883de923106
|
||||
243004088d2707ad353b4ee4dd6b96f76daca68d:
|
||||
title: 'Input: gpio_keys_polled - suppress deferred probe error for gpio'
|
||||
mainline: 963465a33141d0d52338e77f80fe543d2c9dc053
|
||||
upstream: a215f042a7f57346fd5430e84f81f822e84975b5
|
||||
6895f6831861ceceb98e7b6604ec9050a37c8173:
|
||||
title: 'ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC'
|
||||
mainline: 03c7874106ca5032a312626b927b1c35f07b1f35
|
||||
upstream: c2a85fd64160fcf4185669d4db299fbb2df76986
|
||||
2a2f4e8dfe12971fd6b78ec6e05179151bea4a88:
|
||||
title: 'ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode'
|
||||
mainline: 6fa849e4d78b880e878138bf238e4fd2bac3c4fa
|
||||
upstream: 2f87e22ea1b42b89435bf98a768eb8227797d819
|
||||
cacf64e0af45cb788a70941441fc6423149b1d9f:
|
||||
title: 'ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll'
|
||||
mainline: 96e202f8c52ac49452f83317cf3b34cd1ad81e18
|
||||
upstream: d619f175ff50582c05858cb96d05391f77c7c7aa
|
||||
ed2edd721e156046bb4dc4587f06af360f875581:
|
||||
title: 'crypto: af_alg - make some functions static'
|
||||
mainline: 466e0759269d31485074126700574230bfff3b1c
|
||||
upstream: 0ca02d4beebb7b47ea0cbdceac891465cbb966c6
|
||||
f63a7bf2dcf7e05021785b64b184795f6b6a6ccd:
|
||||
title: 'crypto: algif_aead - Only wake up when ctx->more is zero'
|
||||
mainline: f3c802a1f30013f8f723b62d7fa49eb9e991da23
|
||||
upstream: de564b59755dfb080ef237dd4fbd02cb0c3e58a1
|
||||
ce3317e4a96642984d3e7fbaf33a086176052bf8:
|
||||
title: 'do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak'
|
||||
mainline: 3948abaa4e2be938ccdfc289385a27342fb13d43
|
||||
upstream: 4bac28f441e3cc9d3f1a84c8d023228a68d8a7c1
|
||||
70137872f87a2e47239cf7ea0d9b295f173f6c27:
|
||||
title: 'fs/select: rework stack allocation hack for clang'
|
||||
mainline: ddb9fd7a544088ed70eccbb9f85e9cc9952131c1
|
||||
upstream: b86af4d77a5a2487020794845c1a2e948699630c
|
||||
644ef6ff144cf72b7c0170ade4a8a449f01d9e63:
|
||||
title: 'md: switch to ->check_events for media change notifications'
|
||||
mainline: a564e23f0f99759f453dbefcb9160dec6d99df96
|
||||
upstream: dc51c01a3d5a796e18520a186f56e13f8e70749f
|
||||
5621bcf7c79c834e98f01dfea929a7bbf7d600ab:
|
||||
title: 'block: add a new set_read_only method'
|
||||
mainline: e00adcadf3af7a8335026d71ab9f0e0a922191ac
|
||||
upstream: f28658bc8a7faa03578dc2588b5b3b56b09575a6
|
||||
1d018bd5617e06f3c7bd6df7cacaf79a35cd4da3:
|
||||
title: 'md: implement ->set_read_only to hook into BLKROSET processing'
|
||||
mainline: 118cf084adb3964d06e1667cf7d702e56e5cd2c5
|
||||
upstream: bde70d747f81f7f014b7c63d6a7b2dd6c8356f43
|
||||
fe9ee4210de1a9816e6e99a791894f87a62c2fb3:
|
||||
title: 'md: Don''t clear MD_CLOSING when the raid is about to stop'
|
||||
mainline: 9674f54e41fffaf06f6a60202e1fa4cc13de3cf5
|
||||
upstream: 8eea2ea62b459cebffd20d5d5121becbec838291
|
||||
67f0ca2ac39c5b06d90c7bbb3f4dbd01a96fd1fa:
|
||||
title: 'aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts'
|
||||
mainline: f98364e926626c678fb4b9004b75cacf92ff0662
|
||||
upstream: ad80c34944d7175fa1f5c7a55066020002921a99
|
||||
44b1502cbcf6899a21c9d4ec8c61f5bcfaee0d03:
|
||||
title: 'timekeeping: Fix cross-timestamp interpolation on counter wrap'
|
||||
mainline: 84dccadd3e2a3f1a373826ad71e5ced5e76b0c00
|
||||
upstream: 3c22ef22761ab15b1c32ea5997859c0719fdc14d
|
||||
ed6452adf4a6e0b9641fc065d63ddc6075238c23:
|
||||
title: 'timekeeping: Fix cross-timestamp interpolation corner case decision'
|
||||
mainline: 87a41130881995f82f7adbafbfeddaebfb35f0ef
|
||||
upstream: 86c7cc07eef558e9986a17ac5b6d5f44c8b493bd
|
||||
fabbb78782e6dd484cc0e036e1e0dbbb8c70b8da:
|
||||
title: 'timekeeping: Fix cross-timestamp interpolation for non-x86'
|
||||
mainline: 14274d0bd31b4debf28284604589f596ad2e99f2
|
||||
upstream: 20880812b2f8fad4cf269f83bd5266eed31f0208
|
||||
0e7ba895f0ec865043f09e88cbfc750869e3d81a:
|
||||
title: 'b43: dma: Fix use true/false for bool type variable'
|
||||
mainline: a9160bb35ad9ada8428a4d48426f7fc128db40cc
|
||||
upstream: eb014286140dd5bd4f82417bb186edbbb2f1d3a4
|
||||
c6fa41a3cb1d5f9fff1b455d779df5a47c44f254:
|
||||
title: 'wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled'
|
||||
mainline: 9636951e4468f02c72cc75a82dc65d003077edbc
|
||||
upstream: 1824f942527f784a19e01eac2d9679a21623d010
|
||||
947b5e0d7e03173f242ce6c5871cb82e357529f9:
|
||||
title: 'wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled'
|
||||
mainline: 77135a38f6c2f950d2306ac3d37cbb407e6243f2
|
||||
upstream: 5175e6256f5ad36ceea6ad5aa44f6ce87764e653
|
||||
73a69fcb66db7b037de6c521e49ba54ee21e5e3c:
|
||||
title: 'b43: main: Fix use true/false for bool type'
|
||||
mainline: 6db774c1725059f98e4fce97f878688248584be5
|
||||
upstream: ddd8aa7d4959a42786c3e2c2491c33e91e032f88
|
||||
13876838c450d766f468452a940c14e7f16ce55b:
|
||||
title: 'wifi: b43: Stop correct queue in DMA worker when QoS is disabled'
|
||||
mainline: 581c8967d66c4961076dbbee356834e9c6777184
|
||||
upstream: 0191ff009dce9740494e37a8616b3f0a3b38d884
|
||||
14ee0973eab90a53de93ef3bd02f73ef9cb54622:
|
||||
title: 'wifi: b43: Disable QoS for bcm4331'
|
||||
mainline: 09795bded2e725443fe4a4803cae2079cdaf7b26
|
||||
upstream: 4828567fd9625926c07fe711a096d5374f5f42d5
|
||||
4b8198ce7bd031846776dc60a66402697e2d3f9b:
|
||||
title: 'wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()'
|
||||
mainline: 50180c7f8e3de7c2d87f619131776598fcb1478d
|
||||
upstream: 1e68b5319090ee3f810580c059a202ec8b24bdbe
|
||||
c4d2af79e42344f14a2826b617fbe57e263c8e36:
|
||||
title: 'sock_diag: request _diag module only when the family or proto has been registered'
|
||||
7e6bdf38024904a26cf237968d6f476d3060ea8c:
|
||||
title: 'sock_diag: annotate data-races around sock_diag_handlers[family]'
|
||||
mainline: efd402537673f9951992aea4ef0f5ff51d858f4b
|
||||
upstream: cffd4a7c975848e2bb7c577e5c814a0d2bc9efd4
|
||||
d4a666252ef7cc7e3c6c126564e8f8e3ac751196:
|
||||
title: 'af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().'
|
||||
mainline: 31e03207119a535d0b0e3b3a7f91983aeb2cb14d
|
||||
upstream: 0c41412330b8804ec9829ecb929a21d8cc2e06c5
|
||||
7dbbfcf6db50dd29b7040c06826c2f26b8813b6a:
|
||||
title: 'wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()'
|
||||
mainline: 5f0e4aede01cb01fa633171f0533affd25328c3a
|
||||
upstream: 96481624fb5a6319079fb5059e46dbce43a90186
|
||||
d39f836a2b9e34610d3c1b6800adda8b1b98b6b6:
|
||||
title: 'ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()'
|
||||
mainline: e18afcb7b2a12b635ac10081f943fcf84ddacc51
|
||||
upstream: d351bcadab6caa6d8ce7159ff4b77e2da35c09fa
|
||||
3ecc2213610561a98f56332417ce1cd445addd80:
|
||||
title: 'bus: tegra-aconnect: Update dependency to ARCH_TEGRA'
|
||||
mainline: 4acd21a45c1446277e2abaece97d7fa7c2e692a9
|
||||
upstream: dfd9078eecdac8d45badc029d0a1afb9b887d089
|
||||
cff340eed43a60e8352306c2d0daa936e2609d55:
|
||||
title: 'iommu/amd: Mark interrupt as managed'
|
||||
mainline: 0feda94c868d396fac3b3cb14089d2d989a07c72
|
||||
upstream: 46b9f2480b5bd3793340754eb52aa887fcbeb2f1
|
||||
7f3fb7d44b2c90cb14e6bdc2be5058669186d725:
|
||||
title: 'wifi: brcmsmac: avoid function pointer casts'
|
||||
mainline: e1ea6db35fc3ba5ff063f097385e9f7a88c25356
|
||||
upstream: 523bd0437c687d0b4edf7548b95217993746c64c
|
||||
a8674f8f32d3ce9502633eec64d5f1240d7ab031:
|
||||
title: 'ARM: dts: arm: realview: Fix development chip ROM compatible value'
|
||||
mainline: 3baa4c5143d65ebab2de0d99a395e5f4f1f46608
|
||||
upstream: d6a0ddacb07986dbd08d97b8c8b0928778e318b4
|
||||
ff060748955642dd9eb032bb32bf8d3c8b0c809c:
|
||||
title: 'ACPI: scan: Fix device check notification handling'
|
||||
mainline: 793551c965116d9dfaf0550dacae1396a20efa69
|
||||
upstream: 3dd8bfb5f23fa1605f2a7b62c91258a7d778ccb1
|
||||
f1a4dbde435665ebd50419198f51995a86722489:
|
||||
title: 'x86, relocs: Ignore relocations in .notes section'
|
||||
mainline: aaa8736370db1a78f0e8434344a484f9fd20be3b
|
||||
upstream: 13edb509abc91c72152a11baaf0e7c060a312e03
|
||||
98dd836d4d90f8c75583cdb77e51e43416145bf2:
|
||||
title: 'SUNRPC: fix some memleaks in gssx_dec_option_array'
|
||||
mainline: 3cfcfc102a5e57b021b786a755a38935e357797d
|
||||
upstream: b97c37978ca825557d331c9012e0c1ddc0e42364
|
||||
4cb02a03a5ed3ea326f92cb72cc6d96019ea43f4:
|
||||
title: 'mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function'
|
||||
mainline: ae5004a40a262d329039b99b62bd3fe7645b66ad
|
||||
upstream: f10426db32e7712fcc72154e2fa288f7127094ad
|
||||
7344a5ae74cc4e62b079a877d20b2570e2f235ef:
|
||||
title: 'igb: move PEROUT and EXTTS isr logic to separate functions'
|
||||
mainline: cf99c1dd7b7729091043374b90807c7a5f9fd9b1
|
||||
upstream: d686b4537ead6bdd1a636040c00af51e9e0a1bc5
|
||||
2fe7a8cde6d1b03ecb4fed3f7cf6e5427463cfda:
|
||||
title: 'igb: Fix missing time sync events'
|
||||
mainline: ee14cc9ea19ba9678177e2224a9c58cce5937c73
|
||||
upstream: f346bf4db1ebaad9c8ca5aae6397c7867b8ac4f3
|
||||
e63d5f1f3f5f918a0a94e7d4facccfa6342239cc:
|
||||
title: 'Bluetooth: Remove superfluous call to hci_conn_check_pending()'
|
||||
mainline: 78e3639fc8031275010c3287ac548c0bc8de83b1
|
||||
upstream: 6e960390709966929a29eaec8bca710237a54f24
|
||||
224f6971eb2b4457331804d194017c1524f8157f:
|
||||
title: 'Bluetooth: hci_core: Fix possible buffer overflow'
|
||||
mainline: 81137162bfaa7278785b24c1fd2e9e74f082e8e4
|
||||
upstream: 6d5a9d4a7bcbb7534ce45a18a52e7bd23e69d8ac
|
||||
aca6a0b117cfb0701cc2bea02db1e8c6372b08b0:
|
||||
title: 'sr9800: Add check for usbnet_get_endpoints'
|
||||
mainline: 07161b2416f740a2cb87faa5566873f401440a61
|
||||
upstream: 424eba06ed405d557077339edb19ce0ebe39e7c7
|
||||
5b157b57a27deae00138ebbf9abe793d85b80d12:
|
||||
title: 'bpf: Fix hashtab overflow check on 32-bit arches'
|
||||
mainline: 6787d916c2cf9850c97a0a3f73e08c43e7d973b1
|
||||
upstream: 33ec04cadb77605b71d9298311919303d390c4d5
|
||||
c7eb664d0ae8b3da9621816bfe11ad862c24e342:
|
||||
title: 'bpf: Fix stackmap overflow check on 32-bit arches'
|
||||
mainline: 7a4b21250bf79eef26543d35bd390448646c536b
|
||||
upstream: d0e214acc59145ce25113f617311aa79dda39cb3
|
||||
efa596b077451aef0f8bb760ad3975264a046ee4:
|
||||
title: 'ipv6: fib6_rules: flush route cache when rule is changed'
|
||||
mainline: c4386ab4f6c600f75fdfd21143f89bac3e625d0d
|
||||
upstream: 95db6e62a2d920abf43c169e51046adb9f394ef0
|
||||
9676e9447d12a404638bbee6bd43852440c7c137:
|
||||
title: 'tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function'
|
||||
mainline: 716edc9706deb3bb2ff56e2eeb83559cea8f22db
|
||||
upstream: d909b53ff5b8f005b474b4417ee271f5a4adca94
|
||||
a0e4e51da39f5a7fc9d9e1f5fc14640701887d90:
|
||||
title: 'l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function'
|
||||
mainline: 955e9876ba4ee26eeaab1b13517f5b2c88e73d55
|
||||
upstream: 51a7e05fbca612ae1f09f62dfe21957380b8546d
|
||||
5cfa0a58e61d01c690063af3623d0a53b76951a6:
|
||||
title: 'udp: fix incorrect parameter validation in the udp_lib_getsockopt() function'
|
||||
mainline: 4bb3ba7b74fceec6f558745b25a43c6521cf5506
|
||||
upstream: f21612ee652c08b4a5a0bb11528035f57935fae1
|
||||
59a4e1ed1e12998b6ee449091fe2ae36597b223b:
|
||||
title: 'net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function'
|
||||
mainline: 3ed5f415133f9b7518fbe55ba9ae9a3f5e700929
|
||||
upstream: 867608c0abcbdc86e62925604ac2d3f0c7ca678a
|
||||
fa19944cf14ae594b5b1353f881e80f4d83016b5:
|
||||
title: 'net/x25: fix incorrect parameter validation in the x25_getsockopt() function'
|
||||
mainline: d6eb8de2015f0c24822e47356f839167ebde2945
|
||||
upstream: 7089428a1a4e28efa0c36877d80639a8306fdbf4
|
||||
3d651f489f213a8688c49fdb9c5af4e94aaefe08:
|
||||
title: 'dm raid: fix false positive for requeue needed during reshape'
|
||||
mainline: b25b8f4b8ecef0f48c05f0c3572daeabefe16526
|
||||
upstream: 52a35f5551c6c63f2c50c24117377faa47b2395c
|
||||
d8348562b9ba5d57db7ff9c39b40c326d81fec2d:
|
||||
title: 'dm: call the resume method on internal suspend'
|
||||
mainline: 65e8fbde64520001abf1c8d0e573561b4746ef38
|
||||
upstream: 69836d9329f0b4c58faaf3d886a7748ddb5bf718
|
||||
c5b100db7c774d0770809952834e65c00da6aed8:
|
||||
title: 'drm/tegra: dsi: Add missing check for of_find_device_by_node'
|
||||
mainline: afe6fcb9775882230cd29b529203eabd5d2a638d
|
||||
upstream: 47a13d0b9d8527518639ab5c39667f69d6203e80
|
||||
a1d6e2d545ae60e3c0f14afc655960a12a1836ce:
|
||||
title: 'gpu: host1x: mipi: Update tegra_mipi_request() to be node based'
|
||||
mainline: 767598d447aa46411289c5808b0e45e20a1823b4
|
||||
upstream: aaa5ef6db779a2ffdac6e2c4e27a042fc85af425
|
||||
a7f31893877bed52efc884b8151f7bd211643115:
|
||||
title: 'drm/tegra: dsi: Make use of the helper function dev_err_probe()'
|
||||
mainline: fc75e4fcbd1e4252a0481ebb23cd4516c127a8e2
|
||||
upstream: 4003d399dd34bd9a80fcf78a3feb3140eb82b2b8
|
||||
beef7ea1764bd7497ea4a76932b5b57bb6d1147d:
|
||||
title: 'drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()'
|
||||
mainline: 830c1ded356369cd1303e8bb87ce3fea6e744de8
|
||||
upstream: 0cb8749a621cdd291dc8976bbc245029124d402a
|
||||
8f0f744ebf00a199144bb821d0d1b186de6be782:
|
||||
title: 'drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe()'
|
||||
mainline: 5286a9fc280c45b6b307ee1b07f7a997e042252c
|
||||
upstream: d7e898d13a867014352f0daf98f8a0155c67a3c9
|
||||
9514fc65463c56256c0fbb075a6e414d2c440e9c:
|
||||
title: 'drm/rockchip: inno_hdmi: Fix video timing'
|
||||
mainline: 47a145c03484d33e65d773169d5ca1b9fe2a492e
|
||||
upstream: c031022829a91114cb2bd531c38de99184957b6d
|
||||
36ac37d23799588aa1f243c55a9958bac40ce8be:
|
||||
title: 'drm: Don''t treat 0 as -1 in drm_fixp2int_ceil'
|
||||
mainline: cf8837d7204481026335461629b84ac7f4538fa5
|
||||
upstream: e3271a9f1432472bfd1aec82a5086d6b10e0dfec
|
||||
f37d112202ea81abf2af9a552cd3657f8b042342:
|
||||
title: 'media: tc358743: register v4l2 async device only after successful setup'
|
||||
mainline: 87399f1ff92203d65f1febf5919429f4bb613a02
|
||||
upstream: 17c2650de14842c25c569cbb2126c421489a3a24
|
||||
e2bc2e2b68b321dfd3fb2c66691014a66ee074a6:
|
||||
title: 'media: em28xx: annotate unchecked call to media_device_register()'
|
||||
mainline: fd61d77a3d28444b2635f0c8b5a2ecd6a4d94026
|
||||
upstream: 8b3c5d95bcc85f4333b6968ae7710ee2a1b28f0a
|
||||
fdec9e17f52ea90aa40441a258d62ad3f0d6707d:
|
||||
title: 'media: v4l2-tpg: fix some memleaks in tpg_alloc'
|
||||
mainline: 8cf9c5051076e0eb958f4361d50d8b0c3ee6691c
|
||||
upstream: 0de691ff547d86dd54c24b40a81f9c925df8dd77
|
||||
08af260a5bc1b71c1278dccb64a7866ea0687ef3:
|
||||
title: 'media: dvbdev: remove double-unlock'
|
||||
mainline: 122d0e8dd050cc5dc3fb9e9b5f2dee3c5276ce35
|
||||
upstream: cfa5ffc57e54fb8b864d23b6992cb37d706f6a87
|
||||
88b9134f0e55fe9a7162ee90e5324e2fd91b0ad9:
|
||||
title: 'media: media/dvb: Use kmemdup rather than duplicating its implementation'
|
||||
mainline: f6af820ef1be58c2e4b81aa479b9f109eb6344ce
|
||||
upstream: 6e4129f8163460c79bb99887bc6f791196fcbda2
|
||||
5ace531d9048d5957c275071f8e55d5b3261e03e:
|
||||
title: 'media: dvbdev: Fix memleak in dvb_register_device'
|
||||
mainline: 167faadfcf9339088910e9e85a1b711fcbbef8e9
|
||||
upstream: 085f36c317cba8b8955c5da5f59c7486345d2bbb
|
||||
83a32ee58edae39a2e9bb7d71f36d0317ebf39d2:
|
||||
title: 'media: dvbdev: fix error logic at dvb_register_device()'
|
||||
mainline: 1fec2ecc252301110e4149e6183fa70460d29674
|
||||
upstream: a30cf94eaf5dd3ffd8d13c3a8c303d04357b01c1
|
||||
0ae7184adc0e7116a0bc81eded303fc031db1812:
|
||||
title: 'media: dvbdev: convert DVB device types into an enum'
|
||||
8f649cb42cc0154445a0319a3ec9e0f6f37737b5:
|
||||
title: 'media: dvb-core: Fix use-after-free due to race at dvb_register_device()'
|
||||
mainline: 627bb528b086b4136315c25d6a447a98ea9448d3
|
||||
upstream: dc04ff778b4f8ff4560f1c42993417359e74d36a
|
||||
dec38a328d1cb93913450eab8c0b2b52ca6d96b7:
|
||||
title: 'media: edia: dvbdev: fix a use-after-free'
|
||||
mainline: 8c64f4cdf4e6cc5682c52523713af8c39c94e6d5
|
||||
upstream: d0f5c28333822f9baa5280d813124920720fd856
|
||||
a9c53a71d5103df700ba1022bd793c2e7da2e4b3:
|
||||
title: 'clk: qcom: reset: Allow specifying custom reset delay'
|
||||
mainline: 2cb8a39b6781ea23accd1fa93b3ad000d0948aec
|
||||
upstream: 5f0a066e0ece83eb4c72c6672539bcdbfeb39a4e
|
||||
7091467f8cf4ffb05762766872608822fba862a6:
|
||||
title: 'clk: qcom: reset: support resetting multiple bits'
|
||||
mainline: 4a5210893625f89723ea210d7c630b730abb37ad
|
||||
upstream: 38dd93f87da08876edf8df89a5992ce46da920ea
|
||||
fb58c616f8d5d230746a6e834a13daaf9616432d:
|
||||
title: 'clk: qcom: reset: Commonize the de/assert functions'
|
||||
mainline: eda40d9c583e95e0b6ac69d2950eec10f802e0e8
|
||||
upstream: 823c46950d9a96e94db8f565013f4f2f528c2bbe
|
||||
3acb0bf9b01663735e38d8647655c4c2dc81aa80:
|
||||
title: 'clk: qcom: reset: Ensure write completion on reset de/assertion'
|
||||
mainline: 2f8cf2c3f3e3f7ef61bd19abb4b0bb797ad50aaf
|
||||
upstream: d258d124f435adb3cac491e4b0274e75597f3a02
|
||||
045db5c9471c0d3662193af5123c40c459442c29:
|
||||
title: 'quota: code cleanup for __dquot_alloc_space()'
|
||||
mainline: df15a2a59d0b29d86e17140b83ed231adaded12f
|
||||
upstream: d9e4ab12b60a49204435102f8120c0d3e62583f1
|
||||
34b20f6e467fcd6dcd4352a429263beca0cc46fc:
|
||||
title: 'fs/quota: erase unused but set variable warning'
|
||||
mainline: 78bc3334a69ff289dbc973a9db7c52a2d7757e5b
|
||||
upstream: 1974c13019b97140149690cd622a9c6732c32124
|
||||
92b446b2b7dfe86c8955bf914789754b2d44ec81:
|
||||
title: 'quota: check time limit when back out space/inode change'
|
||||
mainline: 632a9f3acd6687376cbb0b178df6048e19cbacc9
|
||||
upstream: e87ed533e7a6167f4a5e1b0fdbf21784acf115cc
|
||||
ba23e07d50c32bf3e5c651e29fe526f53652b28b:
|
||||
title: 'quota: simplify drop_dquot_ref()'
|
||||
mainline: 7bce48f0fec602b3b6c335963b26d9eefa417788
|
||||
upstream: 248699a705f31211c0d7cc9e0d79cbbabbc9c791
|
||||
b2b5f36baf4785d586642aab144412e5961b7955:
|
||||
title: 'quota: Fix potential NULL pointer dereference'
|
||||
mainline: d0aa72604fbd80c8aabb46eda00535ed35570f1f
|
||||
upstream: 8514899c1a4edf802f03c408db901063aa3f05a1
|
||||
9b7a96f32e377542671c0cc2c43a1ab5cfa84723:
|
||||
title: 'quota: Fix rcu annotations of inode dquot pointers'
|
||||
mainline: 179b8c97ebf63429589f5afeba59a181fe70603e
|
||||
upstream: 06172dff9a47e76dfce9b60d44ef21131b417803
|
||||
d85a1e5fdc93c04aad783ac5134fe266a0a372b7:
|
||||
title: 'perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()'
|
||||
mainline: 1eb3d924e3c0b8c27388b0583a989d757866efb6
|
||||
upstream: f9e92ad5eb0901cacac8f1cc4e5ea12514f7934b
|
||||
38f97031f0e5fad4f2a081d34cd1a1365cca5e05:
|
||||
title: 'drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()'
|
||||
mainline: c4891d979c7668b195a0a75787967ec95a24ecef
|
||||
upstream: 1c35795b90f4dce0605ace7eef9ae1bd1282ebf2
|
||||
9075faa224b8911050442a04a83e7156df94f0b7:
|
||||
title: 'ALSA: seq: fix function cast warnings'
|
||||
mainline: d7bf73809849463f76de42aad62c850305dd6c5d
|
||||
upstream: 9f9254f8927d9f4e4185ec18d8ee648dfcb5ed62
|
||||
0203c9b23b47d5e2f6d817b69d592ccc88d9a1f5:
|
||||
title: 'media: go7007: add check of return value of go7007_read_addr()'
|
||||
mainline: 0b70530ee740861f4776ff724fcc25023df1799a
|
||||
upstream: ff13e3ce6aa4c0dfdbc6438fe3c03118afe3ee8c
|
||||
ef1a77adc95fea554698fbbe7530b7e7da5ef4a6:
|
||||
title: 'media: pvrusb2: fix pvr2_stream_callback casts'
|
||||
mainline: 30baa4a96b23add91a87305baaeba82c4e109e1f
|
||||
upstream: 4e93392ae27eb5f8ad4efd31cf8f1ecd5fdabe15
|
||||
bbb93685c7c6f27816955df2d599ca30a5ff2dbb:
|
||||
title: 'drm/mediatek: dsi: Fix DSI RGB666 formats and definitions'
|
||||
mainline: fae6f815505301b92d9113764f4d76d0bfe45607
|
||||
upstream: a5e660dba9ff73531053664e20dd858d880adbdb
|
||||
8bfb9ffc388bc45abfcbf77b8b2c0715c4a950f6:
|
||||
title: 'PCI: Mark 3ware-9650SE Root Port Extended Tags as broken'
|
||||
mainline: baf67aefbe7d7deafa59ca49612d163f8889934c
|
||||
upstream: 8443ceba0a8e5960e134ef26346266cb2d3a251d
|
||||
2c4e4f364fc917492491e7e801a11aa3d021eaba:
|
||||
title: 'clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()'
|
||||
mainline: 74e39f526d95c0c119ada1874871ee328c59fbee
|
||||
upstream: 907370aacf216e3a662d44e88d204413488444b3
|
||||
964b1a6dfa9591962a88502cbce73e0d5a39f12c:
|
||||
title: 'drm/tegra: put drm_gem_object ref on error in tegra_fb_create'
|
||||
mainline: 32e5a120a5105bce01561978ee55aee8e40ac0dc
|
||||
upstream: d674e78da934afd2ce5935eff08cf5361a9a27ac
|
||||
cc17862516e0adc1504c13f2bcf8e6e660af3912:
|
||||
title: 'mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref'
|
||||
mainline: d2b0680cf3b05490b579e71b0df6e07451977745
|
||||
upstream: 5d16d3dc28a95915c1f7a41f68f2a069ced4b578
|
||||
7fc8137190a1cebb8826d8ed71480d2653801e3f:
|
||||
title: 'crypto: arm - Rename functions to avoid conflict with crypto/sha256.h'
|
||||
mainline: e4dcc1be15268b6d34de3968f906577591521bd5
|
||||
upstream: bdb1db7115d9b2a9d10c101dfc67386485fad00d
|
||||
0147d403e14fcf04d14e54c8db8c92e0b9e895c1:
|
||||
title: 'crypto: arm/sha - fix function cast warnings'
|
||||
mainline: 53cc9baeb9bc2a187eb9c9790d30995148852b12
|
||||
upstream: 8d27d1b155c26bae2bd76b0c3e78cc4f1f1e21c5
|
||||
1b84c12ebaccfd96af1d200d69bad289842962a9:
|
||||
title: 'mtd: rawnand: lpc32xx_mlc: fix irq handler prototype'
|
||||
mainline: 347b828882e6334690e7003ce5e2fe5f233dc508
|
||||
upstream: 9fc05d7953b0d71372b632e1d62abf78c6ac9d64
|
||||
d7fb1c3d480ad75315a420879665772dd588cd44:
|
||||
title: 'drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()'
|
||||
mainline: 7cf1ad2fe10634238b38442a851d89514cb14ea2
|
||||
upstream: 5a2b18dbec88b972d570994483f188cb59586609
|
||||
6251ccc9fe18868635199a6e3dcd17ac5732060a:
|
||||
title: 'media: pvrusb2: fix uaf in pvr2_context_set_notify'
|
||||
mainline: 0a0b79ea55de8514e1750884e5fec77f9fdd01ee
|
||||
upstream: ed8000e1e8e9684ab6c30cf2b526c0cea039929c
|
||||
810b8a9fe3e1bc6bc357b08882289aab5be3909e:
|
||||
title: 'media: dvb-frontends: avoid stack overflow warnings with clang'
|
||||
mainline: 7a4cf27d1f0538f779bf31b8c99eda394e277119
|
||||
upstream: c073c8cede5abd3836e83d70d72606d11d0759d4
|
||||
d692197c4290038026cd849e964cbc0963b8baf7:
|
||||
title: 'media: go7007: fix a memleak in go7007_load_encoder'
|
||||
mainline: b9b683844b01d171a72b9c0419a2d760d946ee12
|
||||
upstream: 7f11dd3d165b178e738fe73dfeea513e383bedb5
|
||||
f754e826a42f26ce110d8c22ac3efcd5b8f714a8:
|
||||
title: 'drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip'
|
||||
mainline: c958e86e9cc1b48cac004a6e245154dfba8e163b
|
||||
upstream: accdac6b71d5a2b84040c3d2234f53a60edc398e
|
||||
1785997d8b483b47a511d6d61e2e8cc20095ec5d:
|
||||
title: 'powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks'
|
||||
mainline: ad86d7ee43b22aa2ed60fb982ae94b285c1be671
|
||||
upstream: 0a1754ba8d537e054b01f0c2dc6b653a5a1b685d
|
||||
138ea96e89f7b2bccb7b3fee18b0a4430e6b2f5c:
|
||||
title: 'powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.'
|
||||
mainline: 20933531be0577cdd782216858c26150dbc7936f
|
||||
upstream: 131dffef3a81e9c6f4a9e278ffd66f3eb5ae8c3e
|
||||
e50c0ec386b601a2161ecf3ce4d8bb64dc0226bd:
|
||||
title: 'backlight: lm3630a: Initialize backlight_properties on init'
|
||||
mainline: ad9aeb0e3aa90ebdad5fabf9c21783740eb95907
|
||||
upstream: 063b294747b47f7bdaad3953542e73552bf7fe65
|
||||
d0ca047e07a3357a1cfa5de925311b5496e1b233:
|
||||
title: 'backlight: lm3630a: Don''t set bl->props.brightness in get_brightness'
|
||||
mainline: 4bf7ddd2d2f0f8826f25f74c7eba4e2c323a1446
|
||||
upstream: 85360e411bd2239ef184178352fab6582a0fcb85
|
||||
80b386048fb42668966e1afc0ae2c4d6e6dfd1fa:
|
||||
title: 'backlight: da9052: Fully initialize backlight_properties during probe'
|
||||
mainline: 0285e9efaee8276305db5c52a59baf84e9731556
|
||||
upstream: ba9f50fa0edd4d45bc9840ba05efa9b526a30b53
|
||||
2f286fb34ca716ba08e7f4cb0f020ce20cb9d219:
|
||||
title: 'backlight: lm3639: Fully initialize backlight_properties during probe'
|
||||
mainline: abb5a5d951fbea3feb5c4ba179b89bb96a1d3462
|
||||
upstream: 9d0aaf425cc5aec627ee7cae0990e6c5b7d2adb9
|
||||
3f2fe45a95a3f6a3cd5f7c17d8c53a41b1800d75:
|
||||
title: 'backlight: lp8788: Fully initialize backlight_properties during probe'
|
||||
mainline: 392346827fbe8a7fd573dfb145170d7949f639a6
|
||||
upstream: 3301f60ab7ebc14ec7242f1ad62dc151e11cd308
|
||||
1455216df91812ea6d3e0fcf0ce4be142ba39cbc:
|
||||
title: 'sparc32: Fix section mismatch in leon_pci_grpci'
|
||||
mainline: 24338a6ae13cb743ced77da1b3a12c83f08a0c96
|
||||
upstream: 6bf3c3508c839c4457058686fbd59d9c55e5e598
|
||||
684d0dfc0167a62bb2fc9c3c2d97e421a6f8f1d7:
|
||||
title: 'ALSA: usb-audio: Stop parsing channels bits when all channels are found.'
|
||||
mainline: a39d51ff1f52cd0b6fe7d379ac93bd8b4237d1b7
|
||||
upstream: 7e2c1b0f6dd9abde9e60f0f9730026714468770f
|
||||
ee504736ec7911bfb90382f7f3222faa7982dc0f:
|
||||
title: 'scsi: csiostor: Avoid function pointer casts'
|
||||
mainline: 9f3dbcb5632d6876226031d552ef6163bb3ad215
|
||||
upstream: 77d9c6364756ec8986b8d7f801bcb2295cfa036a
|
||||
826d2a5f4af824bc5457e9ca919e6d0e0da677c5:
|
||||
title: 'scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn'
|
||||
mainline: b69600231f751304db914c63b937f7098ed2895c
|
||||
upstream: 8413fc5ef952b5ddd606a42b2be1e15694e2f526
|
||||
dd5627de25e1b9b306a735e52a9be0189c50681e:
|
||||
title: 'net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()'
|
||||
mainline: d6f4de70f73a106986ee315d7d512539f2f3303a
|
||||
upstream: 867a6a6899a68323d6ef8995ea3765611d67ba1e
|
||||
43e88e13e5e89dabaa722dcbe424df93ff3fa50b:
|
||||
title: 'NFS: Fix an off by one in root_nfs_cat()'
|
||||
mainline: 698ad1a538da0b6bf969cfee630b4e3a026afb87
|
||||
upstream: 9bb320c5cea50e7fa82a477743a6a0546eaa37b3
|
||||
ac71f4414591935d0d42f189b92234f8475c8e26:
|
||||
title: 'clk: qcom: gdsc: Add support to update GDSC transition delay'
|
||||
mainline: 4e7c4d3652f96f41179aab3ff53025c7a550d689
|
||||
upstream: 13c921e83ef2f8c2d7f6d79272e7760de605ca3c
|
||||
5f8e15a6c9782fe17177f6adbed2605e2626ec1a:
|
||||
title: 'serial: max310x: fix syntax error in IRQ error message'
|
||||
mainline: 8ede8c6f474255b2213cccd7997b993272a8e2f9
|
||||
upstream: e75ae3225cd1e1648c5140abf21d8c76b4b5e10a
|
||||
2ba503c76ed0e3fb44574c56c207662044701968:
|
||||
title: 'tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT'
|
||||
mainline: 314c2b399288f0058a8c5b6683292cbde5f1531b
|
||||
upstream: 6e839e4153c9881d79f94263fa352db35aa82b20
|
||||
5fa039f25b048a293240318f643539862f51a239:
|
||||
title: 'rtc: mediatek: enhance the description for MediaTek PMIC based RTC'
|
||||
251fdf12a591f6f0393c9a074493372ee677d5ef:
|
||||
title: 'rtc: mt6397: select IRQ_DOMAIN instead of depending on it'
|
||||
mainline: 544c42f798e1651dcb04fb0395219bf0f1c2607e
|
||||
upstream: 575fe3cc7fe2f80e9f45e1d36a4526ea43fbf280
|
||||
05809dc60c6107cc2d59fc9e5c6ab7880415cce8:
|
||||
title: 'serial: 8250_exar: Don''t remove GPIO device on suspend'
|
||||
mainline: 73b5a5c00be39e23b194bad10e1ea8bb73eee176
|
||||
upstream: 787e2620d1574196f10193a7c3693d95958254cb
|
||||
5bc6fb9dd8654ad945d2ab614de42276880ed458:
|
||||
title: 'staging: greybus: fix get_channel_from_mode() failure path'
|
||||
mainline: 34164202a5827f60a203ca9acaf2d9f7d432aac8
|
||||
upstream: 40bbb7e4e83a53b5ae2c4b79c675618159571d83
|
||||
f950312d06f35a0dcf0d89eedd046d78ecaacb57:
|
||||
title: 'usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin'
|
||||
mainline: 600556809f04eb3bbccd05218215dcd7b285a9a9
|
||||
upstream: 4371549533b124e1693a7771303e44ed827af2e0
|
||||
c412392d4e52ac3f871a4b94dcd97886f61f1c68:
|
||||
title: 'net: hsr: fix placement of logical operator in a multi-line statement'
|
||||
mainline: 059477830022e1886f55a9641702461c249fa864
|
||||
upstream: 9706929ab421a6f68ed72fc0e6371e4fca8e698a
|
||||
f185d5434353871c54ffa351ed5647bc974a29f9:
|
||||
title: 'hsr: Fix uninit-value access in hsr_get_node()'
|
||||
mainline: ddbec99f58571301679addbc022256970ca3eac6
|
||||
upstream: e3b2bfb8ff1810a537b2aa55ba906a6743ed120c
|
||||
e2ef56dd89fdb684f70940c3a13aeacaa5551b2f:
|
||||
title: 'rds: introduce acquire/release ordering in acquire/release_in_xmit()'
|
||||
mainline: 1422f28826d2a0c11e5240b3e951c9e214d8656e
|
||||
upstream: bec6c4ce1169a565c58c347d5d0ac22e46d507d6
|
||||
b3f50f65706d8c16fc23b4c2d67622da15dbf2f2:
|
||||
title: 'hsr: Handle failures in module init'
|
||||
mainline: 3cf28cd492308e5f63ed00b29ea03ca016264376
|
||||
upstream: 9a4e0ec0624c5b3e07fb042b307b98c3543de2f4
|
||||
ac6c533f13a4ec9071d6548a8be5467ab238c6aa:
|
||||
title: 'net/bnx2x: Prevent access to a freed page in page_pool'
|
||||
mainline: d27e2da94a42655861ca4baea30c8cd65546f25d
|
||||
upstream: 7bcc090c81116c66936a7415f2c6b1483a4bcfd9
|
||||
d49e4f3714a9208ee47e19da264ef74eab869b2e:
|
||||
title: 'spi: spi-mt65xx: Fix NULL pointer access in interrupt handler'
|
||||
mainline: a20ad45008a7c82f1184dc6dee280096009ece55
|
||||
upstream: 2342b05ec5342a519e00524a507f7a6ea6791a38
|
||||
2939b898498d9da54f5ea4c0b3d698a7644843fa:
|
||||
title: 'crypto: af_alg - Fix regression on empty requests'
|
||||
mainline: 662bb52f50bca16a74fe92b487a14d7dccb85e1a
|
||||
upstream: 546e3961b5d4c6db82cfb441fabb4353940c8f95
|
||||
3f81c30ae458bf0f8cc2f421f3254ffa59dd95df:
|
||||
title: 'crypto: af_alg - Work around empty control messages without MSG_MORE'
|
||||
mainline: c195d66a8a75c60515819b101975f38b7ec6577f
|
||||
upstream: ba1f292491c011fa11d80b152f15ef97e4519891
|
||||
152
.elts/upstream/4.19.310.yaml
Normal file
152
.elts/upstream/4.19.310.yaml
Normal file
@@ -0,0 +1,152 @@
|
||||
7585522bf089bfebb7bbd22fddb5495f16f250c9:
|
||||
title: 'net: usb: lan78xx: Remove lots of set but unused ''ret'' variables'
|
||||
mainline: 06cd7c46b3ab3f2252c61bf85b191236cf0254e1
|
||||
backport: e2ad089a70e591cf7c886be6f559a0e8503674fc
|
||||
09a8c3e4e79157bd3358bc9f0fab1517ae8ad884:
|
||||
title: 'lan78xx: Fix white space and style issues'
|
||||
mainline: 9ceec7d33adf9647293f24d2fd9a055b89c63864
|
||||
backport: f6cbd3c0c4516263a546a791a9eb985ca5ee04a6
|
||||
20ccd52bd3b5e1323e58a1049d7d5285650c6c64:
|
||||
title: 'lan78xx: Add missing return code checks'
|
||||
mainline: 3415f6baaddb9b39d7112247ab39ef3c700f882e
|
||||
backport: b70394861f10fc4bb0a53bb4fe54b79f497fdf79
|
||||
242c4cd0d906f6f8708c0214b0c926b109f63168:
|
||||
title: 'lan78xx: Fix partial packet errors on suspend/resume'
|
||||
mainline: e1210fe63bf8b080edd0805240e90b81b6b069c1
|
||||
backport: c2688f303badea10dd8526d734db642898128e7e
|
||||
513cfa1886cd2a06658410b788236522c2a69583:
|
||||
title: 'lan78xx: Fix race conditions in suspend/resume handling'
|
||||
mainline: 5f4cc6e25148cc141f97afb41b4dfe9eb1cce613
|
||||
backport: cb2fabebb54f6cc12e8d180c40d9ac59076bb666
|
||||
575689f40b415299864bf1826d03e71d3d807c73:
|
||||
title: 'net: lan78xx: fix runtime PM count underflow on link stop'
|
||||
mainline: 1eecc7ab82c42133b748e1895275942a054a7f67
|
||||
backport: 30336393906643b4fece662c7c2f1871766222fd
|
||||
6463ace2a35d22642c90147ebced20ef6145eac6:
|
||||
title: 'net: move definition of pcpu_lstats to header file'
|
||||
mainline: 52bb6677d530d37055092d86b4eab69dce6c166a
|
||||
backport: de6f8690a982faf789a071b7683e3b26274faf4e
|
||||
e431c3227864b5646601c97f5f898d99472f2914:
|
||||
title: 'geneve: make sure to pull inner header in geneve_rx()'
|
||||
mainline: 1ca1ba465e55b9460e4e75dec9fff31e708fec74
|
||||
backport: 3b1e13eb6c7bcbc71e0766dc21ccb55f8d15ab50
|
||||
31ea5bcc7d4cd1423de6be327a2c034725704136:
|
||||
title: 'net/ipv6: avoid possible UAF in ip6_route_mpath_notify()'
|
||||
mainline: 685f7d531264599b3f167f1e94bbd22f120e5fab
|
||||
skipped: commit 93531c6743157d7e8c5792f8ed1a5 is not present; backport is too risky
|
||||
786854141057751bc08eb26f1b02e97c1631c8f4:
|
||||
title: 'net/rds: fix WARNING in rds_conn_connect_if_down'
|
||||
mainline: c055fc00c07be1f0df7375ab0036cebd1106ed38
|
||||
skipped: backport is too risky
|
||||
98db42191329c679f4ca52bec0b319689e1ad8cb:
|
||||
title: 'netfilter: nf_conntrack_h323: Add protection for bmp length out of range'
|
||||
mainline: 767146637efc528b5e3d31297df115e85a2fd362
|
||||
backport: 1c31b4059c9416af2dfb42f087f64edd607eb35f
|
||||
7644df766006d4878a556e427e3ecc78c2d5606b:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_default_path_quality'
|
||||
mainline: 958d6145a6d9ba9e075c921aead8753fb91c9101
|
||||
backport: 7bab6671e4d56af53eaa19b4e61d349ce3b1cee7
|
||||
e3a3718b1723253d4f068e88e81d880d71f1a1e9:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_obsolescence_count_initialiser'
|
||||
mainline: cfd9f4a740f772298308b2e6070d2c744fb5cf79
|
||||
backport: 5993b06357724c9656435dcd39ef3f731bb68719
|
||||
acc653e8a3aaab1b7103f98645f2cce7be89e3d3:
|
||||
title: 'netrom: Fix data-races around sysctl_netrom_network_ttl_initialiser'
|
||||
mainline: 119cae5ea3f9e35cdada8e572cc067f072fa825a
|
||||
backport: 3babe0b373c89f4557d880edfaee1269e0565619
|
||||
500936692ccca8617a955652d1929f079b17a201:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_timeout'
|
||||
mainline: 60a7a152abd494ed4f69098cf0f322e6bb140612
|
||||
backport: 75af2f874a607d406075ebee8872267e7610cc9c
|
||||
84b8486e9cedc93875f251ba31abcf73bd586a3a:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_maximum_tries'
|
||||
mainline: e799299aafed417cc1f32adccb2a0e5268b3f6d5
|
||||
backport: 6e9e490c1c0f727effa44d696b29b363b9ddf216
|
||||
6133a71c75dacea12fcc85838b4455c2055b0f14:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_acknowledge_delay'
|
||||
mainline: 806f462ba9029d41aadf8ec93f2f99c5305deada
|
||||
backport: 9da1d2a1e6687d4009eff99367df4bf7dee17f6c
|
||||
7782e5e7047cae6b9255ee727c99fc73d77cf773:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_busy_delay'
|
||||
mainline: 43547d8699439a67b78d6bb39015113f7aa360fd
|
||||
backport: 943942802104ff9dcb435d85456b08967878b40d
|
||||
4f2efa17c3ec5e4be0567b47439b9713c0dc6550:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_requested_window_size'
|
||||
mainline: a2e706841488f474c06e9b33f71afc947fb3bf56
|
||||
backport: 3f661371119e40c7307cff48dfaa28ba19ec6a20
|
||||
73426c32e259c767d40613b956d5b80d0c28a9a9:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_transport_no_activity_timeout'
|
||||
mainline: f99b494b40431f0ca416859f2345746199398e2b
|
||||
backport: 0a8e233837a214086305549c6cc3c10505960a18
|
||||
c13fbb5902bce848759385986d4833f5b90782c1:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_routing_control'
|
||||
mainline: b5dffcb8f71bdd02a4e5799985b51b12f4eeaf76
|
||||
backport: 4851e4321fdf86f860623d8541f46916cbd9b8e7
|
||||
97a4d8b9f67cc7efe9a0c137e12f6d9e40795bf1:
|
||||
title: 'netrom: Fix a data-race around sysctl_netrom_link_fails_count'
|
||||
mainline: bc76645ebdd01be9b9994dac39685a3d0f6f7985
|
||||
backport: 3c574b4ac9511dee909385868739d64de9abf892
|
||||
d623fd5298d95b65d27ef5a618ebf39541074856:
|
||||
title: 'netrom: Fix data-races around sysctl_net_busy_read'
|
||||
mainline: d380ce70058a4ccddc3e5f5c2063165dc07672c6
|
||||
backport: daa941d9ed63191c6d3e13d640ecd55a07d449a3
|
||||
40011850de6d613e982c84c854018aeca2c6bb19:
|
||||
title: 'btrfs: ref-verify: free ref cache before clearing mount opt'
|
||||
mainline: f03e274a8b29d1d1c1bbd7f764766cb5ca537ab7
|
||||
skipped: fixes patch not in branch
|
||||
becbfcabedfe3ceb9bd6184c172fad00c0a8feb0:
|
||||
title: 'tools/selftest/vm: allow choosing mem size and page size in map_hugetlb'
|
||||
mainline: fa7b9a805c797b729022029aaa3a2b7c35fff4c6
|
||||
backport: 0e37e77f60fe5fe48b7010deb499d284c92003c6
|
||||
abdbd5f3e8c504d864fdc032dd5a4eb481cb12bf:
|
||||
title: 'selftests: mm: fix map_hugetlb failure on 64K page size systems'
|
||||
mainline: 91b80cc5b39f00399e8e2d17527cad2c7fa535e2
|
||||
backport: b37d2d9d10c65fabe5b9b53ec84d9388202f4bf2
|
||||
90091bdf5df0195de0d2d8e3e4d43aaaee122d34:
|
||||
title: 'um: allow not setting extra rpaths in the linux binary'
|
||||
mainline: 386093c68ba3e8bcfe7f46deba901e0e80713c29
|
||||
backport: fb847632d0d888521c17c0f1109ca827316281a4
|
||||
39807e3985ffa2714e46362fdded274a2d768578:
|
||||
title: 'Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU'
|
||||
mainline: a60e6c3918d20848906ffcdfcf72ca6a8cfbcf2e
|
||||
skipped: commit 32863a2d5db62c4fa401ced61388d680421002d6 is not present (unsupported hardware)
|
||||
61acc4c4a3c33905b124dc4af206df92c1426500:
|
||||
title: 'hv_netvsc: Make netvsc/VF binding check both MAC and serial number'
|
||||
mainline: 64ff412ad41fe3a5bf759ff4844dc1382176485c
|
||||
skipped: commit 00d7ddba1143623b31bc2c15d18216e2da031b14 is not present
|
||||
a2577793ff166cc18fe4192a8b1bca2d37253e6a:
|
||||
title: 'hv_netvsc: use netif_is_bond_master() instead of open code'
|
||||
mainline: c60882a4566a0a62dc3a40c85131103aad83dcb3
|
||||
backport: 8ddca3d65f8a45b7a4e8d844441b30f990e0b015
|
||||
bcb7164258d0a9a8aa2e73ddccc2d78f67d2519d:
|
||||
title: 'hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed'
|
||||
mainline: 9cae43da9867412f8bd09aee5c8a8dc5e8dc3dc2
|
||||
skipped: fixes patch not in branch
|
||||
d5e38d6b84d6d21a4f8a4f555a0908b6d9ffe224:
|
||||
title: 'y2038: rusage: use __kernel_old_timeval'
|
||||
mainline: bdd565f817a74b9e30edec108f7cb1dbc762b8a6
|
||||
skipped: 4.14 does not have struct __kernel_old_timeval and backporting would be too risky
|
||||
e904c9a4834888cb2b37607d9571f49964f4603f:
|
||||
title: 'getrusage: add the "signal_struct *sig" local variable'
|
||||
mainline: c7ac8231ace9b07306d0299969e42073b189c70a
|
||||
backport: f2348ee837cee8604c0502b6ef9d806ce1cc13ec
|
||||
33ec341e3e9588962ff3cf49f642da140d3ecfc0:
|
||||
title: 'getrusage: move thread_group_cputime_adjusted() outside of lock_task_sighand()'
|
||||
mainline: daa694e4137571b4ebec330f9a9b4d54aa8b8089
|
||||
backport: c048d8254a03786c76d3e0f7b687c98f951c7957
|
||||
e24772adaaf4b81ac0855cceb17080352526f765:
|
||||
title: 'getrusage: use __for_each_thread()'
|
||||
mainline: 13b7bc60b5353371460a203df6c38ccd38ad7a3a
|
||||
backport: 82f1e0dc48d7753fa960bfc2cec672a0aaf69e01
|
||||
c96f49d3a741f6693feecdb067c442b609903d03:
|
||||
title: 'getrusage: use sig->stats_lock rather than lock_task_sighand()'
|
||||
mainline: f7ec1cd5cc7ef3ad964b677ba82b8b77f1c93009
|
||||
backport: 8d11949c478109b80f65d7b3da4927407e61c10a
|
||||
71317d703c550c819b5465c3a49ce98650089865:
|
||||
title: 'selftests/vm: fix display of page size in map_hugetlb'
|
||||
mainline: 1ec882fc81e3177faf055877310dbdb0c68eb7db
|
||||
backport: fee13d620a067a56d35582ad3bae29e9fd6dd1f8
|
||||
af289249ec5c79200c4ec4ec7f4902378956c4d7:
|
||||
title: 'selftests/vm: fix map_hugetlb length used for testing read and write'
|
||||
mainline: cabc30da10e677c67ab9a136b1478175734715c5
|
||||
backport: f19d6a15935beb1be8aee2845912d846e5649981
|
||||
576
.elts/upstream/4.19.311.yaml
Normal file
576
.elts/upstream/4.19.311.yaml
Normal file
@@ -0,0 +1,576 @@
|
||||
53b523420981228674aabbc3d27d3461db19f499:
|
||||
title: 'ASoC: rt5645: Make LattePanda board DMI match more precise'
|
||||
mainline: 551539a8606e28cb2a130f8ef3e9834235b456c4
|
||||
skipped: too many upstream changes; not worth the risk
|
||||
70a33a629090130d731fc1e1ad498bb672eea165:
|
||||
title: 'x86/xen: Add some null pointer checking to smp.c'
|
||||
mainline: 3693bb4465e6e32a204a5b86d3ec7e6b9f7e67c2
|
||||
backport: f2645f10d789c047bcaf11a573ed337bad4f0707
|
||||
b0b3373993a5b445eeb410d7c74a87710aad9d6e:
|
||||
title: 'MIPS: Clear Cause.BD in instruction_pointer_set'
|
||||
mainline: 9d6e21ddf20293b3880ae55b9d14de91c5891c59
|
||||
backport: 96405638c5c2567f6c27cfd84ada8a5a5311b231
|
||||
13f5b64a584b5554f81e7e493dcbafaddd06557d:
|
||||
title: 'net/iucv: fix the allocation size of iucv_path_table array'
|
||||
mainline: b4ea9b6a18ebf7f9f3a7a60f82e925186978cfcf
|
||||
backport: 3ded98fc3b9716997438f60daf0452b7c3e6d360
|
||||
72da7347f460b2ecc5e934bcbef312e0fa5ebf2b:
|
||||
title: 'block: sed-opal: handle empty atoms when parsing response'
|
||||
mainline: 5429c8de56f6b2bd8f537df3a1e04e67b9c04282
|
||||
backport: e9f9eb0c2d8c5c96fc354cf8ede84f4ba6f38d19
|
||||
8338d971f919256b312f28a9a320f552a499dc8e:
|
||||
title: 'dm-verity, dm-crypt: align "struct bvec_iter" correctly'
|
||||
mainline: 787f1b2800464aa277236a66eb3c279535edd460
|
||||
backport: e6d8df74f2692f4e83306e293a8c503112d32aa8
|
||||
6cc96148d26afbf1e3b8167ee68dc9eec387804d:
|
||||
title: 'scsi: mpt3sas: Prevent sending diag_reset when the controller is ready'
|
||||
mainline: ee0017c3ed8a8abfa4d40e42f908fb38c31e7515
|
||||
backport: 70928e45cbbe230a8fde12a6bb7bbbfb77139e7f
|
||||
369f419c097e82407dd429a202cde9a73d3ae29b:
|
||||
title: 'Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security'
|
||||
mainline: 2535b848fa0f42ddff3e5255cf5e742c9b77bb26
|
||||
backport: b79150eddce93e7bf87f005c9c996abd90d4655e
|
||||
b89198d02d0149f22149675766c47883de923106:
|
||||
title: 'firewire: core: use long bus reset on gap count error'
|
||||
mainline: d0b06dc48fb15902d7da09c5c0861e7f042a9381
|
||||
backport: 51ec1ed43d0b4ab1228eb55189fa939ad579c4c2
|
||||
2d400317217470b2dc28bb776efeb9c3d53e0340:
|
||||
title: 'ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet'
|
||||
mainline: f8b0127aca8c60826e7354e504a12d4a46b1c3bb
|
||||
skipped: causes build failure; not security issue
|
||||
a215f042a7f57346fd5430e84f81f822e84975b5:
|
||||
title: 'Input: gpio_keys_polled - suppress deferred probe error for gpio'
|
||||
mainline: 963465a33141d0d52338e77f80fe543d2c9dc053
|
||||
backport: 243004088d2707ad353b4ee4dd6b96f76daca68d
|
||||
c2a85fd64160fcf4185669d4db299fbb2df76986:
|
||||
title: 'ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC'
|
||||
mainline: 03c7874106ca5032a312626b927b1c35f07b1f35
|
||||
backport: 6895f6831861ceceb98e7b6604ec9050a37c8173
|
||||
2f87e22ea1b42b89435bf98a768eb8227797d819:
|
||||
title: 'ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode'
|
||||
mainline: 6fa849e4d78b880e878138bf238e4fd2bac3c4fa
|
||||
backport: 2a2f4e8dfe12971fd6b78ec6e05179151bea4a88
|
||||
d619f175ff50582c05858cb96d05391f77c7c7aa:
|
||||
title: 'ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll'
|
||||
mainline: 96e202f8c52ac49452f83317cf3b34cd1ad81e18
|
||||
backport: cacf64e0af45cb788a70941441fc6423149b1d9f
|
||||
17a1144baa54edb9c97014ad441a03b93e50ab75:
|
||||
title: 'crypto: algif_aead - fix uninitialized ctx->init'
|
||||
mainline: 21dfbcd1f5cbff9cf2f9e7e43475aed8d072b0dd
|
||||
skipped: fixes patch not in branch
|
||||
0ca02d4beebb7b47ea0cbdceac891465cbb966c6:
|
||||
title: 'crypto: af_alg - make some functions static'
|
||||
mainline: 466e0759269d31485074126700574230bfff3b1c
|
||||
backport: ed2edd721e156046bb4dc4587f06af360f875581
|
||||
de564b59755dfb080ef237dd4fbd02cb0c3e58a1:
|
||||
title: 'crypto: algif_aead - Only wake up when ctx->more is zero'
|
||||
mainline: f3c802a1f30013f8f723b62d7fa49eb9e991da23
|
||||
backport: f63a7bf2dcf7e05021785b64b184795f6b6a6ccd
|
||||
4bac28f441e3cc9d3f1a84c8d023228a68d8a7c1:
|
||||
title: 'do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak'
|
||||
mainline: 3948abaa4e2be938ccdfc289385a27342fb13d43
|
||||
backport: ce3317e4a96642984d3e7fbaf33a086176052bf8
|
||||
b86af4d77a5a2487020794845c1a2e948699630c:
|
||||
title: 'fs/select: rework stack allocation hack for clang'
|
||||
mainline: ddb9fd7a544088ed70eccbb9f85e9cc9952131c1
|
||||
backport: 70137872f87a2e47239cf7ea0d9b295f173f6c27
|
||||
dc51c01a3d5a796e18520a186f56e13f8e70749f:
|
||||
title: 'md: switch to ->check_events for media change notifications'
|
||||
mainline: a564e23f0f99759f453dbefcb9160dec6d99df96
|
||||
backport: 644ef6ff144cf72b7c0170ade4a8a449f01d9e63
|
||||
f28658bc8a7faa03578dc2588b5b3b56b09575a6:
|
||||
title: 'block: add a new set_read_only method'
|
||||
mainline: e00adcadf3af7a8335026d71ab9f0e0a922191ac
|
||||
backport: 5621bcf7c79c834e98f01dfea929a7bbf7d600ab
|
||||
bde70d747f81f7f014b7c63d6a7b2dd6c8356f43:
|
||||
title: 'md: implement ->set_read_only to hook into BLKROSET processing'
|
||||
mainline: 118cf084adb3964d06e1667cf7d702e56e5cd2c5
|
||||
backport: 1d018bd5617e06f3c7bd6df7cacaf79a35cd4da3
|
||||
8eea2ea62b459cebffd20d5d5121becbec838291:
|
||||
title: 'md: Don''t clear MD_CLOSING when the raid is about to stop'
|
||||
mainline: 9674f54e41fffaf06f6a60202e1fa4cc13de3cf5
|
||||
backport: fe9ee4210de1a9816e6e99a791894f87a62c2fb3
|
||||
ad80c34944d7175fa1f5c7a55066020002921a99:
|
||||
title: 'aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts'
|
||||
mainline: f98364e926626c678fb4b9004b75cacf92ff0662
|
||||
backport: 67f0ca2ac39c5b06d90c7bbb3f4dbd01a96fd1fa
|
||||
3c22ef22761ab15b1c32ea5997859c0719fdc14d:
|
||||
title: 'timekeeping: Fix cross-timestamp interpolation on counter wrap'
|
||||
mainline: 84dccadd3e2a3f1a373826ad71e5ced5e76b0c00
|
||||
backport: 44b1502cbcf6899a21c9d4ec8c61f5bcfaee0d03
|
||||
86c7cc07eef558e9986a17ac5b6d5f44c8b493bd:
|
||||
title: 'timekeeping: Fix cross-timestamp interpolation corner case decision'
|
||||
mainline: 87a41130881995f82f7adbafbfeddaebfb35f0ef
|
||||
backport: ed6452adf4a6e0b9641fc065d63ddc6075238c23
|
||||
20880812b2f8fad4cf269f83bd5266eed31f0208:
|
||||
title: 'timekeeping: Fix cross-timestamp interpolation for non-x86'
|
||||
mainline: 14274d0bd31b4debf28284604589f596ad2e99f2
|
||||
backport: fabbb78782e6dd484cc0e036e1e0dbbb8c70b8da
|
||||
0cd3b0a1dc987697cba1fe93c784365aa1f8a230:
|
||||
title: 'wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()'
|
||||
mainline: ad25ee36f00172f7d53242dc77c69fff7ced0755
|
||||
skipped: fixes patch not in branch
|
||||
eb014286140dd5bd4f82417bb186edbbb2f1d3a4:
|
||||
title: 'b43: dma: Fix use true/false for bool type variable'
|
||||
mainline: a9160bb35ad9ada8428a4d48426f7fc128db40cc
|
||||
backport: 0e7ba895f0ec865043f09e88cbfc750869e3d81a
|
||||
1824f942527f784a19e01eac2d9679a21623d010:
|
||||
title: 'wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled'
|
||||
mainline: 9636951e4468f02c72cc75a82dc65d003077edbc
|
||||
backport: c6fa41a3cb1d5f9fff1b455d779df5a47c44f254
|
||||
5175e6256f5ad36ceea6ad5aa44f6ce87764e653:
|
||||
title: 'wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled'
|
||||
mainline: 77135a38f6c2f950d2306ac3d37cbb407e6243f2
|
||||
backport: 947b5e0d7e03173f242ce6c5871cb82e357529f9
|
||||
ddd8aa7d4959a42786c3e2c2491c33e91e032f88:
|
||||
title: 'b43: main: Fix use true/false for bool type'
|
||||
mainline: 6db774c1725059f98e4fce97f878688248584be5
|
||||
backport: 73a69fcb66db7b037de6c521e49ba54ee21e5e3c
|
||||
0191ff009dce9740494e37a8616b3f0a3b38d884:
|
||||
title: 'wifi: b43: Stop correct queue in DMA worker when QoS is disabled'
|
||||
mainline: 581c8967d66c4961076dbbee356834e9c6777184
|
||||
backport: 13876838c450d766f468452a940c14e7f16ce55b
|
||||
4828567fd9625926c07fe711a096d5374f5f42d5:
|
||||
title: 'wifi: b43: Disable QoS for bcm4331'
|
||||
mainline: 09795bded2e725443fe4a4803cae2079cdaf7b26
|
||||
backport: 14ee0973eab90a53de93ef3bd02f73ef9cb54622
|
||||
1e68b5319090ee3f810580c059a202ec8b24bdbe:
|
||||
title: 'wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()'
|
||||
mainline: 50180c7f8e3de7c2d87f619131776598fcb1478d
|
||||
backport: 4b8198ce7bd031846776dc60a66402697e2d3f9b
|
||||
cffd4a7c975848e2bb7c577e5c814a0d2bc9efd4:
|
||||
title: 'sock_diag: annotate data-races around sock_diag_handlers[family]'
|
||||
mainline: efd402537673f9951992aea4ef0f5ff51d858f4b
|
||||
backport: 7e6bdf38024904a26cf237968d6f476d3060ea8c
|
||||
0c41412330b8804ec9829ecb929a21d8cc2e06c5:
|
||||
title: 'af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().'
|
||||
mainline: 31e03207119a535d0b0e3b3a7f91983aeb2cb14d
|
||||
backport: d4a666252ef7cc7e3c6c126564e8f8e3ac751196
|
||||
96481624fb5a6319079fb5059e46dbce43a90186:
|
||||
title: 'wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()'
|
||||
mainline: 5f0e4aede01cb01fa633171f0533affd25328c3a
|
||||
backport: 7dbbfcf6db50dd29b7040c06826c2f26b8813b6a
|
||||
d351bcadab6caa6d8ce7159ff4b77e2da35c09fa:
|
||||
title: 'ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()'
|
||||
mainline: e18afcb7b2a12b635ac10081f943fcf84ddacc51
|
||||
backport: d39f836a2b9e34610d3c1b6800adda8b1b98b6b6
|
||||
dfd9078eecdac8d45badc029d0a1afb9b887d089:
|
||||
title: 'bus: tegra-aconnect: Update dependency to ARCH_TEGRA'
|
||||
mainline: 4acd21a45c1446277e2abaece97d7fa7c2e692a9
|
||||
backport: 3ecc2213610561a98f56332417ce1cd445addd80
|
||||
46b9f2480b5bd3793340754eb52aa887fcbeb2f1:
|
||||
title: 'iommu/amd: Mark interrupt as managed'
|
||||
mainline: 0feda94c868d396fac3b3cb14089d2d989a07c72
|
||||
backport: cff340eed43a60e8352306c2d0daa936e2609d55
|
||||
523bd0437c687d0b4edf7548b95217993746c64c:
|
||||
title: 'wifi: brcmsmac: avoid function pointer casts'
|
||||
mainline: e1ea6db35fc3ba5ff063f097385e9f7a88c25356
|
||||
backport: 7f3fb7d44b2c90cb14e6bdc2be5058669186d725
|
||||
d6a0ddacb07986dbd08d97b8c8b0928778e318b4:
|
||||
title: 'ARM: dts: arm: realview: Fix development chip ROM compatible value'
|
||||
mainline: 3baa4c5143d65ebab2de0d99a395e5f4f1f46608
|
||||
backport: a8674f8f32d3ce9502633eec64d5f1240d7ab031
|
||||
3dd8bfb5f23fa1605f2a7b62c91258a7d778ccb1:
|
||||
title: 'ACPI: scan: Fix device check notification handling'
|
||||
mainline: 793551c965116d9dfaf0550dacae1396a20efa69
|
||||
backport: ff060748955642dd9eb032bb32bf8d3c8b0c809c
|
||||
13edb509abc91c72152a11baaf0e7c060a312e03:
|
||||
title: 'x86, relocs: Ignore relocations in .notes section'
|
||||
mainline: aaa8736370db1a78f0e8434344a484f9fd20be3b
|
||||
backport: f1a4dbde435665ebd50419198f51995a86722489
|
||||
b97c37978ca825557d331c9012e0c1ddc0e42364:
|
||||
title: 'SUNRPC: fix some memleaks in gssx_dec_option_array'
|
||||
mainline: 3cfcfc102a5e57b021b786a755a38935e357797d
|
||||
backport: 98dd836d4d90f8c75583cdb77e51e43416145bf2
|
||||
f10426db32e7712fcc72154e2fa288f7127094ad:
|
||||
title: 'mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function'
|
||||
mainline: ae5004a40a262d329039b99b62bd3fe7645b66ad
|
||||
backport: 4cb02a03a5ed3ea326f92cb72cc6d96019ea43f4
|
||||
d686b4537ead6bdd1a636040c00af51e9e0a1bc5:
|
||||
title: 'igb: move PEROUT and EXTTS isr logic to separate functions'
|
||||
mainline: cf99c1dd7b7729091043374b90807c7a5f9fd9b1
|
||||
backport: 7344a5ae74cc4e62b079a877d20b2570e2f235ef
|
||||
f346bf4db1ebaad9c8ca5aae6397c7867b8ac4f3:
|
||||
title: 'igb: Fix missing time sync events'
|
||||
mainline: ee14cc9ea19ba9678177e2224a9c58cce5937c73
|
||||
backport: 2fe7a8cde6d1b03ecb4fed3f7cf6e5427463cfda
|
||||
6e960390709966929a29eaec8bca710237a54f24:
|
||||
title: 'Bluetooth: Remove superfluous call to hci_conn_check_pending()'
|
||||
mainline: 78e3639fc8031275010c3287ac548c0bc8de83b1
|
||||
backport: e63d5f1f3f5f918a0a94e7d4facccfa6342239cc
|
||||
6d5a9d4a7bcbb7534ce45a18a52e7bd23e69d8ac:
|
||||
title: 'Bluetooth: hci_core: Fix possible buffer overflow'
|
||||
mainline: 81137162bfaa7278785b24c1fd2e9e74f082e8e4
|
||||
backport: 224f6971eb2b4457331804d194017c1524f8157f
|
||||
424eba06ed405d557077339edb19ce0ebe39e7c7:
|
||||
title: 'sr9800: Add check for usbnet_get_endpoints'
|
||||
mainline: 07161b2416f740a2cb87faa5566873f401440a61
|
||||
backport: aca6a0b117cfb0701cc2bea02db1e8c6372b08b0
|
||||
33ec04cadb77605b71d9298311919303d390c4d5:
|
||||
title: 'bpf: Fix hashtab overflow check on 32-bit arches'
|
||||
mainline: 6787d916c2cf9850c97a0a3f73e08c43e7d973b1
|
||||
backport: 5b157b57a27deae00138ebbf9abe793d85b80d12
|
||||
d0e214acc59145ce25113f617311aa79dda39cb3:
|
||||
title: 'bpf: Fix stackmap overflow check on 32-bit arches'
|
||||
mainline: 7a4b21250bf79eef26543d35bd390448646c536b
|
||||
backport: c7eb664d0ae8b3da9621816bfe11ad862c24e342
|
||||
95db6e62a2d920abf43c169e51046adb9f394ef0:
|
||||
title: 'ipv6: fib6_rules: flush route cache when rule is changed'
|
||||
mainline: c4386ab4f6c600f75fdfd21143f89bac3e625d0d
|
||||
backport: efa596b077451aef0f8bb760ad3975264a046ee4
|
||||
d909b53ff5b8f005b474b4417ee271f5a4adca94:
|
||||
title: 'tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function'
|
||||
mainline: 716edc9706deb3bb2ff56e2eeb83559cea8f22db
|
||||
backport: 9676e9447d12a404638bbee6bd43852440c7c137
|
||||
51a7e05fbca612ae1f09f62dfe21957380b8546d:
|
||||
title: 'l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function'
|
||||
mainline: 955e9876ba4ee26eeaab1b13517f5b2c88e73d55
|
||||
backport: a0e4e51da39f5a7fc9d9e1f5fc14640701887d90
|
||||
f21612ee652c08b4a5a0bb11528035f57935fae1:
|
||||
title: 'udp: fix incorrect parameter validation in the udp_lib_getsockopt() function'
|
||||
mainline: 4bb3ba7b74fceec6f558745b25a43c6521cf5506
|
||||
backport: 5cfa0a58e61d01c690063af3623d0a53b76951a6
|
||||
867608c0abcbdc86e62925604ac2d3f0c7ca678a:
|
||||
title: 'net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function'
|
||||
mainline: 3ed5f415133f9b7518fbe55ba9ae9a3f5e700929
|
||||
backport: 59a4e1ed1e12998b6ee449091fe2ae36597b223b
|
||||
7089428a1a4e28efa0c36877d80639a8306fdbf4:
|
||||
title: 'net/x25: fix incorrect parameter validation in the x25_getsockopt() function'
|
||||
mainline: d6eb8de2015f0c24822e47356f839167ebde2945
|
||||
backport: fa19944cf14ae594b5b1353f881e80f4d83016b5
|
||||
d746889db75a76aeee95fb705b8e1ac28c684a2e:
|
||||
title: 'nfp: flower: handle acti_netdevs allocation failure'
|
||||
mainline: 84e95149bd341705f0eca6a7fcb955c548805002
|
||||
skipped: fixes patch not in branch
|
||||
52a35f5551c6c63f2c50c24117377faa47b2395c:
|
||||
title: 'dm raid: fix false positive for requeue needed during reshape'
|
||||
mainline: b25b8f4b8ecef0f48c05f0c3572daeabefe16526
|
||||
backport: 3d651f489f213a8688c49fdb9c5af4e94aaefe08
|
||||
69836d9329f0b4c58faaf3d886a7748ddb5bf718:
|
||||
title: 'dm: call the resume method on internal suspend'
|
||||
mainline: 65e8fbde64520001abf1c8d0e573561b4746ef38
|
||||
backport: d8348562b9ba5d57db7ff9c39b40c326d81fec2d
|
||||
47a13d0b9d8527518639ab5c39667f69d6203e80:
|
||||
title: 'drm/tegra: dsi: Add missing check for of_find_device_by_node'
|
||||
mainline: afe6fcb9775882230cd29b529203eabd5d2a638d
|
||||
backport: c5b100db7c774d0770809952834e65c00da6aed8
|
||||
aaa5ef6db779a2ffdac6e2c4e27a042fc85af425:
|
||||
title: 'gpu: host1x: mipi: Update tegra_mipi_request() to be node based'
|
||||
mainline: 767598d447aa46411289c5808b0e45e20a1823b4
|
||||
backport: a1d6e2d545ae60e3c0f14afc655960a12a1836ce
|
||||
4003d399dd34bd9a80fcf78a3feb3140eb82b2b8:
|
||||
title: 'drm/tegra: dsi: Make use of the helper function dev_err_probe()'
|
||||
mainline: fc75e4fcbd1e4252a0481ebb23cd4516c127a8e2
|
||||
backport: a7f31893877bed52efc884b8151f7bd211643115
|
||||
0cb8749a621cdd291dc8976bbc245029124d402a:
|
||||
title: 'drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()'
|
||||
mainline: 830c1ded356369cd1303e8bb87ce3fea6e744de8
|
||||
backport: beef7ea1764bd7497ea4a76932b5b57bb6d1147d
|
||||
d7e898d13a867014352f0daf98f8a0155c67a3c9:
|
||||
title: 'drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe()'
|
||||
mainline: 5286a9fc280c45b6b307ee1b07f7a997e042252c
|
||||
backport: 8f0f744ebf00a199144bb821d0d1b186de6be782
|
||||
c031022829a91114cb2bd531c38de99184957b6d:
|
||||
title: 'drm/rockchip: inno_hdmi: Fix video timing'
|
||||
mainline: 47a145c03484d33e65d773169d5ca1b9fe2a492e
|
||||
backport: 9514fc65463c56256c0fbb075a6e414d2c440e9c
|
||||
e3271a9f1432472bfd1aec82a5086d6b10e0dfec:
|
||||
title: 'drm: Don''t treat 0 as -1 in drm_fixp2int_ceil'
|
||||
mainline: cf8837d7204481026335461629b84ac7f4538fa5
|
||||
backport: 36ac37d23799588aa1f243c55a9958bac40ce8be
|
||||
2a1a4409d162a2a7e116ce87695ff6a7f8c7988c:
|
||||
title: 'drm/rockchip: lvds: do not overwrite error code'
|
||||
mainline: 79b09453c4e369ca81cfb670d0136d089e3b92f0
|
||||
skipped: fixes patch not in branch
|
||||
7775f620adbfcf3e65f32cb0f1bfa2c5f3786469:
|
||||
title: 'drm/rockchip: lvds: do not print scary message when probing defer'
|
||||
mainline: 52d11c863ac92e36a0365249f7f6d27ac48c78bc
|
||||
skipped: fixes patch not in branch
|
||||
17c2650de14842c25c569cbb2126c421489a3a24:
|
||||
title: 'media: tc358743: register v4l2 async device only after successful setup'
|
||||
mainline: 87399f1ff92203d65f1febf5919429f4bb613a02
|
||||
backport: f37d112202ea81abf2af9a552cd3657f8b042342
|
||||
35ad0b464f8c1d8414b9eb9ef8da070aa06bd693:
|
||||
title: 'perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample()'
|
||||
mainline: 4962aec0d684c8edb14574ccd0da53e4926ff834
|
||||
skipped: fixes patch not in branch
|
||||
def6f2347cc5534daffd513a5a33637fdfc8d1a6:
|
||||
title: 'ABI: sysfs-bus-pci-devices-aer_stats uses an invalid tag'
|
||||
mainline: abf313b5a8b72302062dd407ed7e470d67d389bb
|
||||
skipped: missing commit 81aa5206f9a7c9793e2f7971400351664e40b04f
|
||||
8b3c5d95bcc85f4333b6968ae7710ee2a1b28f0a:
|
||||
title: 'media: em28xx: annotate unchecked call to media_device_register()'
|
||||
mainline: fd61d77a3d28444b2635f0c8b5a2ecd6a4d94026
|
||||
backport: e2bc2e2b68b321dfd3fb2c66691014a66ee074a6
|
||||
0de691ff547d86dd54c24b40a81f9c925df8dd77:
|
||||
title: 'media: v4l2-tpg: fix some memleaks in tpg_alloc'
|
||||
mainline: 8cf9c5051076e0eb958f4361d50d8b0c3ee6691c
|
||||
backport: fdec9e17f52ea90aa40441a258d62ad3f0d6707d
|
||||
3dd8abb0ed0e0a7c66d6d677c86ccb188cc39333:
|
||||
title: 'media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity'
|
||||
mainline: 8f94b49a5b5d386c038e355bef6347298aabd211
|
||||
skipped: fixes patch not in branch
|
||||
cfa5ffc57e54fb8b864d23b6992cb37d706f6a87:
|
||||
title: 'media: dvbdev: remove double-unlock'
|
||||
mainline: 122d0e8dd050cc5dc3fb9e9b5f2dee3c5276ce35
|
||||
backport: 08af260a5bc1b71c1278dccb64a7866ea0687ef3
|
||||
6e4129f8163460c79bb99887bc6f791196fcbda2:
|
||||
title: 'media: media/dvb: Use kmemdup rather than duplicating its implementation'
|
||||
mainline: f6af820ef1be58c2e4b81aa479b9f109eb6344ce
|
||||
backport: 88b9134f0e55fe9a7162ee90e5324e2fd91b0ad9
|
||||
085f36c317cba8b8955c5da5f59c7486345d2bbb:
|
||||
title: 'media: dvbdev: Fix memleak in dvb_register_device'
|
||||
mainline: 167faadfcf9339088910e9e85a1b711fcbbef8e9
|
||||
backport: 5ace531d9048d5957c275071f8e55d5b3261e03e
|
||||
a30cf94eaf5dd3ffd8d13c3a8c303d04357b01c1:
|
||||
title: 'media: dvbdev: fix error logic at dvb_register_device()'
|
||||
mainline: 1fec2ecc252301110e4149e6183fa70460d29674
|
||||
backport: 83a32ee58edae39a2e9bb7d71f36d0317ebf39d2
|
||||
dc04ff778b4f8ff4560f1c42993417359e74d36a:
|
||||
title: 'media: dvb-core: Fix use-after-free due to race at dvb_register_device()'
|
||||
mainline: 627bb528b086b4136315c25d6a447a98ea9448d3
|
||||
backport: 8f649cb42cc0154445a0319a3ec9e0f6f37737b5
|
||||
d0f5c28333822f9baa5280d813124920720fd856:
|
||||
title: 'media: edia: dvbdev: fix a use-after-free'
|
||||
mainline: 8c64f4cdf4e6cc5682c52523713af8c39c94e6d5
|
||||
backport: dec38a328d1cb93913450eab8c0b2b52ca6d96b7
|
||||
5f0a066e0ece83eb4c72c6672539bcdbfeb39a4e:
|
||||
title: 'clk: qcom: reset: Allow specifying custom reset delay'
|
||||
mainline: 2cb8a39b6781ea23accd1fa93b3ad000d0948aec
|
||||
backport: a9c53a71d5103df700ba1022bd793c2e7da2e4b3
|
||||
38dd93f87da08876edf8df89a5992ce46da920ea:
|
||||
title: 'clk: qcom: reset: support resetting multiple bits'
|
||||
mainline: 4a5210893625f89723ea210d7c630b730abb37ad
|
||||
backport: 7091467f8cf4ffb05762766872608822fba862a6
|
||||
823c46950d9a96e94db8f565013f4f2f528c2bbe:
|
||||
title: 'clk: qcom: reset: Commonize the de/assert functions'
|
||||
mainline: eda40d9c583e95e0b6ac69d2950eec10f802e0e8
|
||||
backport: fb58c616f8d5d230746a6e834a13daaf9616432d
|
||||
d258d124f435adb3cac491e4b0274e75597f3a02:
|
||||
title: 'clk: qcom: reset: Ensure write completion on reset de/assertion'
|
||||
mainline: 2f8cf2c3f3e3f7ef61bd19abb4b0bb797ad50aaf
|
||||
backport: 3acb0bf9b01663735e38d8647655c4c2dc81aa80
|
||||
d9e4ab12b60a49204435102f8120c0d3e62583f1:
|
||||
title: 'quota: code cleanup for __dquot_alloc_space()'
|
||||
mainline: df15a2a59d0b29d86e17140b83ed231adaded12f
|
||||
backport: 045db5c9471c0d3662193af5123c40c459442c29
|
||||
1974c13019b97140149690cd622a9c6732c32124:
|
||||
title: 'fs/quota: erase unused but set variable warning'
|
||||
mainline: 78bc3334a69ff289dbc973a9db7c52a2d7757e5b
|
||||
backport: 34b20f6e467fcd6dcd4352a429263beca0cc46fc
|
||||
e87ed533e7a6167f4a5e1b0fdbf21784acf115cc:
|
||||
title: 'quota: check time limit when back out space/inode change'
|
||||
mainline: 632a9f3acd6687376cbb0b178df6048e19cbacc9
|
||||
backport: 92b446b2b7dfe86c8955bf914789754b2d44ec81
|
||||
248699a705f31211c0d7cc9e0d79cbbabbc9c791:
|
||||
title: 'quota: simplify drop_dquot_ref()'
|
||||
mainline: 7bce48f0fec602b3b6c335963b26d9eefa417788
|
||||
backport: ba23e07d50c32bf3e5c651e29fe526f53652b28b
|
||||
8514899c1a4edf802f03c408db901063aa3f05a1:
|
||||
title: 'quota: Fix potential NULL pointer dereference'
|
||||
mainline: d0aa72604fbd80c8aabb46eda00535ed35570f1f
|
||||
backport: b2b5f36baf4785d586642aab144412e5961b7955
|
||||
06172dff9a47e76dfce9b60d44ef21131b417803:
|
||||
title: 'quota: Fix rcu annotations of inode dquot pointers'
|
||||
mainline: 179b8c97ebf63429589f5afeba59a181fe70603e
|
||||
backport: 9b7a96f32e377542671c0cc2c43a1ab5cfa84723
|
||||
f9e92ad5eb0901cacac8f1cc4e5ea12514f7934b:
|
||||
title: 'perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()'
|
||||
mainline: 1eb3d924e3c0b8c27388b0583a989d757866efb6
|
||||
backport: d85a1e5fdc93c04aad783ac5134fe266a0a372b7
|
||||
1c35795b90f4dce0605ace7eef9ae1bd1282ebf2:
|
||||
title: 'drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()'
|
||||
mainline: c4891d979c7668b195a0a75787967ec95a24ecef
|
||||
backport: 38f97031f0e5fad4f2a081d34cd1a1365cca5e05
|
||||
9f9254f8927d9f4e4185ec18d8ee648dfcb5ed62:
|
||||
title: 'ALSA: seq: fix function cast warnings'
|
||||
mainline: d7bf73809849463f76de42aad62c850305dd6c5d
|
||||
backport: 9075faa224b8911050442a04a83e7156df94f0b7
|
||||
ff13e3ce6aa4c0dfdbc6438fe3c03118afe3ee8c:
|
||||
title: 'media: go7007: add check of return value of go7007_read_addr()'
|
||||
mainline: 0b70530ee740861f4776ff724fcc25023df1799a
|
||||
backport: 0203c9b23b47d5e2f6d817b69d592ccc88d9a1f5
|
||||
4e93392ae27eb5f8ad4efd31cf8f1ecd5fdabe15:
|
||||
title: 'media: pvrusb2: fix pvr2_stream_callback casts'
|
||||
mainline: 30baa4a96b23add91a87305baaeba82c4e109e1f
|
||||
backport: ef1a77adc95fea554698fbbe7530b7e7da5ef4a6
|
||||
1cb169229f8e6a29bd4ec4baf7a095a91ed6c729:
|
||||
title: 'firmware: qcom: scm: Add WLAN VMID for Qualcomm SCM interface'
|
||||
mainline: cc53aabcc283c36274d3f3ce9adc4b40c21d4838
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
c7544fd16bf8656791548ab3b0845b6ed2411496:
|
||||
title: 'clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times'
|
||||
mainline: 117e7dc697c2739d754db8fe0c1e2d4f1f5d5f82
|
||||
skipped: fixes patch not in branch
|
||||
a5e660dba9ff73531053664e20dd858d880adbdb:
|
||||
title: 'drm/mediatek: dsi: Fix DSI RGB666 formats and definitions'
|
||||
mainline: fae6f815505301b92d9113764f4d76d0bfe45607
|
||||
backport: bbb93685c7c6f27816955df2d599ca30a5ff2dbb
|
||||
8443ceba0a8e5960e134ef26346266cb2d3a251d:
|
||||
title: 'PCI: Mark 3ware-9650SE Root Port Extended Tags as broken'
|
||||
mainline: baf67aefbe7d7deafa59ca49612d163f8889934c
|
||||
backport: 8bfb9ffc388bc45abfcbf77b8b2c0715c4a950f6
|
||||
907370aacf216e3a662d44e88d204413488444b3:
|
||||
title: 'clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()'
|
||||
mainline: 74e39f526d95c0c119ada1874871ee328c59fbee
|
||||
backport: 2c4e4f364fc917492491e7e801a11aa3d021eaba
|
||||
d674e78da934afd2ce5935eff08cf5361a9a27ac:
|
||||
title: 'drm/tegra: put drm_gem_object ref on error in tegra_fb_create'
|
||||
mainline: 32e5a120a5105bce01561978ee55aee8e40ac0dc
|
||||
backport: 964b1a6dfa9591962a88502cbce73e0d5a39f12c
|
||||
5d16d3dc28a95915c1f7a41f68f2a069ced4b578:
|
||||
title: 'mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref'
|
||||
mainline: d2b0680cf3b05490b579e71b0df6e07451977745
|
||||
backport: cc17862516e0adc1504c13f2bcf8e6e660af3912
|
||||
bdb1db7115d9b2a9d10c101dfc67386485fad00d:
|
||||
title: 'crypto: arm - Rename functions to avoid conflict with crypto/sha256.h'
|
||||
mainline: e4dcc1be15268b6d34de3968f906577591521bd5
|
||||
backport: 7fc8137190a1cebb8826d8ed71480d2653801e3f
|
||||
8d27d1b155c26bae2bd76b0c3e78cc4f1f1e21c5:
|
||||
title: 'crypto: arm/sha - fix function cast warnings'
|
||||
mainline: 53cc9baeb9bc2a187eb9c9790d30995148852b12
|
||||
backport: 0147d403e14fcf04d14e54c8db8c92e0b9e895c1
|
||||
9fc05d7953b0d71372b632e1d62abf78c6ac9d64:
|
||||
title: 'mtd: rawnand: lpc32xx_mlc: fix irq handler prototype'
|
||||
mainline: 347b828882e6334690e7003ce5e2fe5f233dc508
|
||||
backport: 1b84c12ebaccfd96af1d200d69bad289842962a9
|
||||
e7221531b9f477f596c432846c57581d0312a02c:
|
||||
title: 'ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs'
|
||||
mainline: e3741a8d28a1137f8b19ae6f3d6e3be69a454a0a
|
||||
skipped: fixes patch not in branch
|
||||
5a2b18dbec88b972d570994483f188cb59586609:
|
||||
title: 'drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()'
|
||||
mainline: 7cf1ad2fe10634238b38442a851d89514cb14ea2
|
||||
backport: d7fb1c3d480ad75315a420879665772dd588cd44
|
||||
ed8000e1e8e9684ab6c30cf2b526c0cea039929c:
|
||||
title: 'media: pvrusb2: fix uaf in pvr2_context_set_notify'
|
||||
mainline: 0a0b79ea55de8514e1750884e5fec77f9fdd01ee
|
||||
backport: 6251ccc9fe18868635199a6e3dcd17ac5732060a
|
||||
c073c8cede5abd3836e83d70d72606d11d0759d4:
|
||||
title: 'media: dvb-frontends: avoid stack overflow warnings with clang'
|
||||
mainline: 7a4cf27d1f0538f779bf31b8c99eda394e277119
|
||||
backport: 810b8a9fe3e1bc6bc357b08882289aab5be3909e
|
||||
7f11dd3d165b178e738fe73dfeea513e383bedb5:
|
||||
title: 'media: go7007: fix a memleak in go7007_load_encoder'
|
||||
mainline: b9b683844b01d171a72b9c0419a2d760d946ee12
|
||||
backport: d692197c4290038026cd849e964cbc0963b8baf7
|
||||
accdac6b71d5a2b84040c3d2234f53a60edc398e:
|
||||
title: 'drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip'
|
||||
mainline: c958e86e9cc1b48cac004a6e245154dfba8e163b
|
||||
backport: f754e826a42f26ce110d8c22ac3efcd5b8f714a8
|
||||
0a1754ba8d537e054b01f0c2dc6b653a5a1b685d:
|
||||
title: 'powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks'
|
||||
mainline: ad86d7ee43b22aa2ed60fb982ae94b285c1be671
|
||||
backport: 1785997d8b483b47a511d6d61e2e8cc20095ec5d
|
||||
131dffef3a81e9c6f4a9e278ffd66f3eb5ae8c3e:
|
||||
title: 'powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.'
|
||||
mainline: 20933531be0577cdd782216858c26150dbc7936f
|
||||
backport: 138ea96e89f7b2bccb7b3fee18b0a4430e6b2f5c
|
||||
063b294747b47f7bdaad3953542e73552bf7fe65:
|
||||
title: 'backlight: lm3630a: Initialize backlight_properties on init'
|
||||
mainline: ad9aeb0e3aa90ebdad5fabf9c21783740eb95907
|
||||
backport: e50c0ec386b601a2161ecf3ce4d8bb64dc0226bd
|
||||
85360e411bd2239ef184178352fab6582a0fcb85:
|
||||
title: 'backlight: lm3630a: Don''t set bl->props.brightness in get_brightness'
|
||||
mainline: 4bf7ddd2d2f0f8826f25f74c7eba4e2c323a1446
|
||||
backport: d0ca047e07a3357a1cfa5de925311b5496e1b233
|
||||
ba9f50fa0edd4d45bc9840ba05efa9b526a30b53:
|
||||
title: 'backlight: da9052: Fully initialize backlight_properties during probe'
|
||||
mainline: 0285e9efaee8276305db5c52a59baf84e9731556
|
||||
backport: 80b386048fb42668966e1afc0ae2c4d6e6dfd1fa
|
||||
9d0aaf425cc5aec627ee7cae0990e6c5b7d2adb9:
|
||||
title: 'backlight: lm3639: Fully initialize backlight_properties during probe'
|
||||
mainline: abb5a5d951fbea3feb5c4ba179b89bb96a1d3462
|
||||
backport: 2f286fb34ca716ba08e7f4cb0f020ce20cb9d219
|
||||
3301f60ab7ebc14ec7242f1ad62dc151e11cd308:
|
||||
title: 'backlight: lp8788: Fully initialize backlight_properties during probe'
|
||||
mainline: 392346827fbe8a7fd573dfb145170d7949f639a6
|
||||
backport: 3f2fe45a95a3f6a3cd5f7c17d8c53a41b1800d75
|
||||
6bf3c3508c839c4457058686fbd59d9c55e5e598:
|
||||
title: 'sparc32: Fix section mismatch in leon_pci_grpci'
|
||||
mainline: 24338a6ae13cb743ced77da1b3a12c83f08a0c96
|
||||
backport: 1455216df91812ea6d3e0fcf0ce4be142ba39cbc
|
||||
7e2c1b0f6dd9abde9e60f0f9730026714468770f:
|
||||
title: 'ALSA: usb-audio: Stop parsing channels bits when all channels are found.'
|
||||
mainline: a39d51ff1f52cd0b6fe7d379ac93bd8b4237d1b7
|
||||
backport: 684d0dfc0167a62bb2fc9c3c2d97e421a6f8f1d7
|
||||
77d9c6364756ec8986b8d7f801bcb2295cfa036a:
|
||||
title: 'scsi: csiostor: Avoid function pointer casts'
|
||||
mainline: 9f3dbcb5632d6876226031d552ef6163bb3ad215
|
||||
backport: ee504736ec7911bfb90382f7f3222faa7982dc0f
|
||||
8413fc5ef952b5ddd606a42b2be1e15694e2f526:
|
||||
title: 'scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn'
|
||||
mainline: b69600231f751304db914c63b937f7098ed2895c
|
||||
backport: 826d2a5f4af824bc5457e9ca919e6d0e0da677c5
|
||||
867a6a6899a68323d6ef8995ea3765611d67ba1e:
|
||||
title: 'net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()'
|
||||
mainline: d6f4de70f73a106986ee315d7d512539f2f3303a
|
||||
backport: dd5627de25e1b9b306a735e52a9be0189c50681e
|
||||
9bb320c5cea50e7fa82a477743a6a0546eaa37b3:
|
||||
title: 'NFS: Fix an off by one in root_nfs_cat()'
|
||||
mainline: 698ad1a538da0b6bf969cfee630b4e3a026afb87
|
||||
backport: 43e88e13e5e89dabaa722dcbe424df93ff3fa50b
|
||||
13c921e83ef2f8c2d7f6d79272e7760de605ca3c:
|
||||
title: 'clk: qcom: gdsc: Add support to update GDSC transition delay'
|
||||
mainline: 4e7c4d3652f96f41179aab3ff53025c7a550d689
|
||||
backport: ac71f4414591935d0d42f189b92234f8475c8e26
|
||||
e75ae3225cd1e1648c5140abf21d8c76b4b5e10a:
|
||||
title: 'serial: max310x: fix syntax error in IRQ error message'
|
||||
mainline: 8ede8c6f474255b2213cccd7997b993272a8e2f9
|
||||
backport: 5f8e15a6c9782fe17177f6adbed2605e2626ec1a
|
||||
6e839e4153c9881d79f94263fa352db35aa82b20:
|
||||
title: 'tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT'
|
||||
mainline: 314c2b399288f0058a8c5b6683292cbde5f1531b
|
||||
backport: 2ba503c76ed0e3fb44574c56c207662044701968
|
||||
d0687545f89d410b42ed84a8cb089bd670e0a5cf:
|
||||
title: 'kconfig: fix infinite loop when expanding a macro at the end of file'
|
||||
mainline: af8bbce92044dc58e4cc039ab94ee5d470a621f5
|
||||
skipped: fixes patch not in branch
|
||||
575fe3cc7fe2f80e9f45e1d36a4526ea43fbf280:
|
||||
title: 'rtc: mt6397: select IRQ_DOMAIN instead of depending on it'
|
||||
mainline: 544c42f798e1651dcb04fb0395219bf0f1c2607e
|
||||
backport: 251fdf12a591f6f0393c9a074493372ee677d5ef
|
||||
787e2620d1574196f10193a7c3693d95958254cb:
|
||||
title: 'serial: 8250_exar: Don''t remove GPIO device on suspend'
|
||||
mainline: 73b5a5c00be39e23b194bad10e1ea8bb73eee176
|
||||
backport: 05809dc60c6107cc2d59fc9e5c6ab7880415cce8
|
||||
40bbb7e4e83a53b5ae2c4b79c675618159571d83:
|
||||
title: 'staging: greybus: fix get_channel_from_mode() failure path'
|
||||
mainline: 34164202a5827f60a203ca9acaf2d9f7d432aac8
|
||||
backport: 5bc6fb9dd8654ad945d2ab614de42276880ed458
|
||||
4371549533b124e1693a7771303e44ed827af2e0:
|
||||
title: 'usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin'
|
||||
mainline: 600556809f04eb3bbccd05218215dcd7b285a9a9
|
||||
backport: f950312d06f35a0dcf0d89eedd046d78ecaacb57
|
||||
9706929ab421a6f68ed72fc0e6371e4fca8e698a:
|
||||
title: 'net: hsr: fix placement of logical operator in a multi-line statement'
|
||||
mainline: 059477830022e1886f55a9641702461c249fa864
|
||||
backport: c412392d4e52ac3f871a4b94dcd97886f61f1c68
|
||||
e3b2bfb8ff1810a537b2aa55ba906a6743ed120c:
|
||||
title: 'hsr: Fix uninit-value access in hsr_get_node()'
|
||||
mainline: ddbec99f58571301679addbc022256970ca3eac6
|
||||
backport: f185d5434353871c54ffa351ed5647bc974a29f9
|
||||
bec6c4ce1169a565c58c347d5d0ac22e46d507d6:
|
||||
title: 'rds: introduce acquire/release ordering in acquire/release_in_xmit()'
|
||||
mainline: 1422f28826d2a0c11e5240b3e951c9e214d8656e
|
||||
backport: e2ef56dd89fdb684f70940c3a13aeacaa5551b2f
|
||||
9a4e0ec0624c5b3e07fb042b307b98c3543de2f4:
|
||||
title: 'hsr: Handle failures in module init'
|
||||
mainline: 3cf28cd492308e5f63ed00b29ea03ca016264376
|
||||
backport: b3f50f65706d8c16fc23b4c2d67622da15dbf2f2
|
||||
7bcc090c81116c66936a7415f2c6b1483a4bcfd9:
|
||||
title: 'net/bnx2x: Prevent access to a freed page in page_pool'
|
||||
mainline: d27e2da94a42655861ca4baea30c8cd65546f25d
|
||||
backport: ac6c533f13a4ec9071d6548a8be5467ab238c6aa
|
||||
2342b05ec5342a519e00524a507f7a6ea6791a38:
|
||||
title: 'spi: spi-mt65xx: Fix NULL pointer access in interrupt handler'
|
||||
mainline: a20ad45008a7c82f1184dc6dee280096009ece55
|
||||
backport: d49e4f3714a9208ee47e19da264ef74eab869b2e
|
||||
546e3961b5d4c6db82cfb441fabb4353940c8f95:
|
||||
title: 'crypto: af_alg - Fix regression on empty requests'
|
||||
mainline: 662bb52f50bca16a74fe92b487a14d7dccb85e1a
|
||||
backport: 2939b898498d9da54f5ea4c0b3d698a7644843fa
|
||||
ba1f292491c011fa11d80b152f15ef97e4519891:
|
||||
title: 'crypto: af_alg - Work around empty control messages without MSG_MORE'
|
||||
mainline: c195d66a8a75c60515819b101975f38b7ec6577f
|
||||
backport: 3f81c30ae458bf0f8cc2f421f3254ffa59dd95df
|
||||
@@ -405,7 +405,6 @@ prototypes:
|
||||
int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
|
||||
int (*direct_access) (struct block_device *, sector_t, void **,
|
||||
unsigned long *);
|
||||
int (*media_changed) (struct gendisk *);
|
||||
void (*unlock_native_capacity) (struct gendisk *);
|
||||
int (*revalidate_disk) (struct gendisk *);
|
||||
int (*getgeo)(struct block_device *, struct hd_geometry *);
|
||||
@@ -418,13 +417,12 @@ release: yes
|
||||
ioctl: no
|
||||
compat_ioctl: no
|
||||
direct_access: no
|
||||
media_changed: no
|
||||
unlock_native_capacity: no
|
||||
revalidate_disk: no
|
||||
getgeo: no
|
||||
swap_slot_free_notify: no (see below)
|
||||
|
||||
media_changed, unlock_native_capacity and revalidate_disk are called only from
|
||||
unlock_native_capacity and revalidate_disk are called only from
|
||||
check_disk_change().
|
||||
|
||||
swap_slot_free_notify is called with swap_lock and sometimes the page lock
|
||||
|
||||
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 14
|
||||
SUBLEVEL = 341
|
||||
SUBLEVEL = 343
|
||||
EXTRAVERSION = -openela
|
||||
NAME = Petit Gorille
|
||||
|
||||
|
||||
@@ -390,7 +390,7 @@
|
||||
|
||||
/* Direct-mapped development chip ROM */
|
||||
pb1176_rom@10200000 {
|
||||
compatible = "direct-mapped";
|
||||
compatible = "mtd-rom";
|
||||
reg = <0x10200000 0x4000>;
|
||||
bank-width = <1>;
|
||||
};
|
||||
|
||||
@@ -30,8 +30,8 @@
|
||||
|
||||
#include "sha256_glue.h"
|
||||
|
||||
asmlinkage void sha256_block_data_order(u32 *digest, const void *data,
|
||||
unsigned int num_blks);
|
||||
asmlinkage void sha256_block_data_order(struct sha256_state *state,
|
||||
const u8 *data, int num_blks);
|
||||
|
||||
int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len)
|
||||
@@ -39,24 +39,21 @@ int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,
|
||||
/* make sure casting to sha256_block_fn() is safe */
|
||||
BUILD_BUG_ON(offsetof(struct sha256_state, state) != 0);
|
||||
|
||||
return sha256_base_do_update(desc, data, len,
|
||||
(sha256_block_fn *)sha256_block_data_order);
|
||||
return sha256_base_do_update(desc, data, len, sha256_block_data_order);
|
||||
}
|
||||
EXPORT_SYMBOL(crypto_sha256_arm_update);
|
||||
|
||||
static int sha256_final(struct shash_desc *desc, u8 *out)
|
||||
static int crypto_sha256_arm_final(struct shash_desc *desc, u8 *out)
|
||||
{
|
||||
sha256_base_do_finalize(desc,
|
||||
(sha256_block_fn *)sha256_block_data_order);
|
||||
sha256_base_do_finalize(desc, sha256_block_data_order);
|
||||
return sha256_base_finish(desc, out);
|
||||
}
|
||||
|
||||
int crypto_sha256_arm_finup(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len, u8 *out)
|
||||
{
|
||||
sha256_base_do_update(desc, data, len,
|
||||
(sha256_block_fn *)sha256_block_data_order);
|
||||
return sha256_final(desc, out);
|
||||
sha256_base_do_update(desc, data, len, sha256_block_data_order);
|
||||
return crypto_sha256_arm_final(desc, out);
|
||||
}
|
||||
EXPORT_SYMBOL(crypto_sha256_arm_finup);
|
||||
|
||||
@@ -64,7 +61,7 @@ static struct shash_alg algs[] = { {
|
||||
.digestsize = SHA256_DIGEST_SIZE,
|
||||
.init = sha256_base_init,
|
||||
.update = crypto_sha256_arm_update,
|
||||
.final = sha256_final,
|
||||
.final = crypto_sha256_arm_final,
|
||||
.finup = crypto_sha256_arm_finup,
|
||||
.descsize = sizeof(struct sha256_state),
|
||||
.base = {
|
||||
@@ -79,7 +76,7 @@ static struct shash_alg algs[] = { {
|
||||
.digestsize = SHA224_DIGEST_SIZE,
|
||||
.init = sha224_base_init,
|
||||
.update = crypto_sha256_arm_update,
|
||||
.final = sha256_final,
|
||||
.final = crypto_sha256_arm_final,
|
||||
.finup = crypto_sha256_arm_finup,
|
||||
.descsize = sizeof(struct sha256_state),
|
||||
.base = {
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
asmlinkage void sha256_block_data_order_neon(u32 *digest, const void *data,
|
||||
unsigned int num_blks);
|
||||
|
||||
static int sha256_update(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len)
|
||||
static int crypto_sha256_neon_update(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len)
|
||||
{
|
||||
struct sha256_state *sctx = shash_desc_ctx(desc);
|
||||
|
||||
@@ -46,8 +46,8 @@ static int sha256_update(struct shash_desc *desc, const u8 *data,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int sha256_finup(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len, u8 *out)
|
||||
static int crypto_sha256_neon_finup(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len, u8 *out)
|
||||
{
|
||||
if (!may_use_simd())
|
||||
return crypto_sha256_arm_finup(desc, data, len, out);
|
||||
@@ -63,17 +63,17 @@ static int sha256_finup(struct shash_desc *desc, const u8 *data,
|
||||
return sha256_base_finish(desc, out);
|
||||
}
|
||||
|
||||
static int sha256_final(struct shash_desc *desc, u8 *out)
|
||||
static int crypto_sha256_neon_final(struct shash_desc *desc, u8 *out)
|
||||
{
|
||||
return sha256_finup(desc, NULL, 0, out);
|
||||
return crypto_sha256_neon_finup(desc, NULL, 0, out);
|
||||
}
|
||||
|
||||
struct shash_alg sha256_neon_algs[] = { {
|
||||
.digestsize = SHA256_DIGEST_SIZE,
|
||||
.init = sha256_base_init,
|
||||
.update = sha256_update,
|
||||
.final = sha256_final,
|
||||
.finup = sha256_finup,
|
||||
.update = crypto_sha256_neon_update,
|
||||
.final = crypto_sha256_neon_final,
|
||||
.finup = crypto_sha256_neon_finup,
|
||||
.descsize = sizeof(struct sha256_state),
|
||||
.base = {
|
||||
.cra_name = "sha256",
|
||||
@@ -86,9 +86,9 @@ struct shash_alg sha256_neon_algs[] = { {
|
||||
}, {
|
||||
.digestsize = SHA224_DIGEST_SIZE,
|
||||
.init = sha224_base_init,
|
||||
.update = sha256_update,
|
||||
.final = sha256_final,
|
||||
.finup = sha256_finup,
|
||||
.update = crypto_sha256_neon_update,
|
||||
.final = crypto_sha256_neon_final,
|
||||
.finup = crypto_sha256_neon_finup,
|
||||
.descsize = sizeof(struct sha256_state),
|
||||
.base = {
|
||||
.cra_name = "sha224",
|
||||
|
||||
@@ -28,27 +28,25 @@ MODULE_ALIAS_CRYPTO("sha512");
|
||||
MODULE_ALIAS_CRYPTO("sha384-arm");
|
||||
MODULE_ALIAS_CRYPTO("sha512-arm");
|
||||
|
||||
asmlinkage void sha512_block_data_order(u64 *state, u8 const *src, int blocks);
|
||||
asmlinkage void sha512_block_data_order(struct sha512_state *state,
|
||||
u8 const *src, int blocks);
|
||||
|
||||
int sha512_arm_update(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len)
|
||||
{
|
||||
return sha512_base_do_update(desc, data, len,
|
||||
(sha512_block_fn *)sha512_block_data_order);
|
||||
return sha512_base_do_update(desc, data, len, sha512_block_data_order);
|
||||
}
|
||||
|
||||
int sha512_arm_final(struct shash_desc *desc, u8 *out)
|
||||
{
|
||||
sha512_base_do_finalize(desc,
|
||||
(sha512_block_fn *)sha512_block_data_order);
|
||||
sha512_base_do_finalize(desc, sha512_block_data_order);
|
||||
return sha512_base_finish(desc, out);
|
||||
}
|
||||
|
||||
int sha512_arm_finup(struct shash_desc *desc, const u8 *data,
|
||||
unsigned int len, u8 *out)
|
||||
{
|
||||
sha512_base_do_update(desc, data, len,
|
||||
(sha512_block_fn *)sha512_block_data_order);
|
||||
sha512_base_do_update(desc, data, len, sha512_block_data_order);
|
||||
return sha512_arm_final(desc, out);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs,
|
||||
unsigned long val)
|
||||
{
|
||||
regs->cp0_epc = val;
|
||||
regs->cp0_cause &= ~CAUSEF_BD;
|
||||
}
|
||||
|
||||
/* Query offset/name of register from its name/offset */
|
||||
|
||||
@@ -157,6 +157,20 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index,
|
||||
|
||||
ret = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO,
|
||||
virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE);
|
||||
|
||||
/*
|
||||
* ret value as 'H_PARAMETER' with detail_rc as 'GEN_BUF_TOO_SMALL',
|
||||
* specifies that the current buffer size cannot accommodate
|
||||
* all the information and a partial buffer returned.
|
||||
* Since in this function we are only accessing data for a given starting index,
|
||||
* we don't need to accommodate whole data and can get required count by
|
||||
* accessing first entry data.
|
||||
* Hence hcall fails only incase the ret value is other than H_SUCCESS or
|
||||
* H_PARAMETER with detail_rc value as GEN_BUF_TOO_SMALL(0x1B).
|
||||
*/
|
||||
if (ret == H_PARAMETER && be32_to_cpu(arg->params.detail_rc) == 0x1B)
|
||||
ret = 0;
|
||||
|
||||
if (ret) {
|
||||
pr_devel("hcall failed: 0x%lx\n", ret);
|
||||
goto out;
|
||||
@@ -221,6 +235,7 @@ static int h_gpci_event_init(struct perf_event *event)
|
||||
{
|
||||
u64 count;
|
||||
u8 length;
|
||||
unsigned long ret;
|
||||
|
||||
/* Not our event */
|
||||
if (event->attr.type != event->pmu->type)
|
||||
@@ -260,13 +275,23 @@ static int h_gpci_event_init(struct perf_event *event)
|
||||
}
|
||||
|
||||
/* check if the request works... */
|
||||
if (single_gpci_request(event_get_request(event),
|
||||
ret = single_gpci_request(event_get_request(event),
|
||||
event_get_starting_index(event),
|
||||
event_get_secondary_index(event),
|
||||
event_get_counter_info_version(event),
|
||||
event_get_offset(event),
|
||||
length,
|
||||
&count)) {
|
||||
&count);
|
||||
|
||||
/*
|
||||
* ret value as H_AUTHORITY implies that partition is not permitted to retrieve
|
||||
* performance information, and required to set
|
||||
* "Enable Performance Information Collection" option.
|
||||
*/
|
||||
if (ret == H_AUTHORITY)
|
||||
return -EPERM;
|
||||
|
||||
if (ret) {
|
||||
pr_devel("gpci hcall failed\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -97,9 +97,6 @@ static void __init linkstation_init_IRQ(void)
|
||||
mpic_init(mpic);
|
||||
}
|
||||
|
||||
extern void avr_uart_configure(void);
|
||||
extern void avr_uart_send(const char);
|
||||
|
||||
static void __noreturn linkstation_restart(char *cmd)
|
||||
{
|
||||
local_irq_disable();
|
||||
|
||||
@@ -156,4 +156,7 @@ int mpc10x_disable_store_gathering(struct pci_controller *hose);
|
||||
/* For MPC107 boards that use the built-in openpic */
|
||||
void mpc10x_set_openpic(void);
|
||||
|
||||
void avr_uart_configure(void);
|
||||
void avr_uart_send(const char c);
|
||||
|
||||
#endif /* __PPC_KERNEL_MPC10X_H */
|
||||
|
||||
@@ -696,7 +696,7 @@ err1:
|
||||
return err;
|
||||
}
|
||||
|
||||
static const struct of_device_id grpci1_of_match[] __initconst = {
|
||||
static const struct of_device_id grpci1_of_match[] = {
|
||||
{
|
||||
.name = "GAISLER_PCIFBRG",
|
||||
},
|
||||
|
||||
@@ -887,7 +887,7 @@ err1:
|
||||
return err;
|
||||
}
|
||||
|
||||
static const struct of_device_id grpci2_of_match[] __initconst = {
|
||||
static const struct of_device_id grpci2_of_match[] = {
|
||||
{
|
||||
.name = "GAISLER_GRPCI2",
|
||||
},
|
||||
|
||||
@@ -25,6 +25,19 @@ config LD_SCRIPT_DYN
|
||||
|
||||
source "fs/Kconfig.binfmt"
|
||||
|
||||
config LD_SCRIPT_DYN_RPATH
|
||||
bool "set rpath in the binary" if EXPERT
|
||||
default y
|
||||
depends on LD_SCRIPT_DYN
|
||||
help
|
||||
Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
|
||||
explicitly.
|
||||
|
||||
You may need to turn this off if compiling for nix systems
|
||||
that have their libraries in random /nix directories and
|
||||
might otherwise unexpected use libraries from /lib or /lib64
|
||||
instead of the desired ones.
|
||||
|
||||
config HOSTFS
|
||||
tristate "Host filesystem"
|
||||
help
|
||||
|
||||
@@ -121,7 +121,8 @@ archheaders:
|
||||
archprepare: include/generated/user_constants.h
|
||||
|
||||
LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
|
||||
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib $(call cc-option, -no-pie)
|
||||
LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie)
|
||||
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib
|
||||
|
||||
CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
|
||||
$(call cc-option, -fno-stack-protector,) \
|
||||
|
||||
@@ -53,7 +53,7 @@ ELF_FORMAT := elf64-x86-64
|
||||
|
||||
# Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example.
|
||||
|
||||
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64
|
||||
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib64
|
||||
LINK-y += -m64
|
||||
|
||||
# Do unit-at-a-time unconditionally on x86_64, following the host
|
||||
|
||||
@@ -579,6 +579,14 @@ static void print_absolute_relocs(void)
|
||||
if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* Do not perform relocations in .notes section; any
|
||||
* values there are meant for pre-boot consumption (e.g.
|
||||
* startup_xen).
|
||||
*/
|
||||
if (sec_applies->shdr.sh_type == SHT_NOTE) {
|
||||
continue;
|
||||
}
|
||||
sh_symtab = sec_symtab->symtab;
|
||||
sym_strtab = sec_symtab->link->strtab;
|
||||
for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
|
||||
|
||||
@@ -32,30 +32,30 @@ static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
|
||||
|
||||
void xen_smp_intr_free(unsigned int cpu)
|
||||
{
|
||||
kfree(per_cpu(xen_resched_irq, cpu).name);
|
||||
per_cpu(xen_resched_irq, cpu).name = NULL;
|
||||
if (per_cpu(xen_resched_irq, cpu).irq >= 0) {
|
||||
unbind_from_irqhandler(per_cpu(xen_resched_irq, cpu).irq, NULL);
|
||||
per_cpu(xen_resched_irq, cpu).irq = -1;
|
||||
kfree(per_cpu(xen_resched_irq, cpu).name);
|
||||
per_cpu(xen_resched_irq, cpu).name = NULL;
|
||||
}
|
||||
kfree(per_cpu(xen_callfunc_irq, cpu).name);
|
||||
per_cpu(xen_callfunc_irq, cpu).name = NULL;
|
||||
if (per_cpu(xen_callfunc_irq, cpu).irq >= 0) {
|
||||
unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu).irq, NULL);
|
||||
per_cpu(xen_callfunc_irq, cpu).irq = -1;
|
||||
kfree(per_cpu(xen_callfunc_irq, cpu).name);
|
||||
per_cpu(xen_callfunc_irq, cpu).name = NULL;
|
||||
}
|
||||
kfree(per_cpu(xen_debug_irq, cpu).name);
|
||||
per_cpu(xen_debug_irq, cpu).name = NULL;
|
||||
if (per_cpu(xen_debug_irq, cpu).irq >= 0) {
|
||||
unbind_from_irqhandler(per_cpu(xen_debug_irq, cpu).irq, NULL);
|
||||
per_cpu(xen_debug_irq, cpu).irq = -1;
|
||||
kfree(per_cpu(xen_debug_irq, cpu).name);
|
||||
per_cpu(xen_debug_irq, cpu).name = NULL;
|
||||
}
|
||||
kfree(per_cpu(xen_callfuncsingle_irq, cpu).name);
|
||||
per_cpu(xen_callfuncsingle_irq, cpu).name = NULL;
|
||||
if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) {
|
||||
unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq,
|
||||
NULL);
|
||||
per_cpu(xen_callfuncsingle_irq, cpu).irq = -1;
|
||||
kfree(per_cpu(xen_callfuncsingle_irq, cpu).name);
|
||||
per_cpu(xen_callfuncsingle_irq, cpu).name = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,9 @@ int xen_smp_intr_init(unsigned int cpu)
|
||||
char *resched_name, *callfunc_name, *debug_name;
|
||||
|
||||
resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu);
|
||||
if (!resched_name)
|
||||
goto fail_mem;
|
||||
per_cpu(xen_resched_irq, cpu).name = resched_name;
|
||||
rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR,
|
||||
cpu,
|
||||
xen_reschedule_interrupt,
|
||||
@@ -74,9 +77,11 @@ int xen_smp_intr_init(unsigned int cpu)
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_resched_irq, cpu).irq = rc;
|
||||
per_cpu(xen_resched_irq, cpu).name = resched_name;
|
||||
|
||||
callfunc_name = kasprintf(GFP_KERNEL, "callfunc%d", cpu);
|
||||
if (!callfunc_name)
|
||||
goto fail_mem;
|
||||
per_cpu(xen_callfunc_irq, cpu).name = callfunc_name;
|
||||
rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR,
|
||||
cpu,
|
||||
xen_call_function_interrupt,
|
||||
@@ -86,18 +91,27 @@ int xen_smp_intr_init(unsigned int cpu)
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_callfunc_irq, cpu).irq = rc;
|
||||
per_cpu(xen_callfunc_irq, cpu).name = callfunc_name;
|
||||
|
||||
debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
|
||||
rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt,
|
||||
IRQF_PERCPU | IRQF_NOBALANCING,
|
||||
debug_name, NULL);
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_debug_irq, cpu).irq = rc;
|
||||
per_cpu(xen_debug_irq, cpu).name = debug_name;
|
||||
if (!xen_fifo_events) {
|
||||
debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
|
||||
if (!debug_name)
|
||||
goto fail_mem;
|
||||
|
||||
per_cpu(xen_debug_irq, cpu).name = debug_name;
|
||||
rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu,
|
||||
xen_debug_interrupt,
|
||||
IRQF_PERCPU | IRQF_NOBALANCING,
|
||||
debug_name, NULL);
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_debug_irq, cpu).irq = rc;
|
||||
}
|
||||
|
||||
callfunc_name = kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu);
|
||||
if (!callfunc_name)
|
||||
goto fail_mem;
|
||||
|
||||
per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name;
|
||||
rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR,
|
||||
cpu,
|
||||
xen_call_function_single_interrupt,
|
||||
@@ -107,10 +121,11 @@ int xen_smp_intr_init(unsigned int cpu)
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_callfuncsingle_irq, cpu).irq = rc;
|
||||
per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name;
|
||||
|
||||
return 0;
|
||||
|
||||
fail_mem:
|
||||
rc = -ENOMEM;
|
||||
fail:
|
||||
xen_smp_intr_free(cpu);
|
||||
return rc;
|
||||
|
||||
@@ -96,18 +96,18 @@ asmlinkage __visible void cpu_bringup_and_idle(void)
|
||||
|
||||
void xen_smp_intr_free_pv(unsigned int cpu)
|
||||
{
|
||||
kfree(per_cpu(xen_irq_work, cpu).name);
|
||||
per_cpu(xen_irq_work, cpu).name = NULL;
|
||||
if (per_cpu(xen_irq_work, cpu).irq >= 0) {
|
||||
unbind_from_irqhandler(per_cpu(xen_irq_work, cpu).irq, NULL);
|
||||
per_cpu(xen_irq_work, cpu).irq = -1;
|
||||
kfree(per_cpu(xen_irq_work, cpu).name);
|
||||
per_cpu(xen_irq_work, cpu).name = NULL;
|
||||
}
|
||||
|
||||
kfree(per_cpu(xen_pmu_irq, cpu).name);
|
||||
per_cpu(xen_pmu_irq, cpu).name = NULL;
|
||||
if (per_cpu(xen_pmu_irq, cpu).irq >= 0) {
|
||||
unbind_from_irqhandler(per_cpu(xen_pmu_irq, cpu).irq, NULL);
|
||||
per_cpu(xen_pmu_irq, cpu).irq = -1;
|
||||
kfree(per_cpu(xen_pmu_irq, cpu).name);
|
||||
per_cpu(xen_pmu_irq, cpu).name = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +117,7 @@ int xen_smp_intr_init_pv(unsigned int cpu)
|
||||
char *callfunc_name, *pmu_name;
|
||||
|
||||
callfunc_name = kasprintf(GFP_KERNEL, "irqwork%d", cpu);
|
||||
per_cpu(xen_irq_work, cpu).name = callfunc_name;
|
||||
rc = bind_ipi_to_irqhandler(XEN_IRQ_WORK_VECTOR,
|
||||
cpu,
|
||||
xen_irq_work_interrupt,
|
||||
@@ -126,10 +127,10 @@ int xen_smp_intr_init_pv(unsigned int cpu)
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_irq_work, cpu).irq = rc;
|
||||
per_cpu(xen_irq_work, cpu).name = callfunc_name;
|
||||
|
||||
if (is_xen_pmu) {
|
||||
pmu_name = kasprintf(GFP_KERNEL, "pmu%d", cpu);
|
||||
per_cpu(xen_pmu_irq, cpu).name = pmu_name;
|
||||
rc = bind_virq_to_irqhandler(VIRQ_XENPMU, cpu,
|
||||
xen_pmu_irq_handler,
|
||||
IRQF_PERCPU|IRQF_NOBALANCING,
|
||||
@@ -137,7 +138,6 @@ int xen_smp_intr_init_pv(unsigned int cpu)
|
||||
if (rc < 0)
|
||||
goto fail;
|
||||
per_cpu(xen_pmu_irq, cpu).irq = rc;
|
||||
per_cpu(xen_pmu_irq, cpu).name = pmu_name;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -30,6 +30,8 @@ extern struct start_info *xen_start_info;
|
||||
extern struct shared_info xen_dummy_shared_info;
|
||||
extern struct shared_info *HYPERVISOR_shared_info;
|
||||
|
||||
extern bool xen_fifo_events;
|
||||
|
||||
void xen_setup_mfn_list_list(void);
|
||||
void xen_setup_shared_info(void);
|
||||
void xen_build_mfn_list_list(void);
|
||||
|
||||
@@ -1701,18 +1701,12 @@ void disk_flush_events(struct gendisk *disk, unsigned int mask)
|
||||
*/
|
||||
unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask)
|
||||
{
|
||||
const struct block_device_operations *bdops = disk->fops;
|
||||
struct disk_events *ev = disk->ev;
|
||||
unsigned int pending;
|
||||
unsigned int clearing = mask;
|
||||
|
||||
if (!ev) {
|
||||
/* for drivers still using the old ->media_changed method */
|
||||
if ((mask & DISK_EVENT_MEDIA_CHANGE) &&
|
||||
bdops->media_changed && bdops->media_changed(disk))
|
||||
return DISK_EVENT_MEDIA_CHANGE;
|
||||
if (!ev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
disk_block_events(disk);
|
||||
|
||||
|
||||
@@ -444,6 +444,11 @@ static int blkdev_roset(struct block_device *bdev, fmode_t mode,
|
||||
return -EACCES;
|
||||
if (get_user(n, (int __user *)arg))
|
||||
return -EFAULT;
|
||||
if (bdev->bd_disk->fops->set_read_only) {
|
||||
ret = bdev->bd_disk->fops->set_read_only(bdev, n);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
set_device_ro(bdev, n);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -73,6 +73,7 @@ enum opal_response_token {
|
||||
#define SHORT_ATOM_BYTE 0xBF
|
||||
#define MEDIUM_ATOM_BYTE 0xDF
|
||||
#define LONG_ATOM_BYTE 0xE3
|
||||
#define EMPTY_ATOM_BYTE 0xFF
|
||||
|
||||
#define OPAL_INVAL_PARAM 12
|
||||
#define OPAL_MANUFACTURED_INACTIVE 0x08
|
||||
|
||||
@@ -844,16 +844,20 @@ static int response_parse(const u8 *buf, size_t length,
|
||||
token_length = response_parse_medium(iter, pos);
|
||||
else if (pos[0] <= LONG_ATOM_BYTE) /* long atom */
|
||||
token_length = response_parse_long(iter, pos);
|
||||
else if (pos[0] == EMPTY_ATOM_BYTE) /* empty atom */
|
||||
token_length = 1;
|
||||
else /* TOKEN */
|
||||
token_length = response_parse_token(iter, pos);
|
||||
|
||||
if (token_length < 0)
|
||||
return token_length;
|
||||
|
||||
if (pos[0] != EMPTY_ATOM_BYTE)
|
||||
num_entries++;
|
||||
|
||||
pos += token_length;
|
||||
total -= token_length;
|
||||
iter++;
|
||||
num_entries++;
|
||||
}
|
||||
|
||||
if (num_entries == 0) {
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/net.h>
|
||||
#include <linux/rwsem.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/sched/signal.h>
|
||||
#include <linux/security.h>
|
||||
|
||||
@@ -430,12 +431,12 @@ int af_alg_make_sg(struct af_alg_sgl *sgl, struct iov_iter *iter, int len)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_make_sg);
|
||||
|
||||
void af_alg_link_sg(struct af_alg_sgl *sgl_prev, struct af_alg_sgl *sgl_new)
|
||||
static void af_alg_link_sg(struct af_alg_sgl *sgl_prev,
|
||||
struct af_alg_sgl *sgl_new)
|
||||
{
|
||||
sg_unmark_end(sgl_prev->sg + sgl_prev->npages - 1);
|
||||
sg_chain(sgl_prev->sg, sgl_prev->npages + 1, sgl_new->sg);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_link_sg);
|
||||
|
||||
void af_alg_free_sg(struct af_alg_sgl *sgl)
|
||||
{
|
||||
@@ -446,7 +447,7 @@ void af_alg_free_sg(struct af_alg_sgl *sgl)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_free_sg);
|
||||
|
||||
int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con)
|
||||
static int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con)
|
||||
{
|
||||
struct cmsghdr *cmsg;
|
||||
|
||||
@@ -485,7 +486,6 @@ int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_cmsg_send);
|
||||
|
||||
int af_alg_wait_for_completion(int err, struct af_alg_completion *completion)
|
||||
{
|
||||
@@ -520,7 +520,7 @@ EXPORT_SYMBOL_GPL(af_alg_complete);
|
||||
* @sk socket of connection to user space
|
||||
* @return: 0 upon success, < 0 upon error
|
||||
*/
|
||||
int af_alg_alloc_tsgl(struct sock *sk)
|
||||
static int af_alg_alloc_tsgl(struct sock *sk)
|
||||
{
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
struct af_alg_ctx *ctx = ask->private;
|
||||
@@ -549,7 +549,6 @@ int af_alg_alloc_tsgl(struct sock *sk)
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_alloc_tsgl);
|
||||
|
||||
/**
|
||||
* aead_count_tsgl - Count number of TX SG entries
|
||||
@@ -678,6 +677,7 @@ void af_alg_pull_tsgl(struct sock *sk, size_t used, struct scatterlist *dst,
|
||||
|
||||
if (!ctx->used)
|
||||
ctx->merge = 0;
|
||||
ctx->init = ctx->more;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_pull_tsgl);
|
||||
|
||||
@@ -686,7 +686,7 @@ EXPORT_SYMBOL_GPL(af_alg_pull_tsgl);
|
||||
*
|
||||
* @areq Request holding the TX and RX SGL
|
||||
*/
|
||||
void af_alg_free_areq_sgls(struct af_alg_async_req *areq)
|
||||
static void af_alg_free_areq_sgls(struct af_alg_async_req *areq)
|
||||
{
|
||||
struct sock *sk = areq->sk;
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
@@ -715,7 +715,6 @@ void af_alg_free_areq_sgls(struct af_alg_async_req *areq)
|
||||
sock_kfree_s(sk, tsgl, areq->tsgl_entries * sizeof(*tsgl));
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_free_areq_sgls);
|
||||
|
||||
/**
|
||||
* af_alg_wait_for_wmem - wait for availability of writable memory
|
||||
@@ -724,7 +723,7 @@ EXPORT_SYMBOL_GPL(af_alg_free_areq_sgls);
|
||||
* @flags If MSG_DONTWAIT is set, then only report if function would sleep
|
||||
* @return 0 when writable memory is available, < 0 upon error
|
||||
*/
|
||||
int af_alg_wait_for_wmem(struct sock *sk, unsigned int flags)
|
||||
static int af_alg_wait_for_wmem(struct sock *sk, unsigned int flags)
|
||||
{
|
||||
DEFINE_WAIT_FUNC(wait, woken_wake_function);
|
||||
int err = -ERESTARTSYS;
|
||||
@@ -749,7 +748,6 @@ int af_alg_wait_for_wmem(struct sock *sk, unsigned int flags)
|
||||
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_wait_for_wmem);
|
||||
|
||||
/**
|
||||
* af_alg_wmem_wakeup - wakeup caller when writable memory is available
|
||||
@@ -779,9 +777,10 @@ EXPORT_SYMBOL_GPL(af_alg_wmem_wakeup);
|
||||
*
|
||||
* @sk socket of connection to user space
|
||||
* @flags If MSG_DONTWAIT is set, then only report if function would sleep
|
||||
* @min Set to minimum request size if partial requests are allowed.
|
||||
* @return 0 when writable memory is available, < 0 upon error
|
||||
*/
|
||||
int af_alg_wait_for_data(struct sock *sk, unsigned flags)
|
||||
int af_alg_wait_for_data(struct sock *sk, unsigned flags, unsigned min)
|
||||
{
|
||||
DEFINE_WAIT_FUNC(wait, woken_wake_function);
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
@@ -799,7 +798,9 @@ int af_alg_wait_for_data(struct sock *sk, unsigned flags)
|
||||
if (signal_pending(current))
|
||||
break;
|
||||
timeout = MAX_SCHEDULE_TIMEOUT;
|
||||
if (sk_wait_event(sk, &timeout, (ctx->used || !ctx->more),
|
||||
if (sk_wait_event(sk, &timeout,
|
||||
ctx->init && (!ctx->more ||
|
||||
(min && ctx->used >= min)),
|
||||
&wait)) {
|
||||
err = 0;
|
||||
break;
|
||||
@@ -818,8 +819,7 @@ EXPORT_SYMBOL_GPL(af_alg_wait_for_data);
|
||||
*
|
||||
* @sk socket of connection to user space
|
||||
*/
|
||||
|
||||
void af_alg_data_wakeup(struct sock *sk)
|
||||
static void af_alg_data_wakeup(struct sock *sk)
|
||||
{
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
struct af_alg_ctx *ctx = ask->private;
|
||||
@@ -837,7 +837,6 @@ void af_alg_data_wakeup(struct sock *sk)
|
||||
sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT);
|
||||
rcu_read_unlock();
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_data_wakeup);
|
||||
|
||||
/**
|
||||
* af_alg_sendmsg - implementation of sendmsg system call handler
|
||||
@@ -890,10 +889,17 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
|
||||
}
|
||||
|
||||
lock_sock(sk);
|
||||
if (!ctx->more && ctx->used) {
|
||||
err = -EINVAL;
|
||||
goto unlock;
|
||||
if (ctx->init && !ctx->more) {
|
||||
if (ctx->used) {
|
||||
err = -EINVAL;
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
pr_info_once(
|
||||
"%s sent an empty control message without MSG_MORE.\n",
|
||||
current->comm);
|
||||
}
|
||||
ctx->init = true;
|
||||
|
||||
if (init) {
|
||||
ctx->enc = enc;
|
||||
|
||||
@@ -111,8 +111,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,
|
||||
size_t usedpages = 0; /* [in] RX bufs to be used from user */
|
||||
size_t processed = 0; /* [in] TX bufs to be consumed */
|
||||
|
||||
if (!ctx->used) {
|
||||
err = af_alg_wait_for_data(sk, flags);
|
||||
if (!ctx->init || ctx->more) {
|
||||
err = af_alg_wait_for_data(sk, flags, 0);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -72,8 +72,8 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
|
||||
int err = 0;
|
||||
size_t len = 0;
|
||||
|
||||
if (!ctx->used) {
|
||||
err = af_alg_wait_for_data(sk, flags);
|
||||
if (!ctx->init || (ctx->more && ctx->used < bs)) {
|
||||
err = af_alg_wait_for_data(sk, flags, bs);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -1526,6 +1526,8 @@ int acpi_processor_power_exit(struct acpi_processor *pr)
|
||||
acpi_processor_registered--;
|
||||
if (acpi_processor_registered == 0)
|
||||
cpuidle_unregister_driver(&acpi_idle_driver);
|
||||
|
||||
kfree(dev);
|
||||
}
|
||||
|
||||
pr->flags.power_setup_done = 0;
|
||||
|
||||
@@ -320,18 +320,14 @@ static int acpi_scan_device_check(struct acpi_device *adev)
|
||||
* again).
|
||||
*/
|
||||
if (adev->handler) {
|
||||
dev_warn(&adev->dev, "Already enumerated\n");
|
||||
return -EALREADY;
|
||||
dev_dbg(&adev->dev, "Already enumerated\n");
|
||||
return 0;
|
||||
}
|
||||
error = acpi_bus_scan(adev->handle);
|
||||
if (error) {
|
||||
dev_warn(&adev->dev, "Namespace scan failure\n");
|
||||
return error;
|
||||
}
|
||||
if (!adev->handler) {
|
||||
dev_warn(&adev->dev, "Enumeration failure\n");
|
||||
error = -ENODEV;
|
||||
}
|
||||
} else {
|
||||
error = acpi_scan_device_not_present(adev);
|
||||
}
|
||||
|
||||
@@ -421,13 +421,16 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu
|
||||
rcu_read_lock();
|
||||
for_each_netdev_rcu(&init_net, ifp) {
|
||||
dev_hold(ifp);
|
||||
if (!is_aoe_netif(ifp))
|
||||
goto cont;
|
||||
if (!is_aoe_netif(ifp)) {
|
||||
dev_put(ifp);
|
||||
continue;
|
||||
}
|
||||
|
||||
skb = new_skb(sizeof *h + sizeof *ch);
|
||||
if (skb == NULL) {
|
||||
printk(KERN_INFO "aoe: skb alloc failure\n");
|
||||
goto cont;
|
||||
dev_put(ifp);
|
||||
continue;
|
||||
}
|
||||
skb_put(skb, sizeof *h + sizeof *ch);
|
||||
skb->dev = ifp;
|
||||
@@ -442,9 +445,6 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu
|
||||
h->major = cpu_to_be16(aoemajor);
|
||||
h->minor = aoeminor;
|
||||
h->cmd = AOECMD_CFG;
|
||||
|
||||
cont:
|
||||
dev_put(ifp);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ tx(int id) __must_hold(&txlock)
|
||||
pr_warn("aoe: packet could not be sent on %s. %s\n",
|
||||
ifp ? ifp->name : "netif",
|
||||
"consider increasing tx_queue_len");
|
||||
dev_put(ifp);
|
||||
spin_lock_irq(&txlock);
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -144,12 +144,13 @@ config SUNXI_RSB
|
||||
|
||||
config TEGRA_ACONNECT
|
||||
tristate "Tegra ACONNECT Bus Driver"
|
||||
depends on ARCH_TEGRA_210_SOC
|
||||
depends on ARCH_TEGRA
|
||||
depends on OF && PM
|
||||
select PM_CLK
|
||||
help
|
||||
Driver for the Tegra ACONNECT bus which is used to interface with
|
||||
the devices inside the Audio Processing Engine (APE) for Tegra210.
|
||||
the devices inside the Audio Processing Engine (APE) for
|
||||
Tegra210 and later.
|
||||
|
||||
config TEGRA_GMI
|
||||
tristate "Tegra Generic Memory Interface bus driver"
|
||||
|
||||
@@ -142,7 +142,7 @@ static void hi3519_clk_unregister(struct platform_device *pdev)
|
||||
of_clk_del_provider(pdev->dev.of_node);
|
||||
|
||||
hisi_clk_unregister_gate(hi3519_gate_clks,
|
||||
ARRAY_SIZE(hi3519_mux_clks),
|
||||
ARRAY_SIZE(hi3519_gate_clks),
|
||||
crg->clk_data);
|
||||
hisi_clk_unregister_mux(hi3519_mux_clks,
|
||||
ARRAY_SIZE(hi3519_mux_clks),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2015, 2017-2018, 2022, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
@@ -33,9 +33,14 @@
|
||||
#define GMEM_CLAMP_IO_MASK BIT(0)
|
||||
|
||||
/* Wait 2^n CXO cycles between all states. Here, n=2 (4 cycles). */
|
||||
#define EN_REST_WAIT_VAL (0x2 << 20)
|
||||
#define EN_FEW_WAIT_VAL (0x8 << 16)
|
||||
#define CLK_DIS_WAIT_VAL (0x2 << 12)
|
||||
#define EN_REST_WAIT_VAL 0x2
|
||||
#define EN_FEW_WAIT_VAL 0x8
|
||||
#define CLK_DIS_WAIT_VAL 0x2
|
||||
|
||||
/* Transition delay shifts */
|
||||
#define EN_REST_WAIT_SHIFT 20
|
||||
#define EN_FEW_WAIT_SHIFT 16
|
||||
#define CLK_DIS_WAIT_SHIFT 12
|
||||
|
||||
#define RETAIN_MEM BIT(14)
|
||||
#define RETAIN_PERIPH BIT(13)
|
||||
@@ -267,7 +272,18 @@ static int gdsc_init(struct gdsc *sc)
|
||||
*/
|
||||
mask = HW_CONTROL_MASK | SW_OVERRIDE_MASK |
|
||||
EN_REST_WAIT_MASK | EN_FEW_WAIT_MASK | CLK_DIS_WAIT_MASK;
|
||||
val = EN_REST_WAIT_VAL | EN_FEW_WAIT_VAL | CLK_DIS_WAIT_VAL;
|
||||
|
||||
if (!sc->en_rest_wait_val)
|
||||
sc->en_rest_wait_val = EN_REST_WAIT_VAL;
|
||||
if (!sc->en_few_wait_val)
|
||||
sc->en_few_wait_val = EN_FEW_WAIT_VAL;
|
||||
if (!sc->clk_dis_wait_val)
|
||||
sc->clk_dis_wait_val = CLK_DIS_WAIT_VAL;
|
||||
|
||||
val = sc->en_rest_wait_val << EN_REST_WAIT_SHIFT |
|
||||
sc->en_few_wait_val << EN_FEW_WAIT_SHIFT |
|
||||
sc->clk_dis_wait_val << CLK_DIS_WAIT_SHIFT;
|
||||
|
||||
ret = regmap_update_bits(sc->regmap, sc->gdscr, mask, val);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2015, 2017-2018, 2022, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
@@ -29,6 +29,9 @@ struct reset_controller_dev;
|
||||
* @cxcs: offsets of branch registers to toggle mem/periph bits in
|
||||
* @cxc_count: number of @cxcs
|
||||
* @pwrsts: Possible powerdomain power states
|
||||
* @en_rest_wait_val: transition delay value for receiving enr ack signal
|
||||
* @en_few_wait_val: transition delay value for receiving enf ack signal
|
||||
* @clk_dis_wait_val: transition delay value for halting clock
|
||||
* @resets: ids of resets associated with this gdsc
|
||||
* @reset_count: number of @resets
|
||||
* @rcdev: reset controller
|
||||
@@ -42,6 +45,9 @@ struct gdsc {
|
||||
unsigned int clamp_io_ctrl;
|
||||
unsigned int *cxcs;
|
||||
unsigned int cxc_count;
|
||||
unsigned int en_rest_wait_val;
|
||||
unsigned int en_few_wait_val;
|
||||
unsigned int clk_dis_wait_val;
|
||||
const u8 pwrsts;
|
||||
/* Powerdomain allowable state bitfields */
|
||||
#define PWRSTS_OFF BIT(0)
|
||||
|
||||
@@ -21,14 +21,16 @@
|
||||
|
||||
static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id)
|
||||
{
|
||||
struct qcom_reset_controller *rst = to_qcom_reset_controller(rcdev);
|
||||
|
||||
rcdev->ops->assert(rcdev, id);
|
||||
udelay(1);
|
||||
udelay(rst->reset_map[id].udelay ?: 1); /* use 1 us as default */
|
||||
rcdev->ops->deassert(rcdev, id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id)
|
||||
static int qcom_reset_set_assert(struct reset_controller_dev *rcdev,
|
||||
unsigned long id, bool assert)
|
||||
{
|
||||
struct qcom_reset_controller *rst;
|
||||
const struct qcom_reset_map *map;
|
||||
@@ -36,23 +38,24 @@ qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id)
|
||||
|
||||
rst = to_qcom_reset_controller(rcdev);
|
||||
map = &rst->reset_map[id];
|
||||
mask = BIT(map->bit);
|
||||
mask = map->bitmask ? map->bitmask : BIT(map->bit);
|
||||
|
||||
return regmap_update_bits(rst->regmap, map->reg, mask, mask);
|
||||
regmap_update_bits(rst->regmap, map->reg, mask, assert ? mask : 0);
|
||||
|
||||
/* Read back the register to ensure write completion, ignore the value */
|
||||
regmap_read(rst->regmap, map->reg, &mask);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id)
|
||||
static int qcom_reset_assert(struct reset_controller_dev *rcdev, unsigned long id)
|
||||
{
|
||||
struct qcom_reset_controller *rst;
|
||||
const struct qcom_reset_map *map;
|
||||
u32 mask;
|
||||
return qcom_reset_set_assert(rcdev, id, true);
|
||||
}
|
||||
|
||||
rst = to_qcom_reset_controller(rcdev);
|
||||
map = &rst->reset_map[id];
|
||||
mask = BIT(map->bit);
|
||||
|
||||
return regmap_update_bits(rst->regmap, map->reg, mask, 0);
|
||||
static int qcom_reset_deassert(struct reset_controller_dev *rcdev, unsigned long id)
|
||||
{
|
||||
return qcom_reset_set_assert(rcdev, id, false);
|
||||
}
|
||||
|
||||
const struct reset_control_ops qcom_reset_ops = {
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
struct qcom_reset_map {
|
||||
unsigned int reg;
|
||||
u8 bit;
|
||||
u8 udelay;
|
||||
u32 bitmask;
|
||||
};
|
||||
|
||||
struct regmap;
|
||||
|
||||
@@ -513,7 +513,19 @@ static void bm_work(struct work_struct *work)
|
||||
fw_notice(card, "phy config: new root=%x, gap_count=%d\n",
|
||||
new_root_id, gap_count);
|
||||
fw_send_phy_config(card, new_root_id, generation, gap_count);
|
||||
reset_bus(card, true);
|
||||
/*
|
||||
* Where possible, use a short bus reset to minimize
|
||||
* disruption to isochronous transfers. But in the event
|
||||
* of a gap count inconsistency, use a long bus reset.
|
||||
*
|
||||
* As noted in 1394a 8.4.6.2, nodes on a mixed 1394/1394a bus
|
||||
* may set different gap counts after a bus reset. On a mixed
|
||||
* 1394/1394a bus, a short bus reset can get doubled. Some
|
||||
* nodes may treat the double reset as one bus reset and others
|
||||
* may treat it as two, causing a gap count inconsistency
|
||||
* again. Using a long bus reset prevents this.
|
||||
*/
|
||||
reset_bus(card, card->gap_count != 0);
|
||||
/* Will allocate broadcast channel after the reset. */
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -306,7 +306,7 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr,
|
||||
DEBUG("IMM 0x%02X\n", val);
|
||||
return val;
|
||||
}
|
||||
return 0;
|
||||
break;
|
||||
case ATOM_ARG_PLL:
|
||||
idx = U8(*ptr);
|
||||
(*ptr)++;
|
||||
|
||||
@@ -78,11 +78,13 @@ static void mtk_drm_crtc_finish_page_flip(struct mtk_drm_crtc *mtk_crtc)
|
||||
struct drm_crtc *crtc = &mtk_crtc->base;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&crtc->dev->event_lock, flags);
|
||||
drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
|
||||
drm_crtc_vblank_put(crtc);
|
||||
mtk_crtc->event = NULL;
|
||||
spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
|
||||
if (mtk_crtc->event) {
|
||||
spin_lock_irqsave(&crtc->dev->event_lock, flags);
|
||||
drm_crtc_send_vblank_event(crtc, mtk_crtc->event);
|
||||
drm_crtc_vblank_put(crtc);
|
||||
mtk_crtc->event = NULL;
|
||||
spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
|
||||
}
|
||||
}
|
||||
|
||||
static void mtk_drm_finish_page_flip(struct mtk_drm_crtc *mtk_crtc)
|
||||
|
||||
@@ -70,8 +70,8 @@
|
||||
#define DSI_PS_WC 0x3fff
|
||||
#define DSI_PS_SEL (3 << 16)
|
||||
#define PACKED_PS_16BIT_RGB565 (0 << 16)
|
||||
#define LOOSELY_PS_18BIT_RGB666 (1 << 16)
|
||||
#define PACKED_PS_18BIT_RGB666 (2 << 16)
|
||||
#define PACKED_PS_18BIT_RGB666 (1 << 16)
|
||||
#define LOOSELY_PS_24BIT_RGB666 (2 << 16)
|
||||
#define PACKED_PS_24BIT_RGB888 (3 << 16)
|
||||
|
||||
#define DSI_VSA_NL 0x20
|
||||
@@ -327,10 +327,10 @@ static void mtk_dsi_ps_control_vact(struct mtk_dsi *dsi)
|
||||
ps_bpp_mode |= PACKED_PS_24BIT_RGB888;
|
||||
break;
|
||||
case MIPI_DSI_FMT_RGB666:
|
||||
ps_bpp_mode |= PACKED_PS_18BIT_RGB666;
|
||||
ps_bpp_mode |= LOOSELY_PS_24BIT_RGB666;
|
||||
break;
|
||||
case MIPI_DSI_FMT_RGB666_PACKED:
|
||||
ps_bpp_mode |= LOOSELY_PS_18BIT_RGB666;
|
||||
ps_bpp_mode |= PACKED_PS_18BIT_RGB666;
|
||||
break;
|
||||
case MIPI_DSI_FMT_RGB565:
|
||||
ps_bpp_mode |= PACKED_PS_16BIT_RGB565;
|
||||
@@ -381,7 +381,7 @@ static void mtk_dsi_ps_control(struct mtk_dsi *dsi)
|
||||
dsi_tmp_buf_bpp = 3;
|
||||
break;
|
||||
case MIPI_DSI_FMT_RGB666:
|
||||
tmp_reg = LOOSELY_PS_18BIT_RGB666;
|
||||
tmp_reg = LOOSELY_PS_24BIT_RGB666;
|
||||
dsi_tmp_buf_bpp = 3;
|
||||
break;
|
||||
case MIPI_DSI_FMT_RGB666_PACKED:
|
||||
|
||||
@@ -823,7 +823,7 @@ int ni_init_microcode(struct radeon_device *rdev)
|
||||
err = 0;
|
||||
} else if (rdev->smc_fw->size != smc_req_size) {
|
||||
pr_err("ni_mc: Bogus length %zu in firmware \"%s\"\n",
|
||||
rdev->mc_fw->size, fw_name);
|
||||
rdev->smc_fw->size, fw_name);
|
||||
err = -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,7 +407,7 @@ static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi,
|
||||
hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_L, value & 0xFF);
|
||||
hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HBLANK_H, (value >> 8) & 0xFF);
|
||||
|
||||
value = mode->hsync_start - mode->hdisplay;
|
||||
value = mode->htotal - mode->hsync_start;
|
||||
hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_L, value & 0xFF);
|
||||
hdmi_writeb(hdmi, HDMI_VIDEO_EXT_HDELAY_H, (value >> 8) & 0xFF);
|
||||
|
||||
@@ -422,7 +422,7 @@ static int inno_hdmi_config_video_timing(struct inno_hdmi *hdmi,
|
||||
value = mode->vtotal - mode->vdisplay;
|
||||
hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VBLANK, value & 0xFF);
|
||||
|
||||
value = mode->vsync_start - mode->vdisplay;
|
||||
value = mode->vtotal - mode->vsync_start;
|
||||
hdmi_writeb(hdmi, HDMI_VIDEO_EXT_VDELAY, value & 0xFF);
|
||||
|
||||
value = mode->vsync_end - mode->vsync_start;
|
||||
|
||||
@@ -1476,9 +1476,11 @@ static int tegra_dsi_ganged_probe(struct tegra_dsi *dsi)
|
||||
np = of_parse_phandle(dsi->dev->of_node, "nvidia,ganged-mode", 0);
|
||||
if (np) {
|
||||
struct platform_device *gangster = of_find_device_by_node(np);
|
||||
of_node_put(np);
|
||||
if (!gangster)
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
dsi->slave = platform_get_drvdata(gangster);
|
||||
of_node_put(np);
|
||||
|
||||
if (!dsi->slave) {
|
||||
put_device(&gangster->dev);
|
||||
@@ -1526,48 +1528,58 @@ static int tegra_dsi_probe(struct platform_device *pdev)
|
||||
|
||||
if (!pdev->dev.pm_domain) {
|
||||
dsi->rst = devm_reset_control_get(&pdev->dev, "dsi");
|
||||
if (IS_ERR(dsi->rst))
|
||||
return PTR_ERR(dsi->rst);
|
||||
if (IS_ERR(dsi->rst)) {
|
||||
err = PTR_ERR(dsi->rst);
|
||||
goto remove;
|
||||
}
|
||||
}
|
||||
|
||||
dsi->clk = devm_clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(dsi->clk)) {
|
||||
dev_err(&pdev->dev, "cannot get DSI clock\n");
|
||||
return PTR_ERR(dsi->clk);
|
||||
err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk),
|
||||
"cannot get DSI clock\n");
|
||||
goto remove;
|
||||
}
|
||||
|
||||
dsi->clk_lp = devm_clk_get(&pdev->dev, "lp");
|
||||
if (IS_ERR(dsi->clk_lp)) {
|
||||
dev_err(&pdev->dev, "cannot get low-power clock\n");
|
||||
return PTR_ERR(dsi->clk_lp);
|
||||
err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_lp),
|
||||
"cannot get low-power clock\n");
|
||||
goto remove;
|
||||
}
|
||||
|
||||
dsi->clk_parent = devm_clk_get(&pdev->dev, "parent");
|
||||
if (IS_ERR(dsi->clk_parent)) {
|
||||
dev_err(&pdev->dev, "cannot get parent clock\n");
|
||||
return PTR_ERR(dsi->clk_parent);
|
||||
err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->clk_parent),
|
||||
"cannot get parent clock\n");
|
||||
goto remove;
|
||||
}
|
||||
|
||||
dsi->vdd = devm_regulator_get(&pdev->dev, "avdd-dsi-csi");
|
||||
if (IS_ERR(dsi->vdd)) {
|
||||
dev_err(&pdev->dev, "cannot get VDD supply\n");
|
||||
return PTR_ERR(dsi->vdd);
|
||||
err = dev_err_probe(&pdev->dev, PTR_ERR(dsi->vdd),
|
||||
"cannot get VDD supply\n");
|
||||
goto remove;
|
||||
}
|
||||
|
||||
err = tegra_dsi_setup_clocks(dsi);
|
||||
if (err < 0) {
|
||||
dev_err(&pdev->dev, "cannot setup clocks\n");
|
||||
return err;
|
||||
goto remove;
|
||||
}
|
||||
|
||||
regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
dsi->regs = devm_ioremap_resource(&pdev->dev, regs);
|
||||
if (IS_ERR(dsi->regs))
|
||||
return PTR_ERR(dsi->regs);
|
||||
if (IS_ERR(dsi->regs)) {
|
||||
err = PTR_ERR(dsi->regs);
|
||||
goto remove;
|
||||
}
|
||||
|
||||
dsi->mipi = tegra_mipi_request(&pdev->dev);
|
||||
if (IS_ERR(dsi->mipi))
|
||||
return PTR_ERR(dsi->mipi);
|
||||
dsi->mipi = tegra_mipi_request(&pdev->dev, pdev->dev.of_node);
|
||||
if (IS_ERR(dsi->mipi)) {
|
||||
err = PTR_ERR(dsi->mipi);
|
||||
goto remove;
|
||||
}
|
||||
|
||||
dsi->host.ops = &tegra_dsi_host_ops;
|
||||
dsi->host.dev = &pdev->dev;
|
||||
@@ -1595,9 +1607,12 @@ static int tegra_dsi_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
unregister:
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
mipi_dsi_host_unregister(&dsi->host);
|
||||
mipi_free:
|
||||
tegra_mipi_free(dsi->mipi);
|
||||
remove:
|
||||
tegra_output_remove(&dsi->output);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
@@ -179,6 +179,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
|
||||
|
||||
if (gem->size < size) {
|
||||
err = -EINVAL;
|
||||
drm_gem_object_put(gem);
|
||||
goto unreference;
|
||||
}
|
||||
|
||||
|
||||
@@ -206,9 +206,9 @@ static int tegra_mipi_power_down(struct tegra_mipi *mipi)
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct tegra_mipi_device *tegra_mipi_request(struct device *device)
|
||||
struct tegra_mipi_device *tegra_mipi_request(struct device *device,
|
||||
struct device_node *np)
|
||||
{
|
||||
struct device_node *np = device->of_node;
|
||||
struct tegra_mipi_device *dev;
|
||||
struct of_phandle_args args;
|
||||
int err;
|
||||
|
||||
@@ -328,12 +328,10 @@ static int gpio_keys_polled_probe(struct platform_device *pdev)
|
||||
|
||||
error = devm_gpio_request_one(dev, button->gpio,
|
||||
flags, button->desc ? : DRV_NAME);
|
||||
if (error) {
|
||||
dev_err(dev,
|
||||
"unable to claim gpio %u, err=%d\n",
|
||||
button->gpio, error);
|
||||
return error;
|
||||
}
|
||||
if (error)
|
||||
return dev_err_probe(dev, error,
|
||||
"unable to claim gpio %u\n",
|
||||
button->gpio);
|
||||
|
||||
bdata->gpiod = gpio_to_desc(button->gpio);
|
||||
if (!bdata->gpiod) {
|
||||
|
||||
@@ -1712,6 +1712,9 @@ static int __init iommu_init_pci(struct amd_iommu *iommu)
|
||||
/* Prevent binding other PCI device drivers to IOMMU devices */
|
||||
iommu->dev->match_driver = false;
|
||||
|
||||
/* ACPI _PRT won't have an IRQ for IOMMU */
|
||||
iommu->dev->irq_managed = 1;
|
||||
|
||||
pci_read_config_dword(iommu->dev, cap_ptr + MMIO_CAP_HDR_OFFSET,
|
||||
&iommu->cap);
|
||||
pci_read_config_dword(iommu->dev, cap_ptr + MMIO_RANGE_OFFSET,
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
struct convert_context {
|
||||
struct completion restart;
|
||||
struct bio *bio_in;
|
||||
struct bio *bio_out;
|
||||
struct bvec_iter iter_in;
|
||||
struct bio *bio_out;
|
||||
struct bvec_iter iter_out;
|
||||
u64 cc_sector;
|
||||
atomic_t cc_pending;
|
||||
u64 cc_sector;
|
||||
union {
|
||||
struct skcipher_request *req;
|
||||
struct aead_request *req_aead;
|
||||
|
||||
@@ -3248,14 +3248,14 @@ static int raid_map(struct dm_target *ti, struct bio *bio)
|
||||
struct mddev *mddev = &rs->md;
|
||||
|
||||
/*
|
||||
* If we're reshaping to add disk(s)), ti->len and
|
||||
* If we're reshaping to add disk(s), ti->len and
|
||||
* mddev->array_sectors will differ during the process
|
||||
* (ti->len > mddev->array_sectors), so we have to requeue
|
||||
* bios with addresses > mddev->array_sectors here or
|
||||
* there will occur accesses past EOD of the component
|
||||
* data images thus erroring the raid set.
|
||||
*/
|
||||
if (unlikely(bio_end_sector(bio) > mddev->array_sectors))
|
||||
if (unlikely(bio_has_data(bio) && bio_end_sector(bio) > mddev->array_sectors))
|
||||
return DM_MAPIO_REQUEUE;
|
||||
|
||||
md_handle_request(mddev, bio);
|
||||
|
||||
@@ -72,11 +72,11 @@ struct dm_verity_io {
|
||||
/* original value of bio->bi_end_io */
|
||||
bio_end_io_t *orig_bi_end_io;
|
||||
|
||||
struct bvec_iter iter;
|
||||
|
||||
sector_t block;
|
||||
unsigned n_blocks;
|
||||
|
||||
struct bvec_iter iter;
|
||||
|
||||
struct work_struct work;
|
||||
|
||||
/*
|
||||
|
||||
@@ -2774,6 +2774,9 @@ static void __dm_internal_suspend(struct mapped_device *md, unsigned suspend_fla
|
||||
|
||||
static void __dm_internal_resume(struct mapped_device *md)
|
||||
{
|
||||
int r;
|
||||
struct dm_table *map;
|
||||
|
||||
BUG_ON(!md->internal_suspend_count);
|
||||
|
||||
if (--md->internal_suspend_count)
|
||||
@@ -2782,12 +2785,23 @@ static void __dm_internal_resume(struct mapped_device *md)
|
||||
if (dm_suspended_md(md))
|
||||
goto done; /* resume from nested suspend */
|
||||
|
||||
/*
|
||||
* NOTE: existing callers don't need to call dm_table_resume_targets
|
||||
* (which may fail -- so best to avoid it for now by passing NULL map)
|
||||
*/
|
||||
(void) __dm_resume(md, NULL);
|
||||
|
||||
map = rcu_dereference_protected(md->map, lockdep_is_held(&md->suspend_lock));
|
||||
r = __dm_resume(md, map);
|
||||
if (r) {
|
||||
/*
|
||||
* If a preresume method of some target failed, we are in a
|
||||
* tricky situation. We can't return an error to the caller. We
|
||||
* can't fake success because then the "resume" and
|
||||
* "postsuspend" methods would not be paired correctly, and it
|
||||
* would break various targets, for example it would cause list
|
||||
* corruption in the "origin" target.
|
||||
*
|
||||
* So, we fake normal suspend here, to make sure that the
|
||||
* "resume" and "postsuspend" methods will be paired correctly.
|
||||
*/
|
||||
DMERR("Preresume method failed: %d", r);
|
||||
set_bit(DMF_SUSPENDED, &md->flags);
|
||||
}
|
||||
done:
|
||||
clear_bit(DMF_SUSPENDED_INTERNALLY, &md->flags);
|
||||
smp_mb__after_atomic();
|
||||
|
||||
@@ -5430,6 +5430,7 @@ static int md_alloc(dev_t dev, char *name)
|
||||
* remove it now.
|
||||
*/
|
||||
disk->flags |= GENHD_FL_EXT_DEVT;
|
||||
disk->events |= DISK_EVENT_MEDIA_CHANGE;
|
||||
mddev->gendisk = disk;
|
||||
add_disk(disk);
|
||||
|
||||
@@ -5857,7 +5858,15 @@ static void md_clean(struct mddev *mddev)
|
||||
mddev->persistent = 0;
|
||||
mddev->level = LEVEL_NONE;
|
||||
mddev->clevel[0] = 0;
|
||||
mddev->flags = 0;
|
||||
/*
|
||||
* Don't clear MD_CLOSING, or mddev can be opened again.
|
||||
* 'hold_active != 0' means mddev is still in the creation
|
||||
* process and will be used later.
|
||||
*/
|
||||
if (mddev->hold_active)
|
||||
mddev->flags = 0;
|
||||
else
|
||||
mddev->flags &= BIT_ULL_MASK(MD_CLOSING);
|
||||
mddev->sb_flags = 0;
|
||||
mddev->ro = 0;
|
||||
mddev->metadata_type[0] = 0;
|
||||
@@ -7142,7 +7151,6 @@ static inline bool md_ioctl_valid(unsigned int cmd)
|
||||
{
|
||||
switch (cmd) {
|
||||
case ADD_NEW_DISK:
|
||||
case BLKROSET:
|
||||
case GET_ARRAY_INFO:
|
||||
case GET_BITMAP_FILE:
|
||||
case GET_DISK_INFO:
|
||||
@@ -7170,8 +7178,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
int err = 0;
|
||||
void __user *argp = (void __user *)arg;
|
||||
struct mddev *mddev = NULL;
|
||||
int ro;
|
||||
bool did_set_md_closing = false;
|
||||
|
||||
if (!md_ioctl_valid(cmd))
|
||||
return -ENOTTY;
|
||||
@@ -7266,7 +7272,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
err = -EBUSY;
|
||||
goto out;
|
||||
}
|
||||
did_set_md_closing = true;
|
||||
mutex_unlock(&mddev->open_mutex);
|
||||
sync_blockdev(bdev);
|
||||
}
|
||||
@@ -7361,35 +7366,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
goto unlock;
|
||||
}
|
||||
break;
|
||||
|
||||
case BLKROSET:
|
||||
if (get_user(ro, (int __user *)(arg))) {
|
||||
err = -EFAULT;
|
||||
goto unlock;
|
||||
}
|
||||
err = -EINVAL;
|
||||
|
||||
/* if the bdev is going readonly the value of mddev->ro
|
||||
* does not matter, no writes are coming
|
||||
*/
|
||||
if (ro)
|
||||
goto unlock;
|
||||
|
||||
/* are we are already prepared for writes? */
|
||||
if (mddev->ro != 1)
|
||||
goto unlock;
|
||||
|
||||
/* transitioning to readauto need only happen for
|
||||
* arrays that call md_write_start
|
||||
*/
|
||||
if (mddev->pers) {
|
||||
err = restart_array(mddev);
|
||||
if (err == 0) {
|
||||
mddev->ro = 2;
|
||||
set_disk_ro(mddev->gendisk, 0);
|
||||
}
|
||||
}
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -7459,7 +7435,7 @@ unlock:
|
||||
mddev->hold_active = 0;
|
||||
mddev_unlock(mddev);
|
||||
out:
|
||||
if(did_set_md_closing)
|
||||
if (cmd == STOP_ARRAY_RO || (err && cmd == STOP_ARRAY))
|
||||
clear_bit(MD_CLOSING, &mddev->flags);
|
||||
return err;
|
||||
}
|
||||
@@ -7483,6 +7459,36 @@ static int md_compat_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
}
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
||||
static int md_set_read_only(struct block_device *bdev, bool ro)
|
||||
{
|
||||
struct mddev *mddev = bdev->bd_disk->private_data;
|
||||
int err;
|
||||
|
||||
err = mddev_lock(mddev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (!mddev->raid_disks && !mddev->external) {
|
||||
err = -ENODEV;
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
/*
|
||||
* Transitioning to read-auto need only happen for arrays that call
|
||||
* md_write_start and which are not ready for writes yet.
|
||||
*/
|
||||
if (!ro && mddev->ro == 1 && mddev->pers) {
|
||||
err = restart_array(mddev);
|
||||
if (err)
|
||||
goto out_unlock;
|
||||
mddev->ro = 2;
|
||||
}
|
||||
|
||||
out_unlock:
|
||||
mddev_unlock(mddev);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int md_open(struct block_device *bdev, fmode_t mode)
|
||||
{
|
||||
/*
|
||||
@@ -7536,20 +7542,17 @@ static void md_release(struct gendisk *disk, fmode_t mode)
|
||||
mddev_put(mddev);
|
||||
}
|
||||
|
||||
static int md_media_changed(struct gendisk *disk)
|
||||
{
|
||||
struct mddev *mddev = disk->private_data;
|
||||
|
||||
return mddev->changed;
|
||||
}
|
||||
|
||||
static int md_revalidate(struct gendisk *disk)
|
||||
static unsigned int md_check_events(struct gendisk *disk, unsigned int clearing)
|
||||
{
|
||||
struct mddev *mddev = disk->private_data;
|
||||
unsigned int ret = 0;
|
||||
|
||||
if (mddev->changed)
|
||||
ret = DISK_EVENT_MEDIA_CHANGE;
|
||||
mddev->changed = 0;
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct block_device_operations md_fops =
|
||||
{
|
||||
.owner = THIS_MODULE,
|
||||
@@ -7560,8 +7563,8 @@ static const struct block_device_operations md_fops =
|
||||
.compat_ioctl = md_compat_ioctl,
|
||||
#endif
|
||||
.getgeo = md_getgeo,
|
||||
.media_changed = md_media_changed,
|
||||
.revalidate_disk= md_revalidate,
|
||||
.check_events = md_check_events,
|
||||
.set_read_only = md_set_read_only,
|
||||
};
|
||||
|
||||
static int md_thread(void *arg)
|
||||
|
||||
@@ -125,36 +125,68 @@ int tpg_alloc(struct tpg_data *tpg, unsigned max_w)
|
||||
{
|
||||
unsigned pat;
|
||||
unsigned plane;
|
||||
int ret = 0;
|
||||
|
||||
tpg->max_line_width = max_w;
|
||||
for (pat = 0; pat < TPG_MAX_PAT_LINES; pat++) {
|
||||
for (plane = 0; plane < TPG_MAX_PLANES; plane++) {
|
||||
unsigned pixelsz = plane ? 2 : 4;
|
||||
|
||||
tpg->lines[pat][plane] = vzalloc(array3_size(max_w, 2, pixelsz));
|
||||
if (!tpg->lines[pat][plane])
|
||||
return -ENOMEM;
|
||||
tpg->lines[pat][plane] = vzalloc(max_w * 2 * pixelsz);
|
||||
if (!tpg->lines[pat][plane]) {
|
||||
ret = -ENOMEM;
|
||||
goto free_lines;
|
||||
}
|
||||
if (plane == 0)
|
||||
continue;
|
||||
tpg->downsampled_lines[pat][plane] = vzalloc(array3_size(max_w, 2, pixelsz));
|
||||
if (!tpg->downsampled_lines[pat][plane])
|
||||
return -ENOMEM;
|
||||
tpg->downsampled_lines[pat][plane] = vzalloc(max_w * 2 * pixelsz);
|
||||
if (!tpg->downsampled_lines[pat][plane]) {
|
||||
ret = -ENOMEM;
|
||||
goto free_lines;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (plane = 0; plane < TPG_MAX_PLANES; plane++) {
|
||||
unsigned pixelsz = plane ? 2 : 4;
|
||||
|
||||
tpg->contrast_line[plane] = vzalloc(array_size(pixelsz, max_w));
|
||||
if (!tpg->contrast_line[plane])
|
||||
return -ENOMEM;
|
||||
tpg->black_line[plane] = vzalloc(array_size(pixelsz, max_w));
|
||||
if (!tpg->black_line[plane])
|
||||
return -ENOMEM;
|
||||
tpg->random_line[plane] = vzalloc(array3_size(max_w, 2, pixelsz));
|
||||
if (!tpg->random_line[plane])
|
||||
return -ENOMEM;
|
||||
tpg->contrast_line[plane] = vzalloc(max_w * pixelsz);
|
||||
if (!tpg->contrast_line[plane]) {
|
||||
ret = -ENOMEM;
|
||||
goto free_contrast_line;
|
||||
}
|
||||
tpg->black_line[plane] = vzalloc(max_w * pixelsz);
|
||||
if (!tpg->black_line[plane]) {
|
||||
ret = -ENOMEM;
|
||||
goto free_contrast_line;
|
||||
}
|
||||
tpg->random_line[plane] = vzalloc(max_w * 2 * pixelsz);
|
||||
if (!tpg->random_line[plane]) {
|
||||
ret = -ENOMEM;
|
||||
goto free_contrast_line;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
free_contrast_line:
|
||||
for (plane = 0; plane < TPG_MAX_PLANES; plane++) {
|
||||
vfree(tpg->contrast_line[plane]);
|
||||
vfree(tpg->black_line[plane]);
|
||||
vfree(tpg->random_line[plane]);
|
||||
tpg->contrast_line[plane] = NULL;
|
||||
tpg->black_line[plane] = NULL;
|
||||
tpg->random_line[plane] = NULL;
|
||||
}
|
||||
free_lines:
|
||||
for (pat = 0; pat < TPG_MAX_PAT_LINES; pat++)
|
||||
for (plane = 0; plane < TPG_MAX_PLANES; plane++) {
|
||||
vfree(tpg->lines[pat][plane]);
|
||||
tpg->lines[pat][plane] = NULL;
|
||||
if (plane == 0)
|
||||
continue;
|
||||
vfree(tpg->downsampled_lines[pat][plane]);
|
||||
tpg->downsampled_lines[pat][plane] = NULL;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(tpg_alloc);
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <media/tuner.h>
|
||||
|
||||
static DEFINE_MUTEX(dvbdev_mutex);
|
||||
static LIST_HEAD(dvbdevfops_list);
|
||||
static int dvbdev_debug;
|
||||
|
||||
module_param(dvbdev_debug, int, 0644);
|
||||
@@ -51,8 +52,15 @@ static LIST_HEAD(dvb_adapter_list);
|
||||
static DEFINE_MUTEX(dvbdev_register_lock);
|
||||
|
||||
static const char * const dnames[] = {
|
||||
"video", "audio", "sec", "frontend", "demux", "dvr", "ca",
|
||||
"net", "osd"
|
||||
[DVB_DEVICE_VIDEO] = "video",
|
||||
[DVB_DEVICE_AUDIO] = "audio",
|
||||
[DVB_DEVICE_SEC] = "sec",
|
||||
[DVB_DEVICE_FRONTEND] = "frontend",
|
||||
[DVB_DEVICE_DEMUX] = "demux",
|
||||
[DVB_DEVICE_DVR] = "dvr",
|
||||
[DVB_DEVICE_CA] = "ca",
|
||||
[DVB_DEVICE_NET] = "net",
|
||||
[DVB_DEVICE_OSD] = "osd"
|
||||
};
|
||||
|
||||
#ifdef CONFIG_DVB_DYNAMIC_MINORS
|
||||
@@ -60,7 +68,24 @@ static const char * const dnames[] = {
|
||||
#define DVB_MAX_IDS MAX_DVB_MINORS
|
||||
#else
|
||||
#define DVB_MAX_IDS 4
|
||||
#define nums2minor(num, type, id) ((num << 6) | (id << 4) | type)
|
||||
|
||||
static int nums2minor(int num, enum dvb_device_type type, int id)
|
||||
{
|
||||
int n = (num << 6) | (id << 4);
|
||||
|
||||
switch (type) {
|
||||
case DVB_DEVICE_VIDEO: return n;
|
||||
case DVB_DEVICE_AUDIO: return n | 1;
|
||||
case DVB_DEVICE_SEC: return n | 2;
|
||||
case DVB_DEVICE_FRONTEND: return n | 3;
|
||||
case DVB_DEVICE_DEMUX: return n | 4;
|
||||
case DVB_DEVICE_DVR: return n | 5;
|
||||
case DVB_DEVICE_CA: return n | 6;
|
||||
case DVB_DEVICE_NET: return n | 7;
|
||||
case DVB_DEVICE_OSD: return n | 8;
|
||||
}
|
||||
}
|
||||
|
||||
#define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*64)
|
||||
#endif
|
||||
|
||||
@@ -435,18 +460,19 @@ static int dvb_register_media_device(struct dvb_device *dvbdev,
|
||||
}
|
||||
|
||||
int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
|
||||
const struct dvb_device *template, void *priv, int type,
|
||||
int demux_sink_pads)
|
||||
const struct dvb_device *template, void *priv,
|
||||
enum dvb_device_type type, int demux_sink_pads)
|
||||
{
|
||||
struct dvb_device *dvbdev;
|
||||
struct file_operations *dvbdevfops;
|
||||
struct file_operations *dvbdevfops = NULL;
|
||||
struct dvbdevfops_node *node = NULL, *new_node = NULL;
|
||||
struct device *clsdev;
|
||||
int minor;
|
||||
int id, ret;
|
||||
|
||||
mutex_lock(&dvbdev_register_lock);
|
||||
|
||||
if ((id = dvbdev_get_free_id (adap, type)) < 0){
|
||||
if ((id = dvbdev_get_free_id (adap, type)) < 0) {
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
*pdvbdev = NULL;
|
||||
pr_err("%s: couldn't find free device id\n", __func__);
|
||||
@@ -454,18 +480,47 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
|
||||
}
|
||||
|
||||
*pdvbdev = dvbdev = kzalloc(sizeof(*dvbdev), GFP_KERNEL);
|
||||
|
||||
if (!dvbdev){
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
dvbdevfops = kzalloc(sizeof(struct file_operations), GFP_KERNEL);
|
||||
/*
|
||||
* When a device of the same type is probe()d more than once,
|
||||
* the first allocated fops are used. This prevents memory leaks
|
||||
* that can occur when the same device is probe()d repeatedly.
|
||||
*/
|
||||
list_for_each_entry(node, &dvbdevfops_list, list_head) {
|
||||
if (node->fops->owner == adap->module &&
|
||||
node->type == type &&
|
||||
node->template == template) {
|
||||
dvbdevfops = node->fops;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!dvbdevfops){
|
||||
kfree (dvbdev);
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return -ENOMEM;
|
||||
if (dvbdevfops == NULL) {
|
||||
dvbdevfops = kmemdup(template->fops, sizeof(*dvbdevfops), GFP_KERNEL);
|
||||
if (!dvbdevfops) {
|
||||
kfree(dvbdev);
|
||||
*pdvbdev = NULL;
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
new_node = kzalloc(sizeof(struct dvbdevfops_node), GFP_KERNEL);
|
||||
if (!new_node) {
|
||||
kfree(dvbdevfops);
|
||||
kfree(dvbdev);
|
||||
*pdvbdev = NULL;
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
new_node->fops = dvbdevfops;
|
||||
new_node->type = type;
|
||||
new_node->template = template;
|
||||
list_add_tail (&new_node->list_head, &dvbdevfops_list);
|
||||
}
|
||||
|
||||
memcpy(dvbdev, template, sizeof(struct dvb_device));
|
||||
@@ -476,21 +531,22 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
|
||||
dvbdev->priv = priv;
|
||||
dvbdev->fops = dvbdevfops;
|
||||
init_waitqueue_head (&dvbdev->wait_queue);
|
||||
|
||||
memcpy(dvbdevfops, template->fops, sizeof(struct file_operations));
|
||||
dvbdevfops->owner = adap->module;
|
||||
|
||||
list_add_tail (&dvbdev->list_head, &adap->device_list);
|
||||
|
||||
down_write(&minor_rwsem);
|
||||
#ifdef CONFIG_DVB_DYNAMIC_MINORS
|
||||
for (minor = 0; minor < MAX_DVB_MINORS; minor++)
|
||||
if (dvb_minors[minor] == NULL)
|
||||
break;
|
||||
|
||||
if (minor == MAX_DVB_MINORS) {
|
||||
kfree(dvbdevfops);
|
||||
if (new_node) {
|
||||
list_del (&new_node->list_head);
|
||||
kfree(dvbdevfops);
|
||||
kfree(new_node);
|
||||
}
|
||||
list_del (&dvbdev->list_head);
|
||||
kfree(dvbdev);
|
||||
*pdvbdev = NULL;
|
||||
up_write(&minor_rwsem);
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return -EINVAL;
|
||||
@@ -498,37 +554,49 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
|
||||
#else
|
||||
minor = nums2minor(adap->num, type, id);
|
||||
#endif
|
||||
|
||||
dvbdev->minor = minor;
|
||||
dvb_minors[minor] = dvb_device_get(dvbdev);
|
||||
up_write(&minor_rwsem);
|
||||
|
||||
ret = dvb_register_media_device(dvbdev, type, minor, demux_sink_pads);
|
||||
if (ret) {
|
||||
pr_err("%s: dvb_register_media_device failed to create the mediagraph\n",
|
||||
__func__);
|
||||
|
||||
if (new_node) {
|
||||
list_del (&new_node->list_head);
|
||||
kfree(dvbdevfops);
|
||||
kfree(new_node);
|
||||
}
|
||||
dvb_media_device_free(dvbdev);
|
||||
kfree(dvbdevfops);
|
||||
list_del (&dvbdev->list_head);
|
||||
kfree(dvbdev);
|
||||
up_write(&minor_rwsem);
|
||||
*pdvbdev = NULL;
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
|
||||
clsdev = device_create(dvb_class, adap->device,
|
||||
MKDEV(DVB_MAJOR, minor),
|
||||
dvbdev, "dvb%d.%s%d", adap->num, dnames[type], id);
|
||||
if (IS_ERR(clsdev)) {
|
||||
pr_err("%s: failed to create device dvb%d.%s%d (%ld)\n",
|
||||
__func__, adap->num, dnames[type], id, PTR_ERR(clsdev));
|
||||
if (new_node) {
|
||||
list_del (&new_node->list_head);
|
||||
kfree(dvbdevfops);
|
||||
kfree(new_node);
|
||||
}
|
||||
dvb_media_device_free(dvbdev);
|
||||
list_del (&dvbdev->list_head);
|
||||
kfree(dvbdev);
|
||||
*pdvbdev = NULL;
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return PTR_ERR(clsdev);
|
||||
}
|
||||
|
||||
dprintk("DVB: register adapter%d/%s%d @ minor: %i (0x%02x)\n",
|
||||
adap->num, dnames[type], id, minor, minor);
|
||||
|
||||
mutex_unlock(&dvbdev_register_lock);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(dvb_register_device);
|
||||
@@ -557,7 +625,6 @@ static void dvb_free_device(struct kref *ref)
|
||||
{
|
||||
struct dvb_device *dvbdev = container_of(ref, struct dvb_device, ref);
|
||||
|
||||
kfree (dvbdev->fops);
|
||||
kfree (dvbdev);
|
||||
}
|
||||
|
||||
@@ -996,9 +1063,17 @@ error:
|
||||
|
||||
static void __exit exit_dvbdev(void)
|
||||
{
|
||||
struct dvbdevfops_node *node, *next;
|
||||
|
||||
class_destroy(dvb_class);
|
||||
cdev_del(&dvb_device_cdev);
|
||||
unregister_chrdev_region(MKDEV(DVB_MAJOR, 0), MAX_DVB_MINORS);
|
||||
|
||||
list_for_each_entry_safe(node, next, &dvbdevfops_list, list_head) {
|
||||
list_del (&node->list_head);
|
||||
kfree(node->fops);
|
||||
kfree(node);
|
||||
}
|
||||
}
|
||||
|
||||
subsys_initcall(init_dvbdev);
|
||||
|
||||
@@ -35,15 +35,37 @@
|
||||
|
||||
#define DVB_UNSET (-1)
|
||||
|
||||
#define DVB_DEVICE_VIDEO 0
|
||||
#define DVB_DEVICE_AUDIO 1
|
||||
#define DVB_DEVICE_SEC 2
|
||||
#define DVB_DEVICE_FRONTEND 3
|
||||
#define DVB_DEVICE_DEMUX 4
|
||||
#define DVB_DEVICE_DVR 5
|
||||
#define DVB_DEVICE_CA 6
|
||||
#define DVB_DEVICE_NET 7
|
||||
#define DVB_DEVICE_OSD 8
|
||||
/* List of DVB device types */
|
||||
|
||||
/**
|
||||
* enum dvb_device_type - type of the Digital TV device
|
||||
*
|
||||
* @DVB_DEVICE_SEC: Digital TV standalone Common Interface (CI)
|
||||
* @DVB_DEVICE_FRONTEND: Digital TV frontend.
|
||||
* @DVB_DEVICE_DEMUX: Digital TV demux.
|
||||
* @DVB_DEVICE_DVR: Digital TV digital video record (DVR).
|
||||
* @DVB_DEVICE_CA: Digital TV Conditional Access (CA).
|
||||
* @DVB_DEVICE_NET: Digital TV network.
|
||||
*
|
||||
* @DVB_DEVICE_VIDEO: Digital TV video decoder.
|
||||
* Deprecated. Used only on av7110-av.
|
||||
* @DVB_DEVICE_AUDIO: Digital TV audio decoder.
|
||||
* Deprecated. Used only on av7110-av.
|
||||
* @DVB_DEVICE_OSD: Digital TV On Screen Display (OSD).
|
||||
* Deprecated. Used only on av7110.
|
||||
*/
|
||||
enum dvb_device_type {
|
||||
DVB_DEVICE_SEC,
|
||||
DVB_DEVICE_FRONTEND,
|
||||
DVB_DEVICE_DEMUX,
|
||||
DVB_DEVICE_DVR,
|
||||
DVB_DEVICE_CA,
|
||||
DVB_DEVICE_NET,
|
||||
|
||||
DVB_DEVICE_VIDEO,
|
||||
DVB_DEVICE_AUDIO,
|
||||
DVB_DEVICE_OSD,
|
||||
};
|
||||
|
||||
#define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \
|
||||
static short adapter_nr[] = \
|
||||
@@ -104,8 +126,7 @@ struct dvb_adapter {
|
||||
* @list_head: List head with all DVB devices
|
||||
* @fops: pointer to struct file_operations
|
||||
* @adapter: pointer to the adapter that holds this device node
|
||||
* @type: type of the device: DVB_DEVICE_SEC, DVB_DEVICE_FRONTEND,
|
||||
* DVB_DEVICE_DEMUX, DVB_DEVICE_DVR, DVB_DEVICE_CA, DVB_DEVICE_NET
|
||||
* @type: type of the device, as defined by &enum dvb_device_type.
|
||||
* @minor: devnode minor number. Major number is always DVB_MAJOR.
|
||||
* @id: device ID number, inside the adapter
|
||||
* @readers: Initialized by the caller. Each call to open() in Read Only mode
|
||||
@@ -136,7 +157,7 @@ struct dvb_device {
|
||||
struct kref ref;
|
||||
const struct file_operations *fops;
|
||||
struct dvb_adapter *adapter;
|
||||
int type;
|
||||
enum dvb_device_type type;
|
||||
int minor;
|
||||
u32 id;
|
||||
|
||||
@@ -165,6 +186,21 @@ struct dvb_device {
|
||||
void *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct dvbdevfops_node - fops nodes registered in dvbdevfops_list
|
||||
*
|
||||
* @fops: Dynamically allocated fops for ->owner registration
|
||||
* @type: type of dvb_device
|
||||
* @template: dvb_device used for registration
|
||||
* @list_head: list_head for dvbdevfops_list
|
||||
*/
|
||||
struct dvbdevfops_node {
|
||||
struct file_operations *fops;
|
||||
enum dvb_device_type type;
|
||||
const struct dvb_device *template;
|
||||
struct list_head list_head;
|
||||
};
|
||||
|
||||
/**
|
||||
* dvb_device_get - Increase dvb_device reference
|
||||
*
|
||||
@@ -209,9 +245,7 @@ int dvb_unregister_adapter(struct dvb_adapter *adap);
|
||||
* stored
|
||||
* @template: Template used to create &pdvbdev;
|
||||
* @priv: private data
|
||||
* @type: type of the device: %DVB_DEVICE_SEC, %DVB_DEVICE_FRONTEND,
|
||||
* %DVB_DEVICE_DEMUX, %DVB_DEVICE_DVR, %DVB_DEVICE_CA,
|
||||
* %DVB_DEVICE_NET
|
||||
* @type: type of the device, as defined by &enum dvb_device_type.
|
||||
* @demux_sink_pads: Number of demux outputs, to be used to create the TS
|
||||
* outputs via the Media Controller.
|
||||
*/
|
||||
@@ -219,7 +253,7 @@ int dvb_register_device(struct dvb_adapter *adap,
|
||||
struct dvb_device **pdvbdev,
|
||||
const struct dvb_device *template,
|
||||
void *priv,
|
||||
int type,
|
||||
enum dvb_device_type type,
|
||||
int demux_sink_pads);
|
||||
|
||||
/**
|
||||
|
||||
@@ -12284,7 +12284,8 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
|
||||
if (state == NULL)
|
||||
goto error;
|
||||
|
||||
demod = kmalloc(sizeof(struct drx_demod_instance), GFP_KERNEL);
|
||||
demod = kmemdup(&drxj_default_demod_g,
|
||||
sizeof(struct drx_demod_instance), GFP_KERNEL);
|
||||
if (demod == NULL)
|
||||
goto error;
|
||||
|
||||
@@ -12308,8 +12309,6 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
|
||||
state->demod = demod;
|
||||
|
||||
/* setup the demod data */
|
||||
memcpy(demod, &drxj_default_demod_g, sizeof(struct drx_demod_instance));
|
||||
|
||||
demod->my_i2c_dev_addr = demod_addr;
|
||||
demod->my_common_attr = demod_comm_attr;
|
||||
demod->my_i2c_dev_addr->user_data = state;
|
||||
|
||||
@@ -128,50 +128,32 @@ static const s32 stv0367cab_RF_LookUp2[RF_LOOKUP_TABLE2_SIZE][RF_LOOKUP_TABLE2_S
|
||||
}
|
||||
};
|
||||
|
||||
static
|
||||
int stv0367_writeregs(struct stv0367_state *state, u16 reg, u8 *data, int len)
|
||||
static noinline_for_stack
|
||||
int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data)
|
||||
{
|
||||
u8 buf[MAX_XFER_SIZE];
|
||||
u8 buf[3] = { MSB(reg), LSB(reg), data };
|
||||
struct i2c_msg msg = {
|
||||
.addr = state->config->demod_address,
|
||||
.flags = 0,
|
||||
.buf = buf,
|
||||
.len = len + 2
|
||||
.len = 3,
|
||||
};
|
||||
int ret;
|
||||
|
||||
if (2 + len > sizeof(buf)) {
|
||||
printk(KERN_WARNING
|
||||
"%s: i2c wr reg=%04x: len=%d is too big!\n",
|
||||
KBUILD_MODNAME, reg, len);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
buf[0] = MSB(reg);
|
||||
buf[1] = LSB(reg);
|
||||
memcpy(buf + 2, data, len);
|
||||
|
||||
if (i2cdebug)
|
||||
printk(KERN_DEBUG "%s: [%02x] %02x: %02x\n", __func__,
|
||||
state->config->demod_address, reg, buf[2]);
|
||||
state->config->demod_address, reg, data);
|
||||
|
||||
ret = i2c_transfer(state->i2c, &msg, 1);
|
||||
if (ret != 1)
|
||||
printk(KERN_ERR "%s: i2c write error! ([%02x] %02x: %02x)\n",
|
||||
__func__, state->config->demod_address, reg, buf[2]);
|
||||
__func__, state->config->demod_address, reg, data);
|
||||
|
||||
return (ret != 1) ? -EREMOTEIO : 0;
|
||||
}
|
||||
|
||||
static int stv0367_writereg(struct stv0367_state *state, u16 reg, u8 data)
|
||||
{
|
||||
u8 tmp = data; /* see gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 */
|
||||
|
||||
return stv0367_writeregs(state, reg, &tmp, 1);
|
||||
}
|
||||
|
||||
static u8 stv0367_readreg(struct stv0367_state *state, u16 reg)
|
||||
static noinline_for_stack
|
||||
u8 stv0367_readreg(struct stv0367_state *state, u16 reg)
|
||||
{
|
||||
u8 b0[] = { 0, 0 };
|
||||
u8 b1[] = { 0 };
|
||||
|
||||
@@ -1937,9 +1937,6 @@ static int tc358743_probe(struct i2c_client *client,
|
||||
state->mbus_fmt_code = MEDIA_BUS_FMT_RGB888_1X24;
|
||||
|
||||
sd->dev = &client->dev;
|
||||
err = v4l2_async_register_subdev(sd);
|
||||
if (err < 0)
|
||||
goto err_hdl;
|
||||
|
||||
mutex_init(&state->confctl_mutex);
|
||||
|
||||
@@ -1979,6 +1976,10 @@ static int tc358743_probe(struct i2c_client *client,
|
||||
if (err)
|
||||
goto err_work_queues;
|
||||
|
||||
err = v4l2_async_register_subdev(sd);
|
||||
if (err < 0)
|
||||
goto err_work_queues;
|
||||
|
||||
v4l2_info(sd, "%s found @ 0x%x (%s)\n", client->name,
|
||||
client->addr << 1, client->adapter->name);
|
||||
|
||||
|
||||
@@ -3741,6 +3741,10 @@ static int em28xx_usb_probe(struct usb_interface *interface,
|
||||
* topology will likely change after the load of the em28xx subdrivers.
|
||||
*/
|
||||
#ifdef CONFIG_MEDIA_CONTROLLER
|
||||
/*
|
||||
* No need to check the return value, the device will still be
|
||||
* usable without media controller API.
|
||||
*/
|
||||
retval = media_device_register(dev->media_dev);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ static int go7007_load_encoder(struct go7007 *go)
|
||||
const struct firmware *fw_entry;
|
||||
char fw_name[] = "go7007/go7007fw.bin";
|
||||
void *bounce;
|
||||
int fw_len, rv = 0;
|
||||
int fw_len;
|
||||
u16 intr_val, intr_data;
|
||||
|
||||
if (go->boot_fw == NULL) {
|
||||
@@ -117,9 +117,11 @@ static int go7007_load_encoder(struct go7007 *go)
|
||||
go7007_read_interrupt(go, &intr_val, &intr_data) < 0 ||
|
||||
(intr_val & ~0x1) != 0x5a5a) {
|
||||
v4l2_err(go, "error transferring firmware\n");
|
||||
rv = -1;
|
||||
kfree(go->boot_fw);
|
||||
go->boot_fw = NULL;
|
||||
return -1;
|
||||
}
|
||||
return rv;
|
||||
return 0;
|
||||
}
|
||||
|
||||
MODULE_FIRMWARE("go7007/go7007fw.bin");
|
||||
|
||||
@@ -1206,7 +1206,9 @@ static int go7007_usb_probe(struct usb_interface *intf,
|
||||
u16 channel;
|
||||
|
||||
/* read channel number from GPIO[1:0] */
|
||||
go7007_read_addr(go, 0x3c81, &channel);
|
||||
if (go7007_read_addr(go, 0x3c81, &channel))
|
||||
goto allocfail;
|
||||
|
||||
channel &= 0x3;
|
||||
go->board_id = GO7007_BOARDID_ADLINK_MPG24;
|
||||
usb->board = board = &board_adlink_mpg24;
|
||||
|
||||
@@ -99,8 +99,10 @@ static void pvr2_context_destroy(struct pvr2_context *mp)
|
||||
}
|
||||
|
||||
|
||||
static void pvr2_context_notify(struct pvr2_context *mp)
|
||||
static void pvr2_context_notify(void *ptr)
|
||||
{
|
||||
struct pvr2_context *mp = ptr;
|
||||
|
||||
pvr2_context_set_notify(mp,!0);
|
||||
}
|
||||
|
||||
@@ -115,9 +117,7 @@ static void pvr2_context_check(struct pvr2_context *mp)
|
||||
pvr2_trace(PVR2_TRACE_CTXT,
|
||||
"pvr2_context %p (initialize)", mp);
|
||||
/* Finish hardware initialization */
|
||||
if (pvr2_hdw_initialize(mp->hdw,
|
||||
(void (*)(void *))pvr2_context_notify,
|
||||
mp)) {
|
||||
if (pvr2_hdw_initialize(mp->hdw, pvr2_context_notify, mp)) {
|
||||
mp->video_stream.stream =
|
||||
pvr2_hdw_get_video_stream(mp->hdw);
|
||||
/* Trigger interface initialization. By doing this
|
||||
@@ -276,9 +276,9 @@ static void pvr2_context_exit(struct pvr2_context *mp)
|
||||
void pvr2_context_disconnect(struct pvr2_context *mp)
|
||||
{
|
||||
pvr2_hdw_disconnect(mp->hdw);
|
||||
mp->disconnect_flag = !0;
|
||||
if (!pvr2_context_shutok())
|
||||
pvr2_context_notify(mp);
|
||||
mp->disconnect_flag = !0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -97,8 +97,10 @@ static int pvr2_dvb_feed_thread(void *data)
|
||||
return stat;
|
||||
}
|
||||
|
||||
static void pvr2_dvb_notify(struct pvr2_dvb_adapter *adap)
|
||||
static void pvr2_dvb_notify(void *ptr)
|
||||
{
|
||||
struct pvr2_dvb_adapter *adap = ptr;
|
||||
|
||||
wake_up(&adap->buffer_wait_data);
|
||||
}
|
||||
|
||||
@@ -158,7 +160,7 @@ static int pvr2_dvb_stream_do_start(struct pvr2_dvb_adapter *adap)
|
||||
}
|
||||
|
||||
pvr2_stream_set_callback(pvr->video_stream.stream,
|
||||
(pvr2_stream_callback) pvr2_dvb_notify, adap);
|
||||
pvr2_dvb_notify, adap);
|
||||
|
||||
ret = pvr2_stream_set_buffer_count(stream, PVR2_DVB_BUFFER_COUNT);
|
||||
if (ret < 0) return ret;
|
||||
|
||||
@@ -1092,8 +1092,10 @@ static int pvr2_v4l2_open(struct file *file)
|
||||
}
|
||||
|
||||
|
||||
static void pvr2_v4l2_notify(struct pvr2_v4l2_fh *fhp)
|
||||
static void pvr2_v4l2_notify(void *ptr)
|
||||
{
|
||||
struct pvr2_v4l2_fh *fhp = ptr;
|
||||
|
||||
wake_up(&fhp->wait_data);
|
||||
}
|
||||
|
||||
@@ -1126,7 +1128,7 @@ static int pvr2_v4l2_iosetup(struct pvr2_v4l2_fh *fh)
|
||||
|
||||
hdw = fh->channel.mc_head->hdw;
|
||||
sp = fh->pdi->stream->stream;
|
||||
pvr2_stream_set_callback(sp,(pvr2_stream_callback)pvr2_v4l2_notify,fh);
|
||||
pvr2_stream_set_callback(sp, pvr2_v4l2_notify, fh);
|
||||
pvr2_hdw_set_stream_type(hdw,fh->pdi->config);
|
||||
if ((ret = pvr2_hdw_set_streaming(hdw,!0)) < 0) return ret;
|
||||
return pvr2_ioread_set_enabled(fh->rhp,!0);
|
||||
|
||||
@@ -190,7 +190,9 @@ struct regmap *syscon_regmap_lookup_by_phandle(struct device_node *np,
|
||||
return ERR_PTR(-ENODEV);
|
||||
|
||||
regmap = syscon_node_to_regmap(syscon_np);
|
||||
of_node_put(syscon_np);
|
||||
|
||||
if (property)
|
||||
of_node_put(syscon_np);
|
||||
|
||||
return regmap;
|
||||
}
|
||||
|
||||
@@ -893,7 +893,6 @@ static int wmt_mci_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct mmc_host *mmc;
|
||||
struct wmt_mci_priv *priv;
|
||||
struct resource *res;
|
||||
u32 reg_tmp;
|
||||
|
||||
mmc = platform_get_drvdata(pdev);
|
||||
@@ -921,9 +920,6 @@ static int wmt_mci_remove(struct platform_device *pdev)
|
||||
clk_disable_unprepare(priv->clk_sdmmc);
|
||||
clk_put(priv->clk_sdmmc);
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
|
||||
mmc_free_host(mmc);
|
||||
|
||||
dev_info(&pdev->dev, "WMT MCI device removed\n");
|
||||
|
||||
@@ -315,8 +315,9 @@ static int lpc32xx_nand_device_ready(struct mtd_info *mtd)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static irqreturn_t lpc3xxx_nand_irq(int irq, struct lpc32xx_nand_host *host)
|
||||
static irqreturn_t lpc3xxx_nand_irq(int irq, void *data)
|
||||
{
|
||||
struct lpc32xx_nand_host *host = data;
|
||||
uint8_t sr;
|
||||
|
||||
/* Clear interrupt flag by reading status */
|
||||
@@ -783,7 +784,7 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
|
||||
goto err_exit3;
|
||||
}
|
||||
|
||||
if (request_irq(host->irq, (irq_handler_t)&lpc3xxx_nand_irq,
|
||||
if (request_irq(host->irq, &lpc3xxx_nand_irq,
|
||||
IRQF_TRIGGER_HIGH, DRV_NAME, host)) {
|
||||
dev_err(&pdev->dev, "Error requesting NAND IRQ\n");
|
||||
res = -ENXIO;
|
||||
|
||||
@@ -1007,9 +1007,6 @@ static inline void bnx2x_set_fw_mac_addr(__le16 *fw_hi, __le16 *fw_mid,
|
||||
static inline void bnx2x_free_rx_mem_pool(struct bnx2x *bp,
|
||||
struct bnx2x_alloc_pool *pool)
|
||||
{
|
||||
if (!pool->page)
|
||||
return;
|
||||
|
||||
put_page(pool->page);
|
||||
|
||||
pool->page = NULL;
|
||||
@@ -1020,6 +1017,9 @@ static inline void bnx2x_free_rx_sge_range(struct bnx2x *bp,
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!fp->page_pool.page)
|
||||
return;
|
||||
|
||||
if (fp->mode == TPA_MODE_DISABLED)
|
||||
return;
|
||||
|
||||
|
||||
@@ -5772,77 +5772,75 @@ void igb_update_stats(struct igb_adapter *adapter)
|
||||
}
|
||||
}
|
||||
|
||||
static void igb_perout(struct igb_adapter *adapter, int tsintr_tt)
|
||||
{
|
||||
int pin = ptp_find_pin(adapter->ptp_clock, PTP_PF_PEROUT, tsintr_tt);
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
struct timespec64 ts;
|
||||
u32 tsauxc;
|
||||
|
||||
if (pin < 0 || pin >= IGB_N_PEROUT)
|
||||
return;
|
||||
|
||||
spin_lock(&adapter->tmreg_lock);
|
||||
ts = timespec64_add(adapter->perout[pin].start,
|
||||
adapter->perout[pin].period);
|
||||
/* u32 conversion of tv_sec is safe until y2106 */
|
||||
wr32((tsintr_tt == 1) ? E1000_TRGTTIML1 : E1000_TRGTTIML0, ts.tv_nsec);
|
||||
wr32((tsintr_tt == 1) ? E1000_TRGTTIMH1 : E1000_TRGTTIMH0, (u32)ts.tv_sec);
|
||||
tsauxc = rd32(E1000_TSAUXC);
|
||||
tsauxc |= TSAUXC_EN_TT0;
|
||||
wr32(E1000_TSAUXC, tsauxc);
|
||||
adapter->perout[pin].start = ts;
|
||||
spin_unlock(&adapter->tmreg_lock);
|
||||
}
|
||||
|
||||
static void igb_extts(struct igb_adapter *adapter, int tsintr_tt)
|
||||
{
|
||||
int pin = ptp_find_pin(adapter->ptp_clock, PTP_PF_EXTTS, tsintr_tt);
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
struct ptp_clock_event event;
|
||||
u32 sec, nsec;
|
||||
|
||||
if (pin < 0 || pin >= IGB_N_EXTTS)
|
||||
return;
|
||||
|
||||
nsec = rd32((tsintr_tt == 1) ? E1000_AUXSTMPL1 : E1000_AUXSTMPL0);
|
||||
sec = rd32((tsintr_tt == 1) ? E1000_AUXSTMPH1 : E1000_AUXSTMPH0);
|
||||
event.type = PTP_CLOCK_EXTTS;
|
||||
event.index = tsintr_tt;
|
||||
event.timestamp = sec * 1000000000ULL + nsec;
|
||||
ptp_clock_event(adapter->ptp_clock, &event);
|
||||
}
|
||||
|
||||
static void igb_tsync_interrupt(struct igb_adapter *adapter)
|
||||
{
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
u32 tsicr = rd32(E1000_TSICR);
|
||||
struct ptp_clock_event event;
|
||||
struct timespec64 ts;
|
||||
u32 ack = 0, tsauxc, sec, nsec, tsicr = rd32(E1000_TSICR);
|
||||
|
||||
if (tsicr & TSINTR_SYS_WRAP) {
|
||||
event.type = PTP_CLOCK_PPS;
|
||||
if (adapter->ptp_caps.pps)
|
||||
ptp_clock_event(adapter->ptp_clock, &event);
|
||||
ack |= TSINTR_SYS_WRAP;
|
||||
}
|
||||
|
||||
if (tsicr & E1000_TSICR_TXTS) {
|
||||
/* retrieve hardware timestamp */
|
||||
schedule_work(&adapter->ptp_tx_work);
|
||||
ack |= E1000_TSICR_TXTS;
|
||||
}
|
||||
|
||||
if (tsicr & TSINTR_TT0) {
|
||||
spin_lock(&adapter->tmreg_lock);
|
||||
ts = timespec64_add(adapter->perout[0].start,
|
||||
adapter->perout[0].period);
|
||||
/* u32 conversion of tv_sec is safe until y2106 */
|
||||
wr32(E1000_TRGTTIML0, ts.tv_nsec);
|
||||
wr32(E1000_TRGTTIMH0, (u32)ts.tv_sec);
|
||||
tsauxc = rd32(E1000_TSAUXC);
|
||||
tsauxc |= TSAUXC_EN_TT0;
|
||||
wr32(E1000_TSAUXC, tsauxc);
|
||||
adapter->perout[0].start = ts;
|
||||
spin_unlock(&adapter->tmreg_lock);
|
||||
ack |= TSINTR_TT0;
|
||||
}
|
||||
if (tsicr & TSINTR_TT0)
|
||||
igb_perout(adapter, 0);
|
||||
|
||||
if (tsicr & TSINTR_TT1) {
|
||||
spin_lock(&adapter->tmreg_lock);
|
||||
ts = timespec64_add(adapter->perout[1].start,
|
||||
adapter->perout[1].period);
|
||||
wr32(E1000_TRGTTIML1, ts.tv_nsec);
|
||||
wr32(E1000_TRGTTIMH1, (u32)ts.tv_sec);
|
||||
tsauxc = rd32(E1000_TSAUXC);
|
||||
tsauxc |= TSAUXC_EN_TT1;
|
||||
wr32(E1000_TSAUXC, tsauxc);
|
||||
adapter->perout[1].start = ts;
|
||||
spin_unlock(&adapter->tmreg_lock);
|
||||
ack |= TSINTR_TT1;
|
||||
}
|
||||
if (tsicr & TSINTR_TT1)
|
||||
igb_perout(adapter, 1);
|
||||
|
||||
if (tsicr & TSINTR_AUTT0) {
|
||||
nsec = rd32(E1000_AUXSTMPL0);
|
||||
sec = rd32(E1000_AUXSTMPH0);
|
||||
event.type = PTP_CLOCK_EXTTS;
|
||||
event.index = 0;
|
||||
event.timestamp = sec * 1000000000ULL + nsec;
|
||||
ptp_clock_event(adapter->ptp_clock, &event);
|
||||
ack |= TSINTR_AUTT0;
|
||||
}
|
||||
if (tsicr & TSINTR_AUTT0)
|
||||
igb_extts(adapter, 0);
|
||||
|
||||
if (tsicr & TSINTR_AUTT1) {
|
||||
nsec = rd32(E1000_AUXSTMPL1);
|
||||
sec = rd32(E1000_AUXSTMPH1);
|
||||
event.type = PTP_CLOCK_EXTTS;
|
||||
event.index = 1;
|
||||
event.timestamp = sec * 1000000000ULL + nsec;
|
||||
ptp_clock_event(adapter->ptp_clock, &event);
|
||||
ack |= TSINTR_AUTT1;
|
||||
}
|
||||
|
||||
/* acknowledge the interrupts */
|
||||
wr32(E1000_TSICR, ack);
|
||||
if (tsicr & TSINTR_AUTT1)
|
||||
igb_extts(adapter, 1);
|
||||
}
|
||||
|
||||
static irqreturn_t igb_msix_other(int irq, void *data)
|
||||
|
||||
@@ -215,7 +215,7 @@ static void geneve_rx(struct geneve_dev *geneve, struct geneve_sock *gs,
|
||||
struct metadata_dst *tun_dst = NULL;
|
||||
struct pcpu_sw_netstats *stats;
|
||||
unsigned int len;
|
||||
int err = 0;
|
||||
int nh, err = 0;
|
||||
void *oiph;
|
||||
|
||||
if (ip_tunnel_collect_metadata() || gs->collect_md) {
|
||||
@@ -259,9 +259,23 @@ static void geneve_rx(struct geneve_dev *geneve, struct geneve_sock *gs,
|
||||
goto drop;
|
||||
}
|
||||
|
||||
oiph = skb_network_header(skb);
|
||||
/* Save offset of outer header relative to skb->head,
|
||||
* because we are going to reset the network header to the inner header
|
||||
* and might change skb->head.
|
||||
*/
|
||||
nh = skb_network_header(skb) - skb->head;
|
||||
|
||||
skb_reset_network_header(skb);
|
||||
|
||||
if (!pskb_inet_may_pull(skb)) {
|
||||
DEV_STATS_INC(geneve->dev, rx_length_errors);
|
||||
DEV_STATS_INC(geneve->dev, rx_errors);
|
||||
goto drop;
|
||||
}
|
||||
|
||||
/* Get the outer header. */
|
||||
oiph = skb->head + nh;
|
||||
|
||||
if (geneve_get_sk_family(gs) == AF_INET)
|
||||
err = IP_ECN_decapsulate(oiph, skb);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
@@ -834,7 +848,7 @@ static int geneve_xmit_skb(struct sk_buff *skb, struct net_device *dev,
|
||||
__be16 df;
|
||||
int err;
|
||||
|
||||
if (!pskb_network_may_pull(skb, sizeof(struct iphdr)))
|
||||
if (!pskb_inet_may_pull(skb))
|
||||
return -EINVAL;
|
||||
|
||||
sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
|
||||
@@ -884,7 +898,7 @@ static int geneve6_xmit_skb(struct sk_buff *skb, struct net_device *dev,
|
||||
__be16 sport;
|
||||
int err;
|
||||
|
||||
if (!pskb_network_may_pull(skb, sizeof(struct ipv6hdr)))
|
||||
if (!pskb_inet_may_pull(skb))
|
||||
return -EINVAL;
|
||||
|
||||
sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true);
|
||||
|
||||
@@ -2232,8 +2232,7 @@ static int netvsc_netdev_event(struct notifier_block *this,
|
||||
return NOTIFY_DONE;
|
||||
|
||||
/* Avoid Bonding master dev with same MAC registering as VF */
|
||||
if ((event_dev->priv_flags & IFF_BONDING) &&
|
||||
(event_dev->flags & IFF_MASTER))
|
||||
if (netif_is_bond_master(event_dev))
|
||||
return NOTIFY_DONE;
|
||||
|
||||
switch (event) {
|
||||
|
||||
@@ -59,12 +59,6 @@
|
||||
#include <net/net_namespace.h>
|
||||
#include <linux/u64_stats_sync.h>
|
||||
|
||||
struct pcpu_lstats {
|
||||
u64 packets;
|
||||
u64 bytes;
|
||||
struct u64_stats_sync syncp;
|
||||
};
|
||||
|
||||
/* The higher levels take care of making this non-reentrant (it's
|
||||
* called with bh's disabled).
|
||||
*/
|
||||
|
||||
@@ -6,12 +6,6 @@
|
||||
#include <linux/if_arp.h>
|
||||
#include <net/rtnetlink.h>
|
||||
|
||||
struct pcpu_lstats {
|
||||
u64 packets;
|
||||
u64 bytes;
|
||||
struct u64_stats_sync syncp;
|
||||
};
|
||||
|
||||
static netdev_tx_t nlmon_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
int len = skb->len;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -737,7 +737,9 @@ static int sr9800_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
|
||||
data->eeprom_len = SR9800_EEPROM_LEN;
|
||||
|
||||
usbnet_get_endpoints(dev, intf);
|
||||
ret = usbnet_get_endpoints(dev, intf);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
/* LED Setting Rule :
|
||||
* AABB:CCDD
|
||||
|
||||
@@ -11,12 +11,6 @@
|
||||
#define DEFAULT_MTU (VIRTIO_VSOCK_MAX_PKT_BUF_SIZE + \
|
||||
sizeof(struct af_vsockmon_hdr))
|
||||
|
||||
struct pcpu_lstats {
|
||||
u64 rx_packets;
|
||||
u64 rx_bytes;
|
||||
struct u64_stats_sync syncp;
|
||||
};
|
||||
|
||||
static int vsockmon_dev_init(struct net_device *dev)
|
||||
{
|
||||
dev->lstats = netdev_alloc_pcpu_stats(struct pcpu_lstats);
|
||||
@@ -56,8 +50,8 @@ static netdev_tx_t vsockmon_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
struct pcpu_lstats *stats = this_cpu_ptr(dev->lstats);
|
||||
|
||||
u64_stats_update_begin(&stats->syncp);
|
||||
stats->rx_bytes += len;
|
||||
stats->rx_packets++;
|
||||
stats->bytes += len;
|
||||
stats->packets++;
|
||||
u64_stats_update_end(&stats->syncp);
|
||||
|
||||
dev_kfree_skb(skb);
|
||||
@@ -80,8 +74,8 @@ vsockmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&vstats->syncp);
|
||||
tbytes = vstats->rx_bytes;
|
||||
tpackets = vstats->rx_packets;
|
||||
tbytes = vstats->bytes;
|
||||
tpackets = vstats->packets;
|
||||
} while (u64_stats_fetch_retry_irq(&vstats->syncp, start));
|
||||
|
||||
packets += tpackets;
|
||||
|
||||
@@ -1082,6 +1082,22 @@ static inline bool b43_using_pio_transfers(struct b43_wldev *dev)
|
||||
return dev->__using_pio_transfers;
|
||||
}
|
||||
|
||||
static inline void b43_wake_queue(struct b43_wldev *dev, int queue_prio)
|
||||
{
|
||||
if (dev->qos_enabled)
|
||||
ieee80211_wake_queue(dev->wl->hw, queue_prio);
|
||||
else
|
||||
ieee80211_wake_queue(dev->wl->hw, 0);
|
||||
}
|
||||
|
||||
static inline void b43_stop_queue(struct b43_wldev *dev, int queue_prio)
|
||||
{
|
||||
if (dev->qos_enabled)
|
||||
ieee80211_stop_queue(dev->wl->hw, queue_prio);
|
||||
else
|
||||
ieee80211_stop_queue(dev->wl->hw, 0);
|
||||
}
|
||||
|
||||
/* Message printing */
|
||||
__printf(2, 3) void b43info(struct b43_wl *wl, const char *fmt, ...);
|
||||
__printf(2, 3) void b43err(struct b43_wl *wl, const char *fmt, ...);
|
||||
|
||||
@@ -1461,8 +1461,8 @@ int b43_dma_tx(struct b43_wldev *dev, struct sk_buff *skb)
|
||||
should_inject_overflow(ring)) {
|
||||
/* This TX ring is full. */
|
||||
unsigned int skb_mapping = skb_get_queue_mapping(skb);
|
||||
ieee80211_stop_queue(dev->wl->hw, skb_mapping);
|
||||
dev->wl->tx_queue_stopped[skb_mapping] = 1;
|
||||
b43_stop_queue(dev, skb_mapping);
|
||||
dev->wl->tx_queue_stopped[skb_mapping] = true;
|
||||
ring->stopped = true;
|
||||
if (b43_debug(dev, B43_DBG_DMAVERBOSE)) {
|
||||
b43dbg(dev->wl, "Stopped TX ring %d\n", ring->index);
|
||||
@@ -1626,11 +1626,11 @@ void b43_dma_handle_txstatus(struct b43_wldev *dev,
|
||||
}
|
||||
|
||||
if (dev->wl->tx_queue_stopped[ring->queue_prio]) {
|
||||
dev->wl->tx_queue_stopped[ring->queue_prio] = 0;
|
||||
dev->wl->tx_queue_stopped[ring->queue_prio] = false;
|
||||
} else {
|
||||
/* If the driver queue is running wake the corresponding
|
||||
* mac80211 queue. */
|
||||
ieee80211_wake_queue(dev->wl->hw, ring->queue_prio);
|
||||
b43_wake_queue(dev, ring->queue_prio);
|
||||
if (b43_debug(dev, B43_DBG_DMAVERBOSE)) {
|
||||
b43dbg(dev->wl, "Woke up TX ring %d\n", ring->index);
|
||||
}
|
||||
|
||||
@@ -2605,7 +2605,8 @@ static void b43_request_firmware(struct work_struct *work)
|
||||
|
||||
start_ieee80211:
|
||||
wl->hw->queues = B43_QOS_QUEUE_NUM;
|
||||
if (!modparam_qos || dev->fw.opensource)
|
||||
if (!modparam_qos || dev->fw.opensource ||
|
||||
dev->dev->chip_id == BCMA_CHIP_ID_BCM4331)
|
||||
wl->hw->queues = 1;
|
||||
|
||||
err = ieee80211_register_hw(wl->hw);
|
||||
@@ -3625,8 +3626,8 @@ static void b43_tx_work(struct work_struct *work)
|
||||
else
|
||||
err = b43_dma_tx(dev, skb);
|
||||
if (err == -ENOSPC) {
|
||||
wl->tx_queue_stopped[queue_num] = 1;
|
||||
ieee80211_stop_queue(wl->hw, queue_num);
|
||||
wl->tx_queue_stopped[queue_num] = true;
|
||||
b43_stop_queue(dev, queue_num);
|
||||
skb_queue_head(&wl->tx_queue[queue_num], skb);
|
||||
break;
|
||||
}
|
||||
@@ -3636,7 +3637,7 @@ static void b43_tx_work(struct work_struct *work)
|
||||
}
|
||||
|
||||
if (!err)
|
||||
wl->tx_queue_stopped[queue_num] = 0;
|
||||
wl->tx_queue_stopped[queue_num] = false;
|
||||
}
|
||||
|
||||
#if B43_DEBUG
|
||||
@@ -3650,6 +3651,7 @@ static void b43_op_tx(struct ieee80211_hw *hw,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct b43_wl *wl = hw_to_b43_wl(hw);
|
||||
u16 skb_queue_mapping;
|
||||
|
||||
if (unlikely(skb->len < 2 + 2 + 6)) {
|
||||
/* Too short, this can't be a valid frame. */
|
||||
@@ -3658,12 +3660,12 @@ static void b43_op_tx(struct ieee80211_hw *hw,
|
||||
}
|
||||
B43_WARN_ON(skb_shinfo(skb)->nr_frags);
|
||||
|
||||
skb_queue_tail(&wl->tx_queue[skb->queue_mapping], skb);
|
||||
if (!wl->tx_queue_stopped[skb->queue_mapping]) {
|
||||
skb_queue_mapping = skb_get_queue_mapping(skb);
|
||||
skb_queue_tail(&wl->tx_queue[skb_queue_mapping], skb);
|
||||
if (!wl->tx_queue_stopped[skb_queue_mapping])
|
||||
ieee80211_queue_work(wl->hw, &wl->tx_work);
|
||||
} else {
|
||||
ieee80211_stop_queue(wl->hw, skb->queue_mapping);
|
||||
}
|
||||
else
|
||||
b43_stop_queue(wl->current_dev, skb_queue_mapping);
|
||||
}
|
||||
|
||||
static void b43_qos_params_upload(struct b43_wldev *dev,
|
||||
@@ -5630,7 +5632,7 @@ static struct b43_wl *b43_wireless_init(struct b43_bus_dev *dev)
|
||||
/* Initialize queues and flags. */
|
||||
for (queue_num = 0; queue_num < B43_QOS_QUEUE_NUM; queue_num++) {
|
||||
skb_queue_head_init(&wl->tx_queue[queue_num]);
|
||||
wl->tx_queue_stopped[queue_num] = 0;
|
||||
wl->tx_queue_stopped[queue_num] = false;
|
||||
}
|
||||
|
||||
snprintf(chip_name, ARRAY_SIZE(chip_name),
|
||||
|
||||
@@ -538,7 +538,7 @@ int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb)
|
||||
if (total_len > (q->buffer_size - q->buffer_used)) {
|
||||
/* Not enough memory on the queue. */
|
||||
err = -EBUSY;
|
||||
ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb));
|
||||
b43_stop_queue(dev, skb_get_queue_mapping(skb));
|
||||
q->stopped = true;
|
||||
goto out;
|
||||
}
|
||||
@@ -565,7 +565,7 @@ int b43_pio_tx(struct b43_wldev *dev, struct sk_buff *skb)
|
||||
if (((q->buffer_size - q->buffer_used) < roundup(2 + 2 + 6, 4)) ||
|
||||
(q->free_packet_slots == 0)) {
|
||||
/* The queue is full. */
|
||||
ieee80211_stop_queue(dev->wl->hw, skb_get_queue_mapping(skb));
|
||||
b43_stop_queue(dev, skb_get_queue_mapping(skb));
|
||||
q->stopped = true;
|
||||
}
|
||||
|
||||
@@ -600,7 +600,7 @@ void b43_pio_handle_txstatus(struct b43_wldev *dev,
|
||||
list_add(&pack->list, &q->packets_list);
|
||||
|
||||
if (q->stopped) {
|
||||
ieee80211_wake_queue(dev->wl->hw, q->queue_prio);
|
||||
b43_wake_queue(dev, q->queue_prio);
|
||||
q->stopped = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -394,8 +394,9 @@ struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp)
|
||||
return sh;
|
||||
}
|
||||
|
||||
static void wlc_phy_timercb_phycal(struct brcms_phy *pi)
|
||||
static void wlc_phy_timercb_phycal(void *ptr)
|
||||
{
|
||||
struct brcms_phy *pi = ptr;
|
||||
uint delay = 5;
|
||||
|
||||
if (PHY_PERICAL_MPHASE_PENDING(pi)) {
|
||||
|
||||
@@ -57,12 +57,11 @@ void wlc_phy_shim_detach(struct phy_shim_info *physhim)
|
||||
}
|
||||
|
||||
struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim,
|
||||
void (*fn)(struct brcms_phy *pi),
|
||||
void (*fn)(void *pi),
|
||||
void *arg, const char *name)
|
||||
{
|
||||
return (struct wlapi_timer *)
|
||||
brcms_init_timer(physhim->wl, (void (*)(void *))fn,
|
||||
arg, name);
|
||||
brcms_init_timer(physhim->wl, fn, arg, name);
|
||||
}
|
||||
|
||||
void wlapi_free_timer(struct wlapi_timer *t)
|
||||
|
||||
@@ -131,7 +131,7 @@ void wlc_phy_shim_detach(struct phy_shim_info *physhim);
|
||||
|
||||
/* PHY to WL utility functions */
|
||||
struct wlapi_timer *wlapi_init_timer(struct phy_shim_info *physhim,
|
||||
void (*fn)(struct brcms_phy *pi),
|
||||
void (*fn)(void *pi),
|
||||
void *arg, const char *name);
|
||||
void wlapi_free_timer(struct wlapi_timer *t);
|
||||
void wlapi_add_timer(struct wlapi_timer *t, uint ms, int periodic);
|
||||
|
||||
@@ -1132,7 +1132,7 @@ int lbs_allocate_cmd_buffer(struct lbs_private *priv)
|
||||
if (!cmdarray[i].cmdbuf) {
|
||||
lbs_deb_host("ALLOC_CMD_BUF: ptempvirtualaddr is NULL\n");
|
||||
ret = -1;
|
||||
goto done;
|
||||
goto free_cmd_array;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1140,8 +1140,17 @@ int lbs_allocate_cmd_buffer(struct lbs_private *priv)
|
||||
init_waitqueue_head(&cmdarray[i].cmdwait_q);
|
||||
lbs_cleanup_and_insert_cmd(priv, &cmdarray[i]);
|
||||
}
|
||||
ret = 0;
|
||||
return 0;
|
||||
|
||||
free_cmd_array:
|
||||
for (i = 0; i < LBS_NUM_CMD_BUFFERS; i++) {
|
||||
if (cmdarray[i].cmdbuf) {
|
||||
kfree(cmdarray[i].cmdbuf);
|
||||
cmdarray[i].cmdbuf = NULL;
|
||||
}
|
||||
}
|
||||
kfree(priv->cmd_array);
|
||||
priv->cmd_array = NULL;
|
||||
done:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1001,9 +1001,6 @@ mwifiex_dev_debugfs_init(struct mwifiex_private *priv)
|
||||
priv->dfs_dev_dir = debugfs_create_dir(priv->netdev->name,
|
||||
mwifiex_dfs_dir);
|
||||
|
||||
if (!priv->dfs_dev_dir)
|
||||
return;
|
||||
|
||||
MWIFIEX_DFS_ADD_FILE(info);
|
||||
MWIFIEX_DFS_ADD_FILE(debug);
|
||||
MWIFIEX_DFS_ADD_FILE(getlog);
|
||||
|
||||
@@ -5102,6 +5102,7 @@ static void quirk_no_ext_tags(struct pci_dev *pdev)
|
||||
|
||||
pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL);
|
||||
}
|
||||
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_3WARE, 0x1004, quirk_no_ext_tags);
|
||||
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0132, quirk_no_ext_tags);
|
||||
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_tags);
|
||||
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0141, quirk_no_ext_tags);
|
||||
|
||||
@@ -1717,14 +1717,15 @@ config RTC_DRV_MOXART
|
||||
will be called rtc-moxart
|
||||
|
||||
config RTC_DRV_MT6397
|
||||
tristate "Mediatek Real Time Clock driver"
|
||||
depends on MFD_MT6397 || (COMPILE_TEST && IRQ_DOMAIN)
|
||||
tristate "MediaTek PMIC based RTC"
|
||||
depends on MFD_MT6397 || COMPILE_TEST
|
||||
select IRQ_DOMAIN
|
||||
help
|
||||
This selects the Mediatek(R) RTC driver. RTC is part of Mediatek
|
||||
This selects the MediaTek(R) RTC driver. RTC is part of MediaTek
|
||||
MT6397 PMIC. You should enable MT6397 PMIC MFD before select
|
||||
Mediatek(R) RTC driver.
|
||||
MediaTek(R) RTC driver.
|
||||
|
||||
If you want to use Mediatek(R) RTC interface, select Y or M here.
|
||||
If you want to use MediaTek(R) RTC interface, select Y or M here.
|
||||
|
||||
config RTC_DRV_XGENE
|
||||
tristate "APM X-Gene RTC"
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
struct bfa_s;
|
||||
|
||||
typedef void (*bfa_isr_func_t) (struct bfa_s *bfa, struct bfi_msg_s *m);
|
||||
typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status);
|
||||
|
||||
/*
|
||||
* Interrupt message handlers
|
||||
@@ -446,4 +445,12 @@ struct bfa_cb_pending_q_s {
|
||||
(__qe)->data = (__data); \
|
||||
} while (0)
|
||||
|
||||
#define bfa_pending_q_init_status(__qe, __cbfn, __cbarg, __data) do { \
|
||||
bfa_q_qe_init(&((__qe)->hcb_qe.qe)); \
|
||||
(__qe)->hcb_qe.cbfn_status = (__cbfn); \
|
||||
(__qe)->hcb_qe.cbarg = (__cbarg); \
|
||||
(__qe)->hcb_qe.pre_rmv = BFA_TRUE; \
|
||||
(__qe)->data = (__data); \
|
||||
} while (0)
|
||||
|
||||
#endif /* __BFA_H__ */
|
||||
|
||||
@@ -1915,15 +1915,13 @@ bfa_comp_process(struct bfa_s *bfa, struct list_head *comp_q)
|
||||
struct list_head *qe;
|
||||
struct list_head *qen;
|
||||
struct bfa_cb_qe_s *hcb_qe;
|
||||
bfa_cb_cbfn_status_t cbfn;
|
||||
|
||||
list_for_each_safe(qe, qen, comp_q) {
|
||||
hcb_qe = (struct bfa_cb_qe_s *) qe;
|
||||
if (hcb_qe->pre_rmv) {
|
||||
/* qe is invalid after return, dequeue before cbfn() */
|
||||
list_del(qe);
|
||||
cbfn = (bfa_cb_cbfn_status_t)(hcb_qe->cbfn);
|
||||
cbfn(hcb_qe->cbarg, hcb_qe->fw_status);
|
||||
hcb_qe->cbfn_status(hcb_qe->cbarg, hcb_qe->fw_status);
|
||||
} else
|
||||
hcb_qe->cbfn(hcb_qe->cbarg, BFA_TRUE);
|
||||
}
|
||||
|
||||
@@ -369,14 +369,18 @@ struct bfa_reqq_wait_s {
|
||||
void *cbarg;
|
||||
};
|
||||
|
||||
typedef void (*bfa_cb_cbfn_t) (void *cbarg, bfa_boolean_t complete);
|
||||
typedef void (*bfa_cb_cbfn_t) (void *cbarg, bfa_boolean_t complete);
|
||||
typedef void (*bfa_cb_cbfn_status_t) (void *cbarg, bfa_status_t status);
|
||||
|
||||
/*
|
||||
* Generic BFA callback element.
|
||||
*/
|
||||
struct bfa_cb_qe_s {
|
||||
struct list_head qe;
|
||||
bfa_cb_cbfn_t cbfn;
|
||||
union {
|
||||
bfa_cb_cbfn_status_t cbfn_status;
|
||||
bfa_cb_cbfn_t cbfn;
|
||||
};
|
||||
bfa_boolean_t once;
|
||||
bfa_boolean_t pre_rmv; /* set for stack based qe(s) */
|
||||
bfa_status_t fw_status; /* to access fw status in comp proc */
|
||||
|
||||
@@ -2145,8 +2145,7 @@ bfad_iocmd_fcport_get_stats(struct bfad_s *bfad, void *cmd)
|
||||
struct bfa_cb_pending_q_s cb_qe;
|
||||
|
||||
init_completion(&fcomp.comp);
|
||||
bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp,
|
||||
&fcomp, &iocmd->stats);
|
||||
bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, &iocmd->stats);
|
||||
spin_lock_irqsave(&bfad->bfad_lock, flags);
|
||||
iocmd->status = bfa_fcport_get_stats(&bfad->bfa, &cb_qe);
|
||||
spin_unlock_irqrestore(&bfad->bfad_lock, flags);
|
||||
@@ -2169,7 +2168,7 @@ bfad_iocmd_fcport_reset_stats(struct bfad_s *bfad, void *cmd)
|
||||
struct bfa_cb_pending_q_s cb_qe;
|
||||
|
||||
init_completion(&fcomp.comp);
|
||||
bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp, &fcomp, NULL);
|
||||
bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, NULL);
|
||||
|
||||
spin_lock_irqsave(&bfad->bfad_lock, flags);
|
||||
iocmd->status = bfa_fcport_clear_stats(&bfad->bfa, &cb_qe);
|
||||
@@ -2453,8 +2452,7 @@ bfad_iocmd_qos_get_stats(struct bfad_s *bfad, void *cmd)
|
||||
struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
|
||||
|
||||
init_completion(&fcomp.comp);
|
||||
bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp,
|
||||
&fcomp, &iocmd->stats);
|
||||
bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, &iocmd->stats);
|
||||
|
||||
spin_lock_irqsave(&bfad->bfad_lock, flags);
|
||||
WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc));
|
||||
@@ -2484,8 +2482,7 @@ bfad_iocmd_qos_reset_stats(struct bfad_s *bfad, void *cmd)
|
||||
struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
|
||||
|
||||
init_completion(&fcomp.comp);
|
||||
bfa_pending_q_init(&cb_qe, (bfa_cb_cbfn_t)bfad_hcb_comp,
|
||||
&fcomp, NULL);
|
||||
bfa_pending_q_init_status(&cb_qe, bfad_hcb_comp, &fcomp, NULL);
|
||||
|
||||
spin_lock_irqsave(&bfad->bfad_lock, flags);
|
||||
WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc));
|
||||
|
||||
@@ -73,7 +73,21 @@ csio_list_deleted(struct list_head *list)
|
||||
#define csio_list_prev(elem) (((struct list_head *)(elem))->prev)
|
||||
|
||||
/* State machine */
|
||||
typedef void (*csio_sm_state_t)(void *, uint32_t);
|
||||
struct csio_lnode;
|
||||
|
||||
/* State machine evets */
|
||||
enum csio_ln_ev {
|
||||
CSIO_LNE_NONE = (uint32_t)0,
|
||||
CSIO_LNE_LINKUP,
|
||||
CSIO_LNE_FAB_INIT_DONE,
|
||||
CSIO_LNE_LINK_DOWN,
|
||||
CSIO_LNE_DOWN_LINK,
|
||||
CSIO_LNE_LOGO,
|
||||
CSIO_LNE_CLOSE,
|
||||
CSIO_LNE_MAX_EVENT,
|
||||
};
|
||||
|
||||
typedef void (*csio_sm_state_t)(struct csio_lnode *ln, enum csio_ln_ev evt);
|
||||
|
||||
struct csio_sm {
|
||||
struct list_head sm_list;
|
||||
@@ -83,7 +97,7 @@ struct csio_sm {
|
||||
static inline void
|
||||
csio_set_state(void *smp, void *state)
|
||||
{
|
||||
((struct csio_sm *)smp)->sm_state = (csio_sm_state_t)state;
|
||||
((struct csio_sm *)smp)->sm_state = state;
|
||||
}
|
||||
|
||||
static inline void
|
||||
|
||||
@@ -1087,7 +1087,7 @@ csio_handle_link_down(struct csio_hw *hw, uint8_t portid, uint32_t fcfi,
|
||||
int
|
||||
csio_is_lnode_ready(struct csio_lnode *ln)
|
||||
{
|
||||
return (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready));
|
||||
return (csio_get_state(ln) == csio_lns_ready);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -1359,15 +1359,15 @@ csio_free_fcfinfo(struct kref *kref)
|
||||
void
|
||||
csio_lnode_state_to_str(struct csio_lnode *ln, int8_t *str)
|
||||
{
|
||||
if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_uninit)) {
|
||||
if (csio_get_state(ln) == csio_lns_uninit) {
|
||||
strcpy(str, "UNINIT");
|
||||
return;
|
||||
}
|
||||
if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_ready)) {
|
||||
if (csio_get_state(ln) == csio_lns_ready) {
|
||||
strcpy(str, "READY");
|
||||
return;
|
||||
}
|
||||
if (csio_get_state(ln) == ((csio_sm_state_t)csio_lns_offline)) {
|
||||
if (csio_get_state(ln) == csio_lns_offline) {
|
||||
strcpy(str, "OFFLINE");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -53,19 +53,6 @@
|
||||
extern int csio_fcoe_rnodes;
|
||||
extern int csio_fdmi_enable;
|
||||
|
||||
/* State machine evets */
|
||||
enum csio_ln_ev {
|
||||
CSIO_LNE_NONE = (uint32_t)0,
|
||||
CSIO_LNE_LINKUP,
|
||||
CSIO_LNE_FAB_INIT_DONE,
|
||||
CSIO_LNE_LINK_DOWN,
|
||||
CSIO_LNE_DOWN_LINK,
|
||||
CSIO_LNE_LOGO,
|
||||
CSIO_LNE_CLOSE,
|
||||
CSIO_LNE_MAX_EVENT,
|
||||
};
|
||||
|
||||
|
||||
struct csio_fcf_info {
|
||||
struct list_head list;
|
||||
uint8_t priority;
|
||||
|
||||
@@ -4392,7 +4392,9 @@ _base_wait_for_iocstate(struct MPT3SAS_ADAPTER *ioc, int timeout)
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
issue_diag_reset:
|
||||
return 0;
|
||||
|
||||
issue_diag_reset:
|
||||
rc = _base_diag_reset(ioc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user