This is the 4.14.349 OpenELA-Extended LTS stable release

-----BEGIN PGP SIGNATURE-----
 
 iQJNBAABCAA3FiEERFwmR4yFob14UDOYC8702P6YulgFAmaYMNYZHHZlZ2FyZC5u
 b3NzdW1Ab3JhY2xlLmNvbQAKCRALzvTY/pi6WI+2EACbJP/GYZL4iZezt3yp9J6y
 ObeobshL3ODENH9J4Rpjo7EJNdRbiJmqK07C6g3gxfEBqYhMDxYCBbhwTTvvHmu7
 ezr1rmQmUlyzf2qW905a+rTawUrKztZpvZ0ycRXgfQHjX8w64salq/G5X9kJ1CZQ
 0TYwhDXXYRc1yuhJkVH0+ZUP+FvSBYXY42QZQ8tRzviBKgHUqyQ2JiLN7yGXStSp
 PEOCeXuEsQxkzbFU1rG7J9KXfUYndih+fiGSvuUUZF6WTHNobfkh+nrGzsdadtUp
 UW9nEdHjjEhTpTr125uOGc3H2Y1rWVPrcZ9kvJBhzf4WKNBFu2v7Bc5i2/Yz/jKU
 5cz7bjqpSnFOAmNe1f+pOO2oIsBk/xhAbMrPHS1eTJfUJmVL21HgDS3nXfV3yYcR
 0cHH10HGf7DEx2PRh3DM53XzaiumOXY3e/eFt+syYFWtsPY0XKHjsfwLeoujCVgh
 Sb6yiV1HTNg2hkGck+CQKTvHKZhSs1uE+vGSHiSTpryrsXYCTRJySSXEdiU0QpeL
 c9xzRE0PrUaUKNucdimGr6EqvXL11M1I59Z3ygk8vyLGI13vSmkRZ9Sl7m0tbirA
 0K1Ws2PkwuYQEOut8Esp6DJ2n38Uz3j0lnb2lreC0KbfXMvPWQfP81M1Lc+Pkpn6
 Zgbbs68F6jYs0KV/iRty2A==
 =RvUO
 -----END PGP SIGNATURE-----

Merge tag 'v4.14.349-openela' of https://github.com/openela/kernel-lts

This is the 4.14.349 OpenELA-Extended LTS stable release

* tag 'v4.14.349-openela' of https://github.com/openela/kernel-lts: (160 commits)
  LTS: Update to 4.14.349
  x86/kvm: Disable all PV features on crash
  x86/kvm: Disable kvmclock on all CPUs on shutdown
  x86/kvm: Teardown PV features on boot CPU as well
  crypto: algif_aead - fix uninitialized ctx->init
  nfs: fix undefined behavior in nfs_block_bits()
  ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()
  sparc: move struct termio to asm/termios.h
  kdb: Use format-specifiers rather than memset() for padding in kdb_read()
  kdb: Merge identical case statements in kdb_read()
  kdb: Fix console handling when editing and tab-completing commands
  kdb: Use format-strings rather than '\0' injection in kdb_read()
  kdb: Fix buffer overflow during tab-complete
  sparc64: Fix number of online CPUs
  intel_th: pci: Add Meteor Lake-S CPU support
  net/9p: fix uninit-value in p9_client_rpc()
  crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak
  KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
  netfilter: nft_dynset: relax superfluous check on set updates
  netfilter: nft_dynset: report EOPNOTSUPP on missing set feature
  ...

Change-Id: Idb0053e6b2186ef17f31e15fdb601ae451c81283
Signed-off-by: Richard Raya <rdxzv.dev@gmail.com>
This commit is contained in:
Richard Raya 2024-07-18 01:54:59 -03:00
commit fad3b5236d
156 changed files with 2714 additions and 943 deletions

View File

@ -1,5 +1,5 @@
upstream_repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git upstream_repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
upstream_base: 4.19.304 upstream_base: 4.19.304
base: 4.14.336 base: 4.14.336
upstream_version: 4.19.315 upstream_version: 4.19.316
version: 4.14.348 version: 4.14.349

613
.elts/meta/4.14.349.yaml Normal file
View File

@ -0,0 +1,613 @@
8bb6ee62c33b1f281b98b2dd19f1d7249a1ee5ab:
title: 'speakup: Fix sizeof() vs ARRAY_SIZE() bug'
mainline: 008ab3c53bc4f0b2f20013c8f6c204a3203d0b8b
upstream: 42f0a3f67158ed6b2908d2b9ffbf7e96d23fd358
a43f1f02b3a93c9a2da8ea92e4d6509d0a61ebd8:
title: 'ring-buffer: Fix a race between readers and resize checks'
mainline: c2274b908db05529980ec056359fae916939fdaa
upstream: b50932ea673b5a089a4bb570a8a868d95c72854e
39d470c1d65655756f7bc56eef30977466000040:
title: 'nilfs2: fix unexpected freezing of nilfs_segctor_sync()'
mainline: 936184eadd82906992ff1f5ab3aada70cce44cee
upstream: 072980bc50626c4557694ce54e3f6f2bde02b6e0
6696ef522ef729e48bb88e624f4b450cc48d0008:
title: 'nilfs2: fix potential hang in nilfs_detach_log_writer()'
mainline: eb85dace897c5986bc2f36b3c783c6abb8a4292e
upstream: 911d38be151921a5d152bb55e81fd752384c6830
478b032b9b295f6e4d224766b1d74f3f8d8015f5:
title: 'tty: n_gsm: fix possible out-of-bounds in gsm0_receive()'
mainline: 47388e807f85948eefc403a8a5fdc5b406a65d5a
upstream: 9513d4148950b05bc99fa7314dc883cc0e1605e5
0e454ea0aef962c0bc28aaec416c987c472ee16f:
title: 'wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class'
mainline: 9ef369973cd2c97cce3388d2c0c7e3c056656e8a
upstream: 5099e30dde0caffa9f0e2c41d7327fc3ed987fd5
52bed87bdd7ff234fbf08cffb5805fec3753a574:
title: 'net: usb: qmi_wwan: add Telit FN920C04 compositions'
mainline: 0b8fe5bd73249dc20be2e88a12041f8920797b59
upstream: 25468fffbbd2b0f06b4b12d79ff56cc5c40bfd1f
1de2264213019b0e94512027fedda73173da635e:
title: 'ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating'
mainline: 103abab975087e1f01b76fcb54c91dbb65dbc249
upstream: 5c50d2e998143ce00c0629dcaabd73c3d962545c
f5822a115c534c96bcde99428ab661088e193a09:
title: 'ASoC: dt-bindings: rt5645: add cbj sleeve gpio property'
mainline: 306b38e3fa727d22454a148a364123709e356600
upstream: 5af06b6c57a9bbfa9bd5421e28bcd5c571c5821e
6c8dd658875782d45f021c5015b9ec9bf5f5ff87:
title: 'ASoC: da7219-aad: fix usage of device_get_named_child_node()'
mainline: e8a6a5ad73acbafd98e8fd3f0cbf6e379771bb76
upstream: 6d2d2aaae1faa64c2f803d6f11f4b2df3b3c2cff
8355ba0b459240e847584f780402073b8236df46:
title: 'crypto: bcm - Fix pointer arithmetic'
mainline: 2b3460cbf454c6b03d7429e9ffc4fe09322eb1a9
upstream: c256b616067bfd6d274c679c06986b78d2402434
09020d6f62421e7fd4240279ff30dde78a0300bc:
title: 'firmware: raspberrypi: Use correct device for DMA mappings'
mainline: df518a0ae1b982a4dcf2235464016c0c4576a34d
upstream: b7277844e7e367381b2377853afceb58427cf6fb
78f8f3e6cf95446a03837bb11a67c4c2569ced32:
title: 'ecryptfs: Fix buffer size for tag 66 packet'
mainline: 85a6a1aff08ec9f5b929d345d066e2830e8818e5
upstream: 1c125b9287e58f364d82174efb167414b92b11f1
7ee6938a59b80751d7919f67a3c4fb585d3829f6:
title: 'nilfs2: fix out-of-range warning'
mainline: c473bcdd80d4ab2ae79a7a509a6712818366e32a
upstream: 7610fd35b74211ab8def4e124095e600a1ae945b
72d5387b60255610eb6fd5c18bb819fc39cc8917:
title: 'parisc: add missing export of __cmpxchg_u8()'
mainline: c57e5dccb06decf3cb6c272ab138c033727149b5
upstream: 63d5a72afbd1505f180e81bc72e056ceea28b43b
7eb7c75444aa358909836ea7ff4f692a53b199f9:
title: 'crypto: ccp - Remove forward declaration'
mainline: 3512dcb4e6c64733871202c01f0ec6b5d84d32ac
upstream: 4b713a1581b17a94a21699165a20d82eb0eca2dc
afb1d97ca2b2cdfa5f46e8eb9fc37934349bc34e:
title: 'crypto: ccp - drop platform ifdef checks'
mainline: 42c2d7d02977ef09d434b1f5b354f5bc6c1027ab
upstream: ce8f89223c9552d18b118596a85fd6cc237bc0e9
7375909839424727552bd0bb2022ca3db5c6ffe8:
title: 'jffs2: prevent xattr node from overflowing the eraseblock'
mainline: c6854e5a267c28300ff045480b5a7ee7f6f1d913
upstream: 2904e1d9b64f72d291095e3cbb31634f08788b11
a28a74b9a53b5b25cde8cfbea4c071f7a1c9beed:
title: 'null_blk: Fix missing mutex_destroy() at module removal'
mainline: 07d1b99825f40f9c0d93e6b99d79a08d0717bac1
upstream: 54ee1f7e2ea06e5c5341dc54255881fa5d11b312
520ccb81e3976c1c21d19d43265958faad0aee46:
title: 'nfsd: drop st_mutex before calling move_to_close_lru()'
mainline: 56c35f43eef013579c76c007ba1f386d8c2cac14
upstream: 52d3370e8022ce28cd8cf4d16c09245aa683d7fb
6faa6059493e8a857fe5c3b5e12a3ceec730cda3:
title: 'wifi: ath10k: poll service ready message before failing'
mainline: e57b7d62a1b2f496caf0beba81cec3c90fad80d5
upstream: 54e3970b1848856e49f8cd08751dcb010ac3296b
a2c3254bc18b8f7bea19a00d8e7ea4ec52e941c1:
title: 'x86/boot: Ignore relocations in .notes sections in walk_relocs() too'
mainline: 76e9762d66373354b45c33b60e9a53ef2a3c5ff2
upstream: 2487db16d4b9faead07b7825d33294e9e783791d
5b61b9cefdb45e69ab265050d603cdd30f3d089b:
title: 'scsi: ufs: qcom: Perform read back after writing reset bit'
mainline: c4d28e06b0c94636f6e35d003fa9ebac0a94e1ae
upstream: e6bfc88b60f0874a00b22f243a94a5e8601d5039
936e250e7ec6cb3bad3a8aa3a699a625e62cb5a6:
title: 'scsi: ufs: core: Perform read back after disabling interrupts'
mainline: e4a628877119bd40164a651d20321247b6f94a8b
upstream: bf144a2e3b5048e5a9e3baf19f54d5e865d578b4
c5a8d87d1f0792ab4f65cf240309a4effe22de01:
title: 'scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL'
mainline: 4bf3855497b60765ca03b983d064b25e99b97657
upstream: 8dfd79c1c31660549a03439d42794c138efa5432
94707145849c4be8019d4f7b2cce86402f9f9127:
title: 'irqchip/alpine-msi: Fix off-by-one in allocation error path'
mainline: ff3669a71afa06208de58d6bea1cc49d5e3fcbd1
upstream: 4654dfa98682444152aac9bcef50e0d5e114a135
96f2e9bb5b58c10a84e2a0064c7dc88cdcfff4d8:
title: 'ACPI: disable -Wstringop-truncation'
mainline: a3403d304708f60565582d60af4316289d0316a0
upstream: 2e816914b5ba234c3815ca80bffd2f3b3a7de6b0
8734c83b6dae36fbe4d97f42409e04459426858c:
title: 'scsi: libsas: Fix the failure of adding phy with zero-address to port'
mainline: 06036a0a5db34642c5dbe22021a767141f010b7a
upstream: 2d8f31aa03df040c58a2e4a0382b96269c1bf96a
784e2dc0d9be9b2e2ff8e3d05713f4d82895a489:
title: 'scsi: hpsa: Fix allocation size for Scsi_Host private data'
mainline: 504e2bed5d50610c1836046c0c195b0a6dba9c72
upstream: 9fc44d44b3b8eadd8b797462c733eb6c63598e6f
6541bba29a4584f20a372e98ca07659b1b971c3e:
title: 'wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()'
mainline: c511a9c12674d246916bb16c479d496b76983193
upstream: 569da482fdec15251ff113462717182d85bd1665
d85d76f39ef8f74c3ce4b2084bc1d56b90f808ce:
title: 'macintosh/via-macii: Remove BUG_ON assertions'
mainline: 5f93d7081a47e1972031ccf57c4b2779eee162fb
upstream: 880897e8a5ade054a04575e5d8cc2666da415ab4
cbe81c90b06ebd1a23367c8c594dbddac39d531c:
title: 'm68k/mac: Add mutual exclusion for IOP interrupt polling'
fad0ed0dd7bf14e6c89489e1db0486828e45f563:
title: 'macintosh/via-macii, macintosh/adb-iop: Clean up whitespace'
mainline: 47fd2060660e62b169990a6fcd9eb61bc1a85c5c
upstream: d0aa752285c9a35ee1ae0f2a4da10c5ceb6c09b6
82b5124ff8448c3b27d5cf963d835806a4ec8726:
title: 'macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"'
mainline: d301a71c76ee4c384b4e03cdc320a55f5cf1df05
upstream: e4ff8bcfb2841fe4e17e5901578b632adb89036d
e6c959db704b9f17b53d0d695ac791ddb180649b:
title: 'wifi: carl9170: add a proper sanity check for endpoints'
mainline: b6dd09b3dac89b45d1ea3e3bd035a3859c0369a0
upstream: eb0f2fc3ff5806cc572cd9055ce7c52a01e97645
0e282a437be278b5a28b5de56553710ca304877a:
title: 'wifi: ar5523: enable proper endpoint verification'
mainline: e120b6388d7d88635d67dcae6483f39c37111850
upstream: 79ddf5f2020fd593d50f1363bb5131283d74f78f
08d55870d721795f5ca9affb641a9d77a5cde478:
title: 'sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()'
mainline: 1422ae080b66134fe192082d9b721ab7bd93fcc5
upstream: 8ed15460d8bbc517bf54b24c7694e6c0ff174968
3d986276f8b5fa0dc170e1b35f0659b9ba4b2cd0:
title: 'Revert "sh: Handle calling csum_partial with misaligned data"'
mainline: b5319c96292ff877f6b58d349acf0a9dc8d3b454
upstream: 3c37203af733254154602273a970cfb7400c223e
2461969d18d1b3a8ca40c5203819221813d2fa47:
title: 'scsi: bfa: Ensure the copied buf is NUL terminated'
mainline: 13d0cecb4626fae67c00c84d3c7851f6b62f7df3
upstream: 481fc0c8617304a67649027c4a44723a139a0462
c2d34a41a30021d6947d93dee2373e98416296b8:
title: 'scsi: qedf: Ensure the copied buf is NUL terminated'
mainline: d0184a375ee797eb657d74861ba0935b6e405c62
upstream: 1f84a2744ad813be23fc4be99fb74bfb24aadb95
ceee9c23ca78be8cbe0b677623554c14da4a8ffe:
title: 'wifi: mwl8k: initialize cmd->addr[] properly'
mainline: 1d60eabb82694e58543e2b6366dae3e7465892a5
upstream: 6bc4e51e8d8451d40ec092d01119287af2acffcf
2341a1b273189a5673cfbb6a5badecca8e25d24a:
title: 'net: usb: sr9700: stop lying about skb->truesize'
mainline: 05417aa9c0c038da2464a0c504b9d4f99814a23b
upstream: c0aff9978bb6ead0aec382a2645a563a3dd2df38
314fdca9aa1eac5417fd9621bf4ebbacfd100e75:
title: 'm68k: Fix spinlock race in kernel thread creation'
mainline: da89ce46f02470ef08f0f580755d14d547da59ed
upstream: 2a8d1d95302c7d52c6ac8fa5cb4a6948ae0d3a14
4e23b79c4b130dd3049e3c0001d4926dcfacded5:
title: 'm68k/mac: Use ''030 reset method on SE/30'
mainline: 9c0e91f6b701dce6902408d50c4df9cebe4744f5
upstream: c96430d59c71a0e5c641b5267ccf141c501fe15e
3d47f159d4991609f1a71bb15683f1b8cac8d2a8:
title: 'm68k: mac: Fix reboot hang on Mac IIci'
mainline: 265a3b322df9a973ff1fc63da70af456ab6ae1d6
upstream: 8055e882c57031a5ca7fbf278796c19ded9f9d6f
be1d9f0e9de4ae6b3c0baed5547aa84be06f6548:
title: 'af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg'
mainline: 540bf24fba16b88c1b3b9353927204b4f1074e25
upstream: fca6072e1a7b1e709ada5604b951513b89b4bd0a
16d0a15317ccdd42565ee3b0b4414f7134f414ba:
title: 'net: usb: smsc95xx: stop lying about skb->truesize'
mainline: d50729f1d60bca822ef6d9c1a5fb28d486bd7593
upstream: 1010b50b2ebaaa863baeba7572267ac39bbb7adb
d84c07f0a36edfbb017f66723aff19b75408ec6a:
title: 'net: openvswitch: fix overwriting ct original tuple for ICMPv6'
mainline: 7c988176b6c16c516474f6fceebe0f055af5eb56
upstream: 6a51ac92bf35d34b4996d6eb67e2fe469f573b11
e990bf08d73df105508439d775a40706fa34e4da:
title: 'ipv6: sr: add missing seg6_local_exit'
mainline: 3321687e321307629c71b664225b861ebf3e5753
upstream: 9acb7ed4ff0e57b29326768aa8780f2ba2310090
32cc76dc98c3a167b25dfe1548848036fc07d834:
title: 'ipv6: sr: fix incorrect unregister order'
mainline: 6e370a771d2985107e82d0f6174381c1acb49c20
upstream: d55cf7ced48c5054a79829a0b14203710006a277
a7eb748e89ec4c74a795fd32380019f21ae75895:
title: 'ipv6: sr: fix invalid unregister error path'
mainline: 160e9d2752181fcf18c662e74022d77d3164cd45
upstream: 10610575a3ac2a702bf5c57aa931beaf847949c7
73bc0203a1791e5252c190a016d46502406d53f0:
title: 'mtd: rawnand: hynix: fixed typo'
mainline: 6819db94e1cd3ce24a432f3616cd563ed0c4eaba
upstream: 80850a39e2548988f4feae26f3fd66286b460278
4ba8a5fa126c85d319a0f1c773a15c04dde7d74c:
title: 'fbdev: shmobile: fix snprintf truncation'
mainline: 26c8cfb9d1e4b252336d23dd5127a8cbed414a32
upstream: f6100ea560ed320a397d99aad6ad6918f0f1a70a
43f9acac76b1661328292b13c57936252536a7ee:
title: 'drm/mediatek: Add 0 size check to mtk_drm_gem_obj'
mainline: 1e4350095e8ab2577ee05f8c3b044e661b5af9a0
upstream: 79078880795478d551a05acc41f957700030d364
27a754ac9d1b146c6690b8cc566be4df02028430:
title: 'powerpc/fsl-soc: hide unused const variable'
mainline: 01acaf3aa75e1641442cc23d8fe0a7bb4226efb1
upstream: b798cfeea12ebfd74c4bba511deb02956c97789e
a36a6656bdcc519ee8206e91a484c9545e41c428:
title: 'media: ngene: Add dvb_ca_en50221_init return value check'
mainline: 9bb1fd7eddcab2d28cfc11eb20f1029154dac718
upstream: 7394bab35c51cead246ef50d8c2e699e36032aed
83fe7e17269e69bb85c5dcde3543fe69a7d14907:
title: 'media: radio-shark2: Avoid led_names truncations'
mainline: 1820e16a3019b6258e6009d34432946a6ddd0a90
upstream: cbc12c9693fad0545fb0e753d78979026ae0772a
d1bafe8dbdd69b5b94c648616261b10f89e9e634:
title: 'fbdev: sh7760fb: allow modular build'
mainline: 51084f89d687e14d96278241e5200cde4b0985c7
upstream: 74bafc897cb6c83b29c66cb39e82936204a5e51f
8b76f73f5124b83712d6cdcb3ef990263e40c5f0:
title: 'ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value'
mainline: 58300f8d6a48e58d1843199be743f819e2791ea3
upstream: 60c68092723ea420215e9c3d5530038bc6568739
e39747d5b28a334d3aa4a7d53db14f9f30390923:
title: 'x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map'
mainline: 59162e0c11d7257cde15f907d19fefe26da66692
upstream: ef10bbdf4d59a98cf57ddf943756f14ef3cdbccd
668cfe934e0081e60581269d5afab127489cdfda:
title: 'ext4: avoid excessive credit estimate in ext4_tmpfile()'
mainline: 35a1f12f0ca857fee1d7a04ef52cbd5f1f84de13
upstream: 1f9e32f9ea3454f79d80c8af7fac54843beba7f6
0f0c8dcfaaff549a0397d3e63ec093c2ff6d602d:
title: 'selftests/kcmp: Make the test output consistent and clear'
mainline: ff682226a353d88ffa5db9c2a9b945066776311e
upstream: 32b0469d13ebeb008b39613eb5acf529a10e0bde
eea262830c62f8856fed4c532b5598f83c2972a9:
title: 'selftests/kcmp: remove unused open mode'
mainline: eb59a58113717df04b8a8229befd8ab1e5dbf86e
upstream: 24331545d6ff749a8dbfb09925af86e8cc50dad5
b3ab7172b68826ae894b394561679727af8e970d:
title: 'RDMA/ipoib: Fix use of sizeof()'
183cb1a936e35c5ae205498945addd70a31a61e0:
title: 'RDMA/IPoIB: Fix format truncation compilation errors'
mainline: 49ca2b2ef3d003402584c68ae7b3055ba72e750a
upstream: b469345f1fca84bed4dea3cae85faa401cf9bf3e
08f41b353c1621f65bd6f61aa5f5aed2fc1feb11:
title: 'netrom: fix possible dead-lock in nr_rt_ioctl()'
mainline: e03e7f20ebf7e1611d40d1fdc1bde900fd3335f6
upstream: b9d663fbf74290cb68fbc66ae4367bd56837ad1d
79417a25cb5eb9644fe89e5aae703a6b591669d5:
title: 'af_packet: do not call packet_read_pending() from tpacket_destruct_skb()'
mainline: 581073f626e387d3e7eed55c48c8495584ead7ba
upstream: 4f3ae7d846b4565c0b80d65ed607c3277bc984d4
03baaba21b3291e6300e4fafb8d2849f0389de3d:
title: 'sched/topology: Don''t set SD_BALANCE_WAKE on cpuset domain relax'
mainline: 9ae7ab20b4835dbea0e5fc6a5c70171dc354a72e
upstream: 046daa54c348ccec12ab38b92923060dd09ef00b
cd212b4b364b6efe32441d764cabaef2402c8eba:
title: 'sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level'
mainline: a1fd0b9d751f840df23ef0e75b691fc00cfd4743
upstream: 454de5ed81766fbbf4777c43392d8b0b35e7e16d
8d680792eafdefb9e3e547a305a505da085932ff:
title: 'greybus: lights: check return of get_channel_from_mode'
mainline: a1ba19a1ae7cd1e324685ded4ab563e78fe68648
upstream: 8f4a76d477f0cc3c54d512f07f6f88c8e1c1e07b
0d0f766835c349005332fd8e7b296660a7d6a65a:
title: 'dmaengine: idma64: Add check for dma_set_max_seg_size'
mainline: 2b1c1cf08a0addb6df42f16b37133dc7a351de29
upstream: 12c70cc851b263b8cc9479a23488992eeb4c35e6
e9c8e448b86118386e2aed7e3bb0e02fdbb68d14:
title: 'firmware: dmi-id: add a release callback function'
mainline: cf770af5645a41a753c55a053fa1237105b0964a
upstream: 20595142ca22ac2c8357564d9e7d52a0ffa471af
bcbacbcfd59ba38747a001592ffb3aae1118e5de:
title: 'serial: max3100: Lock port->lock when calling uart_handle_cts_change()'
mainline: 77ab53371a2066fdf9b895246505f5ef5a4b5d47
upstream: 44b38924135d2093e2ec1812969464845dd66dc9
c6cf8b544d9ca71186322b2ede24e7ded577381a:
title: 'serial: max3100: Update uart_driver_registered on driver removal'
mainline: 712a1fcb38dc7cac6da63ee79a88708fbf9c45ec
upstream: 21a61a7fbcfdd3493cede43ebc7c4dfae2147a8b
647c442cedd75f319c8ce8dc039c2d7baec68317:
title: 'serial: max3100: Fix bitwise types'
mainline: e60955dbecb97f080848a57524827e2db29c70fd
upstream: 2ae8d5726526c05452aff0444b0f305fdf89a32d
89f965ae0a3f751235963e2597c63fd9ce035113:
title: 'greybus: arche-ctrl: move device table to its right location'
mainline: 6a0b8c0da8d8d418cde6894a104cf74e6098ddfa
upstream: 22e65ed6799f2bfd059d633890d6c7ebe46abc9b
0328af15e33a89109f97c8abcce2119896607fb4:
title: 'usb: gadget: u_audio: Clear uac pointer when freed.'
mainline: a2cf936ebef291ef7395172b9e2f624779fb6dc0
upstream: a646645af00f65db78fe4a60f753f2b07df35b6e
5bbc7d325cef8fbd593fd8e71f12343c47028be1:
title: 'stm class: Fix a double free in stm_register_device()'
mainline: 3df463865ba42b8f88a590326f4c9ea17a1ce459
upstream: 6cc30ef8eb6d8f8d6df43152264bbf8835d99931
16e15c7fd21ec24f98668e5a7bf28ef5c1a0fcaa:
title: 'ppdev: Add an error check in register_device'
mainline: fbf740aeb86a4fe82ad158d26d711f2f3be79b3e
upstream: 65cd017d43f4319a56747d38308b0a24cf57299e
d1e6203d776319b888b57b1176df438ee85e67f7:
title: 'extcon: max8997: select IRQ_DOMAIN instead of depending on it'
mainline: b1781d0a1458070d40134e4f3412ec9d70099bec
upstream: b463819e3725b60c550145df952080b5d0fe85a7
46dc390d5714351d5b798312f8edf666e327a1ef:
title: 'f2fs: add error prints for debugging mount failure'
mainline: 9227d5227b8db354d386f592f159eaa44db1c0b8
upstream: 3506e1b893b5c2afa96922f36a01f018e4c4bbba
3fa32fd0a2737a59698613854994f72051a6d4bb:
title: 'libsubcmd: Fix parse-options memory leak'
mainline: 230a7a71f92212e723fa435d4ca5922de33ec88a
upstream: 3625187a973f16a3df59b803297816fe51d32400
41c0d9061a68f5979e3244c26854cef37d91382b:
title: 'Input: ims-pcu - fix printf string overflow'
mainline: bf32bceedd0453c70d9d022e2e29f98e446d7161
upstream: 502f295dcccf0ee7c4bddcf1ff2876987aaf89ca
7dfc577218ae7aeeadc5bdffe5727d57337904ee:
title: 'Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation'
mainline: 48c0687a322d54ac7e7a685c0b6db78d78f593af
upstream: fd4bb5284d34687c82356f07efe957af89ee51fe
bb75c00bad0d04025b00991fe16db2fc0504ce58:
title: 'um: Fix return value in ubd_init()'
mainline: 31a5990ed253a66712d7ddc29c92d297a991fdf2
upstream: d2640251f94078e1dcf0a26b1815601f6dbd5440
330646466ce0f4978524457d109ac80ece62c547:
title: 'um: Add winch to winch_handlers before registering winch IRQ'
mainline: a0fbbd36c156b9f7b2276871d499c9943dfe5101
upstream: 66ea9a7c6824821476914bed21a476cd20094f33
b7d9420c157cdb207a95dfc4a40edd116dedf355:
title: 'media: stk1160: fix bounds checking in stk1160_copy_video()'
mainline: faa4364bef2ec0060de381ff028d1d836600a381
upstream: f6a392266276730bea893b55d12940e32a25f56a
cd05d6e21092d824ec4d37f39f7583310d0442fa:
title: 'powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp'
mainline: 6d4341638516bf97b9a34947e0bd95035a8230a5
upstream: f0f4cb4cc3f43324bab3b5541b27e79cbd15c8d1
d6c506b111a38e5583e5bdd880cc0c04d7ef3948:
title: 'um: Fix the -Wmissing-prototypes warning for __switch_mm'
mainline: 2cbade17b18c0f0fd9963f26c9fc9b057eb1cb3a
upstream: c08650c13bfc05794855480cc51075fdfcc388e0
75fd6535ba80c0726e31004af666d80a0b9c3df8:
title: 'media: cec: cec-api: add locking in cec_release()'
mainline: 42bcaacae924bf18ae387c3f78c202df0b739292
upstream: d2cfbc5298add5e0c6cfe8b343f73dfdf01c8b1c
9da7f2b727fd54add9890e238847acf82d6807a1:
title: 'null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()'
mainline: 9e6727f824edcdb8fdd3e6e8a0862eb49546e1cd
upstream: 7471d0be031ab830a0fa154437601cff98f7068b
4e00769cc5020fde90269bdd1e5c24302b0ba6ce:
title: 'x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y'
mainline: 66ee3636eddcc82ab82b539d08b85fb5ac1dff9b
upstream: 28a7a1f9571068bb2ddc8a11f0afe5dfa9863462
3327ed68607e86e489af26305145830bf3f299a6:
title: 'nfc: nci: Fix uninit-value in nci_rx_work'
mainline: e4a87abf588536d1cdfb128595e6e680af5cf3ed
upstream: 406cfac9debd4a6d3dc5d9258ee086372a8c08b6
2d5acfc9e45f4597b931857dd92d2f29d2382ad7:
title: 'ipv6: sr: fix memleak in seg6_hmac_init_algo'
mainline: efb9f4f19f8e37fde43dfecebc80292d179f56c6
upstream: afd5730969aec960a2fee4e5ee839a6014643976
45e0b129726564750a58c06f1b4060b23f158960:
title: 'params: lift param_set_uint_minmax to common code'
mainline: 2a14c9ae15a38148484a128b84bff7e9ffd90d68
upstream: 459de98d7a6b3d504b5e8664f32f59a306dd425c
cf1096a1c8e1905df5e69949153c2598060457f0:
title: 'tcp: Fix shift-out-of-bounds in dctcp_update_alpha().'
mainline: 3ebc46ca8675de6378e3f8f40768e180bb8afa66
upstream: 06d0fe049b51b0a92a70df8333fd85c4ba3eb2c6
a629b0579dee6b041fdcad1859fa9f6a86da4ced:
title: 'openvswitch: Set the skbuff pkt_type for proper pmtud support.'
mainline: 30a92c9e3d6b073932762bef2ac66f4ee784c657
upstream: 62a95de44a9bc006e01b0afa1b1e8868dc6de9d1
0374a08aa5206c6200a88e0a122500dfd1d195f0:
title: 'arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY'
mainline: ffbf4fb9b5c12ff878a10ea17997147ea4ebea6f
upstream: f221bd58db0f6ca087ac0392284f6bce21f4f8ea
63c5945dbfcb8b6f4c260aef57172893a15ebbb3:
title: 'virtio: delete vq in vp_find_vqs_msix() when request_irq() fails'
mainline: 89875151fccdd024d571aa884ea97a0128b968b6
upstream: cb7a7c8144b434e06aba99b13b045a7efe859587
273d17ed35348d5e6cabe23d9170c876f95f3946:
title: 'net: fec: remove redundant variable ''inc'''
76ff93a5ccf6378571ba77875039f77752ac8a33:
title: 'net: fec: avoid lock evasion when reading pps_enable'
mainline: 3b1c92f8e5371700fada307cc8fd2c51fa7bc8c1
upstream: 4e4efb8f1b275e85c5c7f69087e392dbae437a8d
3267e236cb890a2ff6450ba831f3ad66386d6c4b:
title: 'nfc: nci: Fix kcov check in nci_rx_work()'
mainline: 19e35f24750ddf860c51e51c68cf07ea181b4881
upstream: c6c938ef515733a1c7af2c87dbc23138f402ba97
1a7a9cc0bb2c966cb7edee4a47dc81053e9030d8:
title: 'nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()'
mainline: 6671e352497ca4bb07a96c48e03907065ff77d8a
upstream: 8f02d494cebae48dbd14c582ad4b36846e211b6a
ac335a5fe30958ed4c81fac6b76e4b6c77f6f95d:
title: 'netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()'
mainline: dc21c6cc3d6986d938efbf95de62473982c98dec
upstream: 8658bd777cbfcb0c13df23d0ea120e70517761b9
0a359294f4d22e037ff38999b1fdaa688aab6e5f:
title: 'spi: Don''t mark message DMA mapped when no transfer in it is'
mainline: 9f788ba457b45b0ce422943fcec9fa35c4587764
upstream: c7893975764ba3b7a58a186f63dae188f7eddb18
5584ee5ae01187bdcb286738c27d8cecf7c2b92d:
title: 'nvmet: fix ns enable/disable possible hang'
mainline: f97914e35fd98b2b18fb8a092e0a0799f73afdfe
upstream: 36a935c8785a9ca95b094440a0450cd56b90e70c
d6e67757cebbeb5857838f51e2c514a3c9fc5557:
title: 'net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion'
mainline: 5c74195d5dd977e97556e6fa76909b831c241230
upstream: 19f9b6cb94eebb4ef2a4a6bca0ef595039d73e04
5beeab6917b9b59ab2c15744b190b3ad93c58687:
title: 'dma-buf/sw-sync: don''t enable IRQ from sync_print_obj()'
mainline: b794918961516f667b0c745aebdfebbb8a98df39
upstream: 1ff116f68560a25656933d5a18e7619cb6773d8a
3d00c58ac6d7f0fa0882aafb5b1ca2c3c22838eb:
title: 'enic: Validate length of nl attributes in enic_set_vf_port'
mainline: e8021b94b0412c37bcc79027c2e382086b6ce449
upstream: 2b649d7e0cb42a660f0260ef25fd55fdc9c6c600
d7936abfc24afa29d587b2bdd0829092dc478ebf:
title: 'smsc95xx: remove redundant function arguments'
mainline: 368be1ca28f66deba16627e2a02e78adedd023a6
upstream: eced17c8715d43ce16f61c5a6a49299fbf37c0a0
17ddb0fdf87c7f3f7c07e2721f688301411d2792:
title: 'smsc95xx: use usbnet->driver_priv'
mainline: ad90a73f0236c41f7a2dedc2e75c7b5a364eb93e
upstream: bcc526fec891dee22162082b1beeb9068b9eabb0
e0bd5cab3be56a1437e713a5411c458b80fa039c:
title: 'net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM'
mainline: 52a2f0608366a629d43dacd3191039c95fef74ba
upstream: 85b6bcf9d5e332aa9c4b7820cb3aa748c3df6a80
4c2d953d579bbc6018f916d7474ca42a0ea2471f:
title: 'net:fec: Add fec_enet_deinit()'
mainline: bf0497f53c8535f99b72041529d3f7708a6e2c0d
upstream: 416b0756721dcee2bb6227a4403e694011c32874
c00f30ffce7c99732b9610771908b84af2f7e95a:
title: 'kconfig: fix comparison to constant symbols, ''m'', ''n'''
mainline: aabdc960a283ba78086b0bf66ee74326f49e218e
upstream: 6bfda3ef7f6a2c1de30e70d67e901aa966f40c17
59e5a44b8b298cec43305d8ba650673094448b28:
title: 'net: add DEV_STATS_READ() helper'
mainline: 0b068c714ca9479d2783cc333fff5bc2d4a6d45c
f18d1f1dd0f85682cce01581ea7c2596d0d35ead:
title: 'ipvlan: properly track tx_errors'
mainline: ff672b9ffeb3f82135488ac16c5c5eb4b992999b
41e5da22e02a94825b061ad86f10c9d6955727fd:
title: 'ipvlan: add ipvlan_route_v6_outbound() helper'
mainline: 18f039428c7df183b09c69ebf10ffd4e521035d2
3a016fed8503f04152b170bc324fd7fbbfb155e4:
title: 'ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound'
mainline: b3dc6e8003b500861fa307e9a3400c52e78e4d3a
upstream: 0049a623dfbbb49888de7f0c2f33a582b5ead989
24212e46bb2a25ec7c7ef9c45a40670608a3a0f8:
title: 'ALSA: timer: Simplify timer hw resolution calls'
804b59ac965568b4ac7b1788ba8b3b324e362693:
title: 'ALSA: timer: Set lower bound of start tick time'
mainline: 4a63bd179fa8d3fcc44a0d9d71d941ddd62f0c4e
upstream: 68396c825c43664b20a3a1ba546844deb2b4e48f
f642f364e2b4e4302e6b41f1583603a9be83baef:
title: 'binder: fix max_thread type inconsistency'
mainline: 42316941335644a98335f209daafa4c122f28983
upstream: c437184be3c16f7123e5c59b4c85c1101f4dc96b
5584cc5bd6c850f9738f7b249be3d298f0012a16:
title: 'mmc: core: Do not force a retune before RPMB switch'
mainline: 67380251e8bbd3302c64fea07f95c31971b91c22
upstream: bda1d354bef71be32aaf2c5e6b96eef854b3dd4e
042d63a09767b3d6d006fc867d77cf610bfcdebf:
title: 'fs/nilfs2: convert timers to use timer_setup()'
705fabd9032429d644eee84edc1d45f740edcc81:
title: 'nilfs2: fix use-after-free of timer for log writer thread'
mainline: f5d4e04634c9cf68bdf23de08ada0bb92e8befe7
upstream: 822ae5a8eac30478578a75f7e064f0584931bf2d
7e6f3eaf97955faec6cf408b6404a35cf2c82ea0:
title: 'vxlan: Fix regression when dropping packets due to invalid src addresses'
mainline: 1cd4bc987abb2823836cbb8f887026011ccddc8a
upstream: f6141cbc2b5af521b1711e95363302b858a38729
34358bf261de42b079db6cbd5ae3b074282cd00f:
title: 'neighbour: fix unaligned access to pneigh_entry'
mainline: ed779fe4c9b5a20b4ab4fd6f3e19807445bb78c7
upstream: f451d1a013fd585cbf70a65ca6b9cf3548bb039f
792524d8e1b344cedcb40983a8756d4793a22e9e:
title: 'ata: pata_legacy: make legacy_exit() work again'
mainline: d4a89339f17c87c4990070e9116462d16e75894f
upstream: 21604179f67bd484790c296565bdc38f7a40fe35
aa9c43942fc69f5e652d6b4f68e0e2bf75868c7e:
title: 'arm64: tegra: Correct Tegra132 I2C alias'
mainline: 2633c58e1354d7de2c8e7be8bdb6f68a0a01bad7
upstream: 40f76e72ec0ebe27dcff9bfd5de8e65e1a2b8939
d7263704edf4ee2783b116f64f407752d5b2f2bf:
title: 'md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING'
mainline: 151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa
upstream: b32aa95843cac6b12c2c014d40fca18aef24a347
964fdd7feb56e40a55b89328877b0a7103bb4084:
title: 'arm64: dts: hi3798cv200: fix the size of GICR'
mainline: 428a575dc9038846ad259466d5ba109858c0a023
upstream: 26e62b983a31b304733fb21f4b576a4a1e171297
35d3fa1859980a84c64c51b04a2ac57ffe5af109:
title: 'media: mxl5xx: Move xpt structures off stack'
mainline: 526f4527545b2d4ce0733733929fac7b6da09ac6
upstream: 772f5e31ed2d6bc5e8698394e4d13b298060c74a
2046df24d6472a520a62d52a72d84d180b3e363c:
title: 'media: v4l2-core: hold videodev_lock until dev reg, finishes'
mainline: 1ed4477f2ea4743e7c5e1f9f3722152d14e6eeb1
upstream: 1ea3de272f5cc7603610b96316f9ed07bec6c2d0
293140832f7230044b5f6888d0110714f51b554f:
title: 'fbdev: savage: Handle err return when savagefb_check_var failed'
mainline: 6ad959b6703e2c4c5d7af03b4cfd5ff608036339
upstream: be754cbd77eaf2932408a4e18532e4945274a5c7
832e81e147209b23bc09678738383b7bc258b448:
title: 'netfilter: nf_tables: add nft_set_is_anonymous() helper'
05084047e524051c0ea37f6b3183017d783e6e20:
title: 'netfilter: nf_tables: fix set double-free in abort path'
mainline: 40ba1d9b4d19796afc9b7ece872f5f3e8f5e2c13
c4af59f2d8336214168c4e0778a1a0a62afcbdc4:
title: 'netfilter: nf_tables: pass context to nft_set_destroy()'
mainline: 0c2a85edd143162b3a698f31e94bf8cdc041da87
upstream: 525561faa075cb49905783fd3e4e16b66b218846
b42c75cd69307b546b719cc59fb421a7c80a980f:
title: 'netfilter: nftables: rename set element data activation/deactivation functions'
mainline: f8bb7889af58d8e74d2d61c76b1418230f1610fa
upstream: 68b10f33a37e942bdc06b9cb313ad4e1b1f612e8
e4382ad0d81a0f37c3d430a3009f597568a949a4:
title: 'netfilter: nf_tables: pass ctx to nf_tables_expr_destroy()'
50bfcb0af95ae860d93c151604451b9a10af6e06:
title: 'netfilter: nf_tables: drop map element references from preparation phase'
mainline: 628bd3e49cba1c066228e23d71a852c23e26da73
upstream: bc9f791d2593f17e39f87c6e2b3a36549a3705b1
4538b02484e4c2d0c016ca190c5219fd97f932fb:
title: 'netfilter: nf_tables: don''t skip expired elements during walk'
mainline: 24138933b97b055d486e8064b4a1721702442a9b
upstream: 94313a196b44184b5b52c1876da6a537701b425a
ea71b10a3d18e5589f44b836a83003a6e741d6bb:
title: 'netfilter: nft_dynset: report EOPNOTSUPP on missing set feature'
mainline: 95cd4bca7b1f4a25810f3ddfc5e767fb46931789
upstream: c5c4746c8cd6d049dcbf39c811172c917ea6fb6e
fa8b9918795f9be7f4ca95f5440acff86fe946db:
title: 'netfilter: nft_dynset: relax superfluous check on set updates'
mainline: 7b1394892de8d95748d05e3ee41e85edb4abbfa1
upstream: 79e98cd78610560a6a6cf85200eb31331602f9a9
6658c1ef0cb35d3d594507db800cb44a54db4f75:
title: 'KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode'
mainline: dfe6d190f38fc5df5ff2614b463a5195a399c885
upstream: 3c9ee8294728633e707c25fe0a321eeac1cc7515
9d5b95ce1488266fd3dc3951da6c8ce25c366ada:
title: 'crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak'
mainline: d3b17c6d9dddc2db3670bc9be628b122416a3d26
upstream: 0ce5964b82f212f4df6a9813f09a0b5de15bd9c8
9a9a74f4cdb1295a5a854d2ca6cb87fc19048ef3:
title: 'net/9p: fix uninit-value in p9_client_rpc()'
mainline: 25460d6f39024cc3b8241b14c7ccf0d6f11a736a
upstream: 72c5d8e416ecc46af370a1340b3db5ff0b0cc867
471ea347bb7d4b16dd62a6642efb111fa36f2da7:
title: 'intel_th: pci: Add Meteor Lake-S CPU support'
mainline: a4f813c3ec9d1c32bc402becd1f011b3904dd699
upstream: 58c0309c73fe1e9c477ed4cc5d02fc9015336979
9f2edbc910b189e46e7ca3d17680e36fde63276d:
title: 'sparc64: Fix number of online CPUs'
mainline: 98937707fea8375e8acea0aaa0b68a956dd52719
upstream: 180b2e4c1ba4f6e3e4c52d6664cb019f6eac02f8
f751d9a9f3d6c01908cf9bc9d966a35ecc1a2f64:
title: 'kdb: Fix buffer overflow during tab-complete'
mainline: e9730744bf3af04cda23799029342aa3cddbc454
upstream: fb824a99e148ff272a53d71d84122728b5f00992
f990953b6d8d752849e6f682628d4632f051b7de:
title: 'kdb: Use format-strings rather than ''\0'' injection in kdb_read()'
mainline: 09b35989421dfd5573f0b4683c7700a7483c71f9
upstream: 4edfbbaca46491b06af14e49dcb79ac661d0bbdc
fc2a098bc09c4f9968c93222902d72f518ec6953:
title: 'kdb: Fix console handling when editing and tab-completing commands'
mainline: db2f9c7dc29114f531df4a425d0867d01e1f1e28
upstream: 21c068c1bbb4c336741749596d004b1965faab2c
201f3d45deb9bcf1046483d72642d8457976c7a9:
title: 'kdb: Merge identical case statements in kdb_read()'
mainline: 6244917f377bf64719551b58592a02a0336a7439
upstream: 4a89182788f9af9a290c19098382fb972ebe2783
c89fb4fb7559ec8e3f74ecbc29ef856a47cc85d4:
title: 'kdb: Use format-specifiers rather than memset() for padding in kdb_read()'
mainline: c9b51ddb66b1d96e4d364c088da0f1dfb004c574
upstream: 2467f3f182eb35627534effd4956fceb2504c127
212ca5dd4286a76808254db293bd898a062b56e3:
title: 'sparc: move struct termio to asm/termios.h'
mainline: c32d18e7942d7589b62e301eb426b32623366565
upstream: 980a1cd6e092eab9398a78f517809a7dacaa0468
199f7d837409f78087fde12a33c486d4d866c16e:
title: 'ext4: fix mb_cache_entry''s e_refcnt leak in ext4_xattr_block_cache_find()'
mainline: 0c0b4a49d3e7f49690a6827a41faeffad5df7e21
upstream: 9ad75e78747b5a50dc5a52f0f8e92e920a653f16
593e234893f02097b207840c7c31b4d91b64ca14:
title: 'nfs: fix undefined behavior in nfs_block_bits()'
mainline: 3c0a2e0b0ae661457c8505fecc7be5501aa7a715
upstream: 74ea538aa24490d7d259c881189bb58dbf1f692c
aa4a1101113a8425c065d44e33c636cad583327d:
title: 'crypto: algif_aead - fix uninitialized ctx->init'
8949bc46fedc763c195c9a72f69abb9405cac9dc:
title: 'x86/kvm: Teardown PV features on boot CPU as well'
mainline: 8b79feffeca28c5459458fe78676b081e87c93a4
227178f3eba56c465bdd554e9786a0699bbf40d4:
title: 'x86/kvm: Disable kvmclock on all CPUs on shutdown'
mainline: c02027b5742b5aa804ef08a4a9db433295533046
f07e26ece43c2b61389d2a56226ea19d3bd40c57:
title: 'x86/kvm: Disable all PV features on crash'
mainline: 3d6b84132d2a57b5a74100f6923a8feb679ac2ce

View File

@ -0,0 +1,830 @@
bfaadbda9b75e4726783f8ca55ceac1fedbf2deb:
title: 'x86/tsc: Trust initial offset in architectural TSC-adjust MSRs'
mainline: 455f9075f14484f358b3c1d6845b4a438de198a7
skipped: commit did not cherry-pick cleanly
42f0a3f67158ed6b2908d2b9ffbf7e96d23fd358:
title: 'speakup: Fix sizeof() vs ARRAY_SIZE() bug'
mainline: 008ab3c53bc4f0b2f20013c8f6c204a3203d0b8b
backport: 8bb6ee62c33b1f281b98b2dd19f1d7249a1ee5ab
b50932ea673b5a089a4bb570a8a868d95c72854e:
title: 'ring-buffer: Fix a race between readers and resize checks'
mainline: c2274b908db05529980ec056359fae916939fdaa
backport: a43f1f02b3a93c9a2da8ea92e4d6509d0a61ebd8
0ca720bd1834c4577426d1fb5a75faa19aa089bf:
title: 'net: smc91x: Fix m68k kernel compilation for ColdFire CPU'
mainline: 5eefb477d21a26183bc3499aeefa991198315a2d
skipped: fixes patch not in branch
072980bc50626c4557694ce54e3f6f2bde02b6e0:
title: 'nilfs2: fix unexpected freezing of nilfs_segctor_sync()'
mainline: 936184eadd82906992ff1f5ab3aada70cce44cee
backport: 39d470c1d65655756f7bc56eef30977466000040
911d38be151921a5d152bb55e81fd752384c6830:
title: 'nilfs2: fix potential hang in nilfs_detach_log_writer()'
mainline: eb85dace897c5986bc2f36b3c783c6abb8a4292e
backport: 6696ef522ef729e48bb88e624f4b450cc48d0008
9513d4148950b05bc99fa7314dc883cc0e1605e5:
title: 'tty: n_gsm: fix possible out-of-bounds in gsm0_receive()'
mainline: 47388e807f85948eefc403a8a5fdc5b406a65d5a
backport: 478b032b9b295f6e4d224766b1d74f3f8d8015f5
5099e30dde0caffa9f0e2c41d7327fc3ed987fd5:
title: 'wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class'
mainline: 9ef369973cd2c97cce3388d2c0c7e3c056656e8a
backport: 0e454ea0aef962c0bc28aaec416c987c472ee16f
25468fffbbd2b0f06b4b12d79ff56cc5c40bfd1f:
title: 'net: usb: qmi_wwan: add Telit FN920C04 compositions'
mainline: 0b8fe5bd73249dc20be2e88a12041f8920797b59
backport: 52bed87bdd7ff234fbf08cffb5805fec3753a574
074218a00cf59abff526b79dcd34d461ce81ae4c:
title: 'drm/amd/display: Set color_mgmt_changed to true on unsuspend'
mainline: 2eb9dd497a698dc384c0dd3e0311d541eb2e13dd
skipped: file is not in 4.14.y
5c50d2e998143ce00c0629dcaabd73c3d962545c:
title: 'ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating'
mainline: 103abab975087e1f01b76fcb54c91dbb65dbc249
backport: 1de2264213019b0e94512027fedda73173da635e
5af06b6c57a9bbfa9bd5421e28bcd5c571c5821e:
title: 'ASoC: dt-bindings: rt5645: add cbj sleeve gpio property'
mainline: 306b38e3fa727d22454a148a364123709e356600
backport: f5822a115c534c96bcde99428ab661088e193a09
6d2d2aaae1faa64c2f803d6f11f4b2df3b3c2cff:
title: 'ASoC: da7219-aad: fix usage of device_get_named_child_node()'
mainline: e8a6a5ad73acbafd98e8fd3f0cbf6e379771bb76
backport: 6c8dd658875782d45f021c5015b9ec9bf5f5ff87
c256b616067bfd6d274c679c06986b78d2402434:
title: 'crypto: bcm - Fix pointer arithmetic'
mainline: 2b3460cbf454c6b03d7429e9ffc4fe09322eb1a9
backport: 8355ba0b459240e847584f780402073b8236df46
b7277844e7e367381b2377853afceb58427cf6fb:
title: 'firmware: raspberrypi: Use correct device for DMA mappings'
mainline: df518a0ae1b982a4dcf2235464016c0c4576a34d
backport: 09020d6f62421e7fd4240279ff30dde78a0300bc
1c125b9287e58f364d82174efb167414b92b11f1:
title: 'ecryptfs: Fix buffer size for tag 66 packet'
mainline: 85a6a1aff08ec9f5b929d345d066e2830e8818e5
backport: 78f8f3e6cf95446a03837bb11a67c4c2569ced32
7610fd35b74211ab8def4e124095e600a1ae945b:
title: 'nilfs2: fix out-of-range warning'
mainline: c473bcdd80d4ab2ae79a7a509a6712818366e32a
backport: 7ee6938a59b80751d7919f67a3c4fb585d3829f6
63d5a72afbd1505f180e81bc72e056ceea28b43b:
title: 'parisc: add missing export of __cmpxchg_u8()'
mainline: c57e5dccb06decf3cb6c272ab138c033727149b5
backport: 72d5387b60255610eb6fd5c18bb819fc39cc8917
4b713a1581b17a94a21699165a20d82eb0eca2dc:
title: 'crypto: ccp - Remove forward declaration'
mainline: 3512dcb4e6c64733871202c01f0ec6b5d84d32ac
backport: 7eb7c75444aa358909836ea7ff4f692a53b199f9
ce8f89223c9552d18b118596a85fd6cc237bc0e9:
title: 'crypto: ccp - drop platform ifdef checks'
mainline: 42c2d7d02977ef09d434b1f5b354f5bc6c1027ab
backport: afb1d97ca2b2cdfa5f46e8eb9fc37934349bc34e
77edda3c53d696fa30fa0352e18aad485716ffad:
title: 's390/cio: fix tracepoint subchannel type field'
mainline: 8692a24d0fae19f674d51726d179ad04ba95d958
skipped: fixes patch not in branch
2904e1d9b64f72d291095e3cbb31634f08788b11:
title: 'jffs2: prevent xattr node from overflowing the eraseblock'
mainline: c6854e5a267c28300ff045480b5a7ee7f6f1d913
backport: 7375909839424727552bd0bb2022ca3db5c6ffe8
54ee1f7e2ea06e5c5341dc54255881fa5d11b312:
title: 'null_blk: Fix missing mutex_destroy() at module removal'
mainline: 07d1b99825f40f9c0d93e6b99d79a08d0717bac1
backport: a28a74b9a53b5b25cde8cfbea4c071f7a1c9beed
d4b9c764d48fa41caa24cfb4275f3aa9fb4bd798:
title: 'md: fix resync softlockup when bitmap size is less than array size'
mainline: f0e729af2eb6bee9eb58c4df1087f14ebaefe26b
skipped: fixes patch not in branch
eb984e08100e42c20f05e425590ee1e78e092b9d:
title: 'power: supply: cros_usbpd: provide ID table for avoiding fallback match'
mainline: 0f8678c34cbfdc63569a9b0ede1fe235ec6ec693
skipped: file is not in 4.14.y
52d3370e8022ce28cd8cf4d16c09245aa683d7fb:
title: 'nfsd: drop st_mutex before calling move_to_close_lru()'
mainline: 56c35f43eef013579c76c007ba1f386d8c2cac14
backport: 520ccb81e3976c1c21d19d43265958faad0aee46
54e3970b1848856e49f8cd08751dcb010ac3296b:
title: 'wifi: ath10k: poll service ready message before failing'
mainline: e57b7d62a1b2f496caf0beba81cec3c90fad80d5
backport: 6faa6059493e8a857fe5c3b5e12a3ceec730cda3
2487db16d4b9faead07b7825d33294e9e783791d:
title: 'x86/boot: Ignore relocations in .notes sections in walk_relocs() too'
mainline: 76e9762d66373354b45c33b60e9a53ef2a3c5ff2
backport: a2c3254bc18b8f7bea19a00d8e7ea4ec52e941c1
6780fe28e415c84f81ee7fc30027e57105f0b136:
title: 'qed: avoid truncating work queue length'
mainline: 954fd908f177604d4cce77e2a88cc50b29bad5ff
skipped: fixes patch not in branch
e6bfc88b60f0874a00b22f243a94a5e8601d5039:
title: 'scsi: ufs: qcom: Perform read back after writing reset bit'
mainline: c4d28e06b0c94636f6e35d003fa9ebac0a94e1ae
backport: 5b61b9cefdb45e69ab265050d603cdd30f3d089b
ea2cebd3b66bffa2630e413553776a4dbdca641a:
title: 'scsi: ufs: cleanup struct utp_task_req_desc'
mainline: 391e388f853dad5d1d7462a31bb50ff2446e37f0
skipped: commit did not cherry-pick cleanly
359975cbf2551e40130cc604e2753f65585b68d0:
title: 'scsi: ufs: add a low-level __ufshcd_issue_tm_cmd helper'
mainline: c6049cd98212dfe39f67fb411d18d53df0ad9436
skipped: commit did not cherry-pick cleanly
bf144a2e3b5048e5a9e3baf19f54d5e865d578b4:
title: 'scsi: ufs: core: Perform read back after disabling interrupts'
mainline: e4a628877119bd40164a651d20321247b6f94a8b
backport: 936e250e7ec6cb3bad3a8aa3a699a625e62cb5a6
8dfd79c1c31660549a03439d42794c138efa5432:
title: 'scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL'
mainline: 4bf3855497b60765ca03b983d064b25e99b97657
backport: c5a8d87d1f0792ab4f65cf240309a4effe22de01
4654dfa98682444152aac9bcef50e0d5e114a135:
title: 'irqchip/alpine-msi: Fix off-by-one in allocation error path'
mainline: ff3669a71afa06208de58d6bea1cc49d5e3fcbd1
backport: 94707145849c4be8019d4f7b2cce86402f9f9127
2e816914b5ba234c3815ca80bffd2f3b3a7de6b0:
title: 'ACPI: disable -Wstringop-truncation'
mainline: a3403d304708f60565582d60af4316289d0316a0
backport: 96f2e9bb5b58c10a84e2a0064c7dc88cdcfff4d8
2d8f31aa03df040c58a2e4a0382b96269c1bf96a:
title: 'scsi: libsas: Fix the failure of adding phy with zero-address to port'
mainline: 06036a0a5db34642c5dbe22021a767141f010b7a
backport: 8734c83b6dae36fbe4d97f42409e04459426858c
9fc44d44b3b8eadd8b797462c733eb6c63598e6f:
title: 'scsi: hpsa: Fix allocation size for Scsi_Host private data'
mainline: 504e2bed5d50610c1836046c0c195b0a6dba9c72
backport: 784e2dc0d9be9b2e2ff8e3d05713f4d82895a489
8b434681a6e7b2cae1452f1932d59c069236e9d2:
title: 'x86/purgatory: Switch to the position-independent small code model'
mainline: cba786af84a0f9716204e09f518ce3b7ada8555e
skipped: fixes patch not in branch
569da482fdec15251ff113462717182d85bd1665:
title: 'wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()'
mainline: c511a9c12674d246916bb16c479d496b76983193
backport: 6541bba29a4584f20a372e98ca07659b1b971c3e
7020f6ad57cfd532a106542c2015710170270d21:
title: 'wifi: ath10k: populate board data for WCN3990'
mainline: f1f1b5b055c9f27a2f90fd0f0521f5920e9b3c18
skipped: fixes patch not in branch
880897e8a5ade054a04575e5d8cc2666da415ab4:
title: 'macintosh/via-macii: Remove BUG_ON assertions'
mainline: 5f93d7081a47e1972031ccf57c4b2779eee162fb
backport: d85d76f39ef8f74c3ce4b2084bc1d56b90f808ce
d0aa752285c9a35ee1ae0f2a4da10c5ceb6c09b6:
title: 'macintosh/via-macii, macintosh/adb-iop: Clean up whitespace'
mainline: 47fd2060660e62b169990a6fcd9eb61bc1a85c5c
backport: fad0ed0dd7bf14e6c89489e1db0486828e45f563
e4ff8bcfb2841fe4e17e5901578b632adb89036d:
title: 'macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"'
mainline: d301a71c76ee4c384b4e03cdc320a55f5cf1df05
backport: 82b5124ff8448c3b27d5cf963d835806a4ec8726
eb0f2fc3ff5806cc572cd9055ce7c52a01e97645:
title: 'wifi: carl9170: add a proper sanity check for endpoints'
mainline: b6dd09b3dac89b45d1ea3e3bd035a3859c0369a0
backport: e6c959db704b9f17b53d0d695ac791ddb180649b
79ddf5f2020fd593d50f1363bb5131283d74f78f:
title: 'wifi: ar5523: enable proper endpoint verification'
mainline: e120b6388d7d88635d67dcae6483f39c37111850
backport: 0e282a437be278b5a28b5de56553710ca304877a
8ed15460d8bbc517bf54b24c7694e6c0ff174968:
title: 'sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()'
mainline: 1422ae080b66134fe192082d9b721ab7bd93fcc5
backport: 08d55870d721795f5ca9affb641a9d77a5cde478
3c37203af733254154602273a970cfb7400c223e:
title: 'Revert "sh: Handle calling csum_partial with misaligned data"'
mainline: b5319c96292ff877f6b58d349acf0a9dc8d3b454
backport: 3d986276f8b5fa0dc170e1b35f0659b9ba4b2cd0
481fc0c8617304a67649027c4a44723a139a0462:
title: 'scsi: bfa: Ensure the copied buf is NUL terminated'
mainline: 13d0cecb4626fae67c00c84d3c7851f6b62f7df3
backport: 2461969d18d1b3a8ca40c5203819221813d2fa47
1f84a2744ad813be23fc4be99fb74bfb24aadb95:
title: 'scsi: qedf: Ensure the copied buf is NUL terminated'
mainline: d0184a375ee797eb657d74861ba0935b6e405c62
backport: c2d34a41a30021d6947d93dee2373e98416296b8
6bc4e51e8d8451d40ec092d01119287af2acffcf:
title: 'wifi: mwl8k: initialize cmd->addr[] properly'
mainline: 1d60eabb82694e58543e2b6366dae3e7465892a5
backport: ceee9c23ca78be8cbe0b677623554c14da4a8ffe
c0aff9978bb6ead0aec382a2645a563a3dd2df38:
title: 'net: usb: sr9700: stop lying about skb->truesize'
mainline: 05417aa9c0c038da2464a0c504b9d4f99814a23b
backport: 2341a1b273189a5673cfbb6a5badecca8e25d24a
2a8d1d95302c7d52c6ac8fa5cb4a6948ae0d3a14:
title: 'm68k: Fix spinlock race in kernel thread creation'
mainline: da89ce46f02470ef08f0f580755d14d547da59ed
backport: 314fdca9aa1eac5417fd9621bf4ebbacfd100e75
c96430d59c71a0e5c641b5267ccf141c501fe15e:
title: 'm68k/mac: Use ''030 reset method on SE/30'
mainline: 9c0e91f6b701dce6902408d50c4df9cebe4744f5
backport: 4e23b79c4b130dd3049e3c0001d4926dcfacded5
8055e882c57031a5ca7fbf278796c19ded9f9d6f:
title: 'm68k: mac: Fix reboot hang on Mac IIci'
mainline: 265a3b322df9a973ff1fc63da70af456ab6ae1d6
backport: 3d47f159d4991609f1a71bb15683f1b8cac8d2a8
0a60bdd5ac8a51ac9c04bd19fee30c1c4f178dc3:
title: 'net: ethernet: cortina: Locking fixes'
mainline: 812552808f7ff71133fc59768cdc253c5b8ca1bf
skipped: fixes patch not in branch
fca6072e1a7b1e709ada5604b951513b89b4bd0a:
title: 'af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg'
mainline: 540bf24fba16b88c1b3b9353927204b4f1074e25
backport: be1d9f0e9de4ae6b3c0baed5547aa84be06f6548
1010b50b2ebaaa863baeba7572267ac39bbb7adb:
title: 'net: usb: smsc95xx: stop lying about skb->truesize'
mainline: d50729f1d60bca822ef6d9c1a5fb28d486bd7593
backport: 16d0a15317ccdd42565ee3b0b4414f7134f414ba
6a51ac92bf35d34b4996d6eb67e2fe469f573b11:
title: 'net: openvswitch: fix overwriting ct original tuple for ICMPv6'
mainline: 7c988176b6c16c516474f6fceebe0f055af5eb56
backport: d84c07f0a36edfbb017f66723aff19b75408ec6a
9acb7ed4ff0e57b29326768aa8780f2ba2310090:
title: 'ipv6: sr: add missing seg6_local_exit'
mainline: 3321687e321307629c71b664225b861ebf3e5753
backport: e990bf08d73df105508439d775a40706fa34e4da
d55cf7ced48c5054a79829a0b14203710006a277:
title: 'ipv6: sr: fix incorrect unregister order'
mainline: 6e370a771d2985107e82d0f6174381c1acb49c20
backport: 32cc76dc98c3a167b25dfe1548848036fc07d834
10610575a3ac2a702bf5c57aa931beaf847949c7:
title: 'ipv6: sr: fix invalid unregister error path'
mainline: 160e9d2752181fcf18c662e74022d77d3164cd45
backport: a7eb748e89ec4c74a795fd32380019f21ae75895
604c506ca43fce52bb882cff9c1fdf2ec3b4029c:
title: 'drm/amd/display: Fix potential index out of bounds in color transformation function'
mainline: 63ae548f1054a0b71678d0349c7dc9628ddd42ca
skipped: fixes patch not in branch
80850a39e2548988f4feae26f3fd66286b460278:
title: 'mtd: rawnand: hynix: fixed typo'
mainline: 6819db94e1cd3ce24a432f3616cd563ed0c4eaba
backport: 73bc0203a1791e5252c190a016d46502406d53f0
f6100ea560ed320a397d99aad6ad6918f0f1a70a:
title: 'fbdev: shmobile: fix snprintf truncation'
mainline: 26c8cfb9d1e4b252336d23dd5127a8cbed414a32
backport: 4ba8a5fa126c85d319a0f1c773a15c04dde7d74c
79078880795478d551a05acc41f957700030d364:
title: 'drm/mediatek: Add 0 size check to mtk_drm_gem_obj'
mainline: 1e4350095e8ab2577ee05f8c3b044e661b5af9a0
backport: 43f9acac76b1661328292b13c57936252536a7ee
b798cfeea12ebfd74c4bba511deb02956c97789e:
title: 'powerpc/fsl-soc: hide unused const variable'
mainline: 01acaf3aa75e1641442cc23d8fe0a7bb4226efb1
backport: 27a754ac9d1b146c6690b8cc566be4df02028430
6891334b1458739701885fef2909daef754654fa:
title: 'fbdev: sisfb: hide unused variables'
mainline: 688cf598665851b9e8cb5083ff1d208ce43d10ff
skipped: fixes patch not in branch
7394bab35c51cead246ef50d8c2e699e36032aed:
title: 'media: ngene: Add dvb_ca_en50221_init return value check'
mainline: 9bb1fd7eddcab2d28cfc11eb20f1029154dac718
backport: a36a6656bdcc519ee8206e91a484c9545e41c428
cbc12c9693fad0545fb0e753d78979026ae0772a:
title: 'media: radio-shark2: Avoid led_names truncations'
mainline: 1820e16a3019b6258e6009d34432946a6ddd0a90
backport: 83fe7e17269e69bb85c5dcde3543fe69a7d14907
74bafc897cb6c83b29c66cb39e82936204a5e51f:
title: 'fbdev: sh7760fb: allow modular build'
mainline: 51084f89d687e14d96278241e5200cde4b0985c7
backport: d1bafe8dbdd69b5b94c648616261b10f89e9e634
b6cc5dd06336ed8bb3a7a1fc5aaf7d5e88bc0818:
title: 'drm/arm/malidp: fix a possible null pointer dereference'
mainline: a1f95aede6285dba6dd036d907196f35ae3a11ea
skipped: fixes patch not in branch
60c68092723ea420215e9c3d5530038bc6568739:
title: 'ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value'
mainline: 58300f8d6a48e58d1843199be743f819e2791ea3
backport: 8b76f73f5124b83712d6cdcb3ef990263e40c5f0
9b7b7f640f078cfe90319190b59efcde3acc1952:
title: 'RDMA/hns: Use complete parentheses in macros'
mainline: 4125269bb9b22e1d8cdf4412c81be8074dbc61ca
skipped: fixes patch not in branch
ef10bbdf4d59a98cf57ddf943756f14ef3cdbccd:
title: 'x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map'
mainline: 59162e0c11d7257cde15f907d19fefe26da66692
backport: e39747d5b28a334d3aa4a7d53db14f9f30390923
1f9e32f9ea3454f79d80c8af7fac54843beba7f6:
title: 'ext4: avoid excessive credit estimate in ext4_tmpfile()'
mainline: 35a1f12f0ca857fee1d7a04ef52cbd5f1f84de13
backport: 668cfe934e0081e60581269d5afab127489cdfda
ab8466d4e26806a4ae82c282762c4545eecf45ef:
title: 'SUNRPC: Fix gss_free_in_token_pages()'
mainline: bafa6b4d95d97877baa61883ff90f7e374427fae
skipped: fixes patch not in branch
32b0469d13ebeb008b39613eb5acf529a10e0bde:
title: 'selftests/kcmp: Make the test output consistent and clear'
mainline: ff682226a353d88ffa5db9c2a9b945066776311e
backport: 0f0c8dcfaaff549a0397d3e63ec093c2ff6d602d
24331545d6ff749a8dbfb09925af86e8cc50dad5:
title: 'selftests/kcmp: remove unused open mode'
mainline: eb59a58113717df04b8a8229befd8ab1e5dbf86e
backport: eea262830c62f8856fed4c532b5598f83c2972a9
b469345f1fca84bed4dea3cae85faa401cf9bf3e:
title: 'RDMA/IPoIB: Fix format truncation compilation errors'
mainline: 49ca2b2ef3d003402584c68ae7b3055ba72e750a
backport: 183cb1a936e35c5ae205498945addd70a31a61e0
b9d663fbf74290cb68fbc66ae4367bd56837ad1d:
title: 'netrom: fix possible dead-lock in nr_rt_ioctl()'
mainline: e03e7f20ebf7e1611d40d1fdc1bde900fd3335f6
backport: 08f41b353c1621f65bd6f61aa5f5aed2fc1feb11
4f3ae7d846b4565c0b80d65ed607c3277bc984d4:
title: 'af_packet: do not call packet_read_pending() from tpacket_destruct_skb()'
mainline: 581073f626e387d3e7eed55c48c8495584ead7ba
backport: 79417a25cb5eb9644fe89e5aae703a6b591669d5
046daa54c348ccec12ab38b92923060dd09ef00b:
title: 'sched/topology: Don''t set SD_BALANCE_WAKE on cpuset domain relax'
mainline: 9ae7ab20b4835dbea0e5fc6a5c70171dc354a72e
backport: 03baaba21b3291e6300e4fafb8d2849f0389de3d
454de5ed81766fbbf4777c43392d8b0b35e7e16d:
title: 'sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level'
mainline: a1fd0b9d751f840df23ef0e75b691fc00cfd4743
backport: cd212b4b364b6efe32441d764cabaef2402c8eba
8f4a76d477f0cc3c54d512f07f6f88c8e1c1e07b:
title: 'greybus: lights: check return of get_channel_from_mode'
mainline: a1ba19a1ae7cd1e324685ded4ab563e78fe68648
backport: 8d680792eafdefb9e3e547a305a505da085932ff
12c70cc851b263b8cc9479a23488992eeb4c35e6:
title: 'dmaengine: idma64: Add check for dma_set_max_seg_size'
mainline: 2b1c1cf08a0addb6df42f16b37133dc7a351de29
backport: 0d0f766835c349005332fd8e7b296660a7d6a65a
20595142ca22ac2c8357564d9e7d52a0ffa471af:
title: 'firmware: dmi-id: add a release callback function'
mainline: cf770af5645a41a753c55a053fa1237105b0964a
backport: e9c8e448b86118386e2aed7e3bb0e02fdbb68d14
44b38924135d2093e2ec1812969464845dd66dc9:
title: 'serial: max3100: Lock port->lock when calling uart_handle_cts_change()'
mainline: 77ab53371a2066fdf9b895246505f5ef5a4b5d47
backport: bcbacbcfd59ba38747a001592ffb3aae1118e5de
21a61a7fbcfdd3493cede43ebc7c4dfae2147a8b:
title: 'serial: max3100: Update uart_driver_registered on driver removal'
mainline: 712a1fcb38dc7cac6da63ee79a88708fbf9c45ec
backport: c6cf8b544d9ca71186322b2ede24e7ded577381a
2ae8d5726526c05452aff0444b0f305fdf89a32d:
title: 'serial: max3100: Fix bitwise types'
mainline: e60955dbecb97f080848a57524827e2db29c70fd
backport: 647c442cedd75f319c8ce8dc039c2d7baec68317
22e65ed6799f2bfd059d633890d6c7ebe46abc9b:
title: 'greybus: arche-ctrl: move device table to its right location'
mainline: 6a0b8c0da8d8d418cde6894a104cf74e6098ddfa
backport: 89f965ae0a3f751235963e2597c63fd9ce035113
2822594f2dac6e493379885cef54fd179d8de8c5:
title: 'microblaze: Remove gcc flag for non existing early_printk.c file'
mainline: edc66cf0c4164aa3daf6cc55e970bb94383a6a57
skipped: fixes patch not in branch
d481ddb83d2d92c31479cdfaa7fdd97a73697992:
title: 'microblaze: Remove early printk call from cpuinfo-static.c'
mainline: 58d647506c92ccd3cfa0c453c68ddd14f40bf06f
skipped: fixes patch not in branch
a646645af00f65db78fe4a60f753f2b07df35b6e:
title: 'usb: gadget: u_audio: Clear uac pointer when freed.'
mainline: a2cf936ebef291ef7395172b9e2f624779fb6dc0
backport: 0328af15e33a89109f97c8abcce2119896607fb4
6cc30ef8eb6d8f8d6df43152264bbf8835d99931:
title: 'stm class: Fix a double free in stm_register_device()'
mainline: 3df463865ba42b8f88a590326f4c9ea17a1ce459
backport: 5bbc7d325cef8fbd593fd8e71f12343c47028be1
1e4805ba1b7800f2acfdd0b2e6588e4b64d6c493:
title: 'ppdev: Remove usage of the deprecated ida_simple_xx() API'
mainline: d8407f71ebeaeb6f50bd89791837873e44609708
skipped: new API does not exist in 4.14
65cd017d43f4319a56747d38308b0a24cf57299e:
title: 'ppdev: Add an error check in register_device'
mainline: fbf740aeb86a4fe82ad158d26d711f2f3be79b3e
backport: 16e15c7fd21ec24f98668e5a7bf28ef5c1a0fcaa
b463819e3725b60c550145df952080b5d0fe85a7:
title: 'extcon: max8997: select IRQ_DOMAIN instead of depending on it'
mainline: b1781d0a1458070d40134e4f3412ec9d70099bec
backport: d1e6203d776319b888b57b1176df438ee85e67f7
3506e1b893b5c2afa96922f36a01f018e4c4bbba:
title: 'f2fs: add error prints for debugging mount failure'
mainline: 9227d5227b8db354d386f592f159eaa44db1c0b8
backport: 46dc390d5714351d5b798312f8edf666e327a1ef
bc14bb3ef307947fc3110bca8a34a85a63300b6c:
title: 'f2fs: fix to release node block count in error path of f2fs_new_node_page()'
mainline: 0fa4e57c1db263effd72d2149d4e21da0055c316
skipped: fixes patch not in branch
82b6263b330a2b94a0b1d5c5d5543db7e24340ec:
title: 'serial: sh-sci: Extract sci_dma_rx_chan_invalidate()'
mainline: 11b3770d54b28dcd905155a6d4aa551187ff00eb
skipped: dependency for a patch not needed for 4.14.y
03023fd058fab714309a8d91ccdf1b3c5bb816d3:
title: 'serial: sh-sci: protect invalidating RXDMA on shutdown'
mainline: aae20f6e34cd0cbd67a1d0e5877561c40109a81b
skipped: fixes patch not in branch
3625187a973f16a3df59b803297816fe51d32400:
title: 'libsubcmd: Fix parse-options memory leak'
mainline: 230a7a71f92212e723fa435d4ca5922de33ec88a
backport: 3fa32fd0a2737a59698613854994f72051a6d4bb
502f295dcccf0ee7c4bddcf1ff2876987aaf89ca:
title: 'Input: ims-pcu - fix printf string overflow'
mainline: bf32bceedd0453c70d9d022e2e29f98e446d7161
backport: 41c0d9061a68f5979e3244c26854cef37d91382b
fd4bb5284d34687c82356f07efe957af89ee51fe:
title: 'Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation'
mainline: 48c0687a322d54ac7e7a685c0b6db78d78f593af
backport: 7dfc577218ae7aeeadc5bdffe5727d57337904ee
732e700a1689fbdb8ac94faeb7765e81456b0a95:
title: 'drm/msm/dpu: use kms stored hw mdp block'
mainline: 57250ca5433306774e7f83b11503609ed1bf28cf
skipped: file is not in 4.14.y
d2640251f94078e1dcf0a26b1815601f6dbd5440:
title: 'um: Fix return value in ubd_init()'
mainline: 31a5990ed253a66712d7ddc29c92d297a991fdf2
backport: bb75c00bad0d04025b00991fe16db2fc0504ce58
66ea9a7c6824821476914bed21a476cd20094f33:
title: 'um: Add winch to winch_handlers before registering winch IRQ'
mainline: a0fbbd36c156b9f7b2276871d499c9943dfe5101
backport: 330646466ce0f4978524457d109ac80ece62c547
f6a392266276730bea893b55d12940e32a25f56a:
title: 'media: stk1160: fix bounds checking in stk1160_copy_video()'
mainline: faa4364bef2ec0060de381ff028d1d836600a381
backport: b7d9420c157cdb207a95dfc4a40edd116dedf355
f0f4cb4cc3f43324bab3b5541b27e79cbd15c8d1:
title: 'powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp'
mainline: 6d4341638516bf97b9a34947e0bd95035a8230a5
backport: cd05d6e21092d824ec4d37f39f7583310d0442fa
c08650c13bfc05794855480cc51075fdfcc388e0:
title: 'um: Fix the -Wmissing-prototypes warning for __switch_mm'
mainline: 2cbade17b18c0f0fd9963f26c9fc9b057eb1cb3a
backport: d6c506b111a38e5583e5bdd880cc0c04d7ef3948
896dfd4d74f84c854d3a24d889e54a44329d313e:
title: 'media: cec: cec-adap: always cancel work in cec_transmit_msg_fh'
mainline: 9fe2816816a3c765dff3b88af5b5c3d9bbb911ce
skipped: fixes patch not in branch
d2cfbc5298add5e0c6cfe8b343f73dfdf01c8b1c:
title: 'media: cec: cec-api: add locking in cec_release()'
mainline: 42bcaacae924bf18ae387c3f78c202df0b739292
backport: 75fd6535ba80c0726e31004af666d80a0b9c3df8
7471d0be031ab830a0fa154437601cff98f7068b:
title: 'null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()'
mainline: 9e6727f824edcdb8fdd3e6e8a0862eb49546e1cd
backport: 9da7f2b727fd54add9890e238847acf82d6807a1
28a7a1f9571068bb2ddc8a11f0afe5dfa9863462:
title: 'x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y'
mainline: 66ee3636eddcc82ab82b539d08b85fb5ac1dff9b
backport: 4e00769cc5020fde90269bdd1e5c24302b0ba6ce
406cfac9debd4a6d3dc5d9258ee086372a8c08b6:
title: 'nfc: nci: Fix uninit-value in nci_rx_work'
mainline: e4a87abf588536d1cdfb128595e6e680af5cf3ed
backport: 3327ed68607e86e489af26305145830bf3f299a6
afd5730969aec960a2fee4e5ee839a6014643976:
title: 'ipv6: sr: fix memleak in seg6_hmac_init_algo'
mainline: efb9f4f19f8e37fde43dfecebc80292d179f56c6
backport: 2d5acfc9e45f4597b931857dd92d2f29d2382ad7
459de98d7a6b3d504b5e8664f32f59a306dd425c:
title: 'params: lift param_set_uint_minmax to common code'
mainline: 2a14c9ae15a38148484a128b84bff7e9ffd90d68
backport: 45e0b129726564750a58c06f1b4060b23f158960
06d0fe049b51b0a92a70df8333fd85c4ba3eb2c6:
title: 'tcp: Fix shift-out-of-bounds in dctcp_update_alpha().'
mainline: 3ebc46ca8675de6378e3f8f40768e180bb8afa66
backport: cf1096a1c8e1905df5e69949153c2598060457f0
62a95de44a9bc006e01b0afa1b1e8868dc6de9d1:
title: 'openvswitch: Set the skbuff pkt_type for proper pmtud support.'
mainline: 30a92c9e3d6b073932762bef2ac66f4ee784c657
backport: a629b0579dee6b041fdcad1859fa9f6a86da4ced
f221bd58db0f6ca087ac0392284f6bce21f4f8ea:
title: 'arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY'
mainline: ffbf4fb9b5c12ff878a10ea17997147ea4ebea6f
backport: 0374a08aa5206c6200a88e0a122500dfd1d195f0
cb7a7c8144b434e06aba99b13b045a7efe859587:
title: 'virtio: delete vq in vp_find_vqs_msix() when request_irq() fails'
mainline: 89875151fccdd024d571aa884ea97a0128b968b6
backport: 63c5945dbfcb8b6f4c260aef57172893a15ebbb3
4e4efb8f1b275e85c5c7f69087e392dbae437a8d:
title: 'net: fec: avoid lock evasion when reading pps_enable'
mainline: 3b1c92f8e5371700fada307cc8fd2c51fa7bc8c1
backport: 76ff93a5ccf6378571ba77875039f77752ac8a33
c6c938ef515733a1c7af2c87dbc23138f402ba97:
title: 'nfc: nci: Fix kcov check in nci_rx_work()'
mainline: 19e35f24750ddf860c51e51c68cf07ea181b4881
backport: 3267e236cb890a2ff6450ba831f3ad66386d6c4b
8f02d494cebae48dbd14c582ad4b36846e211b6a:
title: 'nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()'
mainline: 6671e352497ca4bb07a96c48e03907065ff77d8a
backport: 1a7a9cc0bb2c966cb7edee4a47dc81053e9030d8
8658bd777cbfcb0c13df23d0ea120e70517761b9:
title: 'netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()'
mainline: dc21c6cc3d6986d938efbf95de62473982c98dec
backport: ac335a5fe30958ed4c81fac6b76e4b6c77f6f95d
c7893975764ba3b7a58a186f63dae188f7eddb18:
title: 'spi: Don''t mark message DMA mapped when no transfer in it is'
mainline: 9f788ba457b45b0ce422943fcec9fa35c4587764
backport: 0a359294f4d22e037ff38999b1fdaa688aab6e5f
36a935c8785a9ca95b094440a0450cd56b90e70c:
title: 'nvmet: fix ns enable/disable possible hang'
mainline: f97914e35fd98b2b18fb8a092e0a0799f73afdfe
backport: 5584ee5ae01187bdcb286738c27d8cecf7c2b92d
19f9b6cb94eebb4ef2a4a6bca0ef595039d73e04:
title: 'net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion'
mainline: 5c74195d5dd977e97556e6fa76909b831c241230
backport: d6e67757cebbeb5857838f51e2c514a3c9fc5557
1ff116f68560a25656933d5a18e7619cb6773d8a:
title: 'dma-buf/sw-sync: don''t enable IRQ from sync_print_obj()'
mainline: b794918961516f667b0c745aebdfebbb8a98df39
backport: 5beeab6917b9b59ab2c15744b190b3ad93c58687
2b649d7e0cb42a660f0260ef25fd55fdc9c6c600:
title: 'enic: Validate length of nl attributes in enic_set_vf_port'
mainline: e8021b94b0412c37bcc79027c2e382086b6ce449
backport: 3d00c58ac6d7f0fa0882aafb5b1ca2c3c22838eb
eced17c8715d43ce16f61c5a6a49299fbf37c0a0:
title: 'smsc95xx: remove redundant function arguments'
mainline: 368be1ca28f66deba16627e2a02e78adedd023a6
backport: d7936abfc24afa29d587b2bdd0829092dc478ebf
bcc526fec891dee22162082b1beeb9068b9eabb0:
title: 'smsc95xx: use usbnet->driver_priv'
mainline: ad90a73f0236c41f7a2dedc2e75c7b5a364eb93e
backport: 17ddb0fdf87c7f3f7c07e2721f688301411d2792
85b6bcf9d5e332aa9c4b7820cb3aa748c3df6a80:
title: 'net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM'
mainline: 52a2f0608366a629d43dacd3191039c95fef74ba
backport: e0bd5cab3be56a1437e713a5411c458b80fa039c
416b0756721dcee2bb6227a4403e694011c32874:
title: 'net:fec: Add fec_enet_deinit()'
mainline: bf0497f53c8535f99b72041529d3f7708a6e2c0d
backport: 4c2d953d579bbc6018f916d7474ca42a0ea2471f
6bfda3ef7f6a2c1de30e70d67e901aa966f40c17:
title: 'kconfig: fix comparison to constant symbols, ''m'', ''n'''
mainline: aabdc960a283ba78086b0bf66ee74326f49e218e
backport: c00f30ffce7c99732b9610771908b84af2f7e95a
0049a623dfbbb49888de7f0c2f33a582b5ead989:
title: 'ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound'
mainline: b3dc6e8003b500861fa307e9a3400c52e78e4d3a
backport: 3a016fed8503f04152b170bc324fd7fbbfb155e4
68396c825c43664b20a3a1ba546844deb2b4e48f:
title: 'ALSA: timer: Set lower bound of start tick time'
mainline: 4a63bd179fa8d3fcc44a0d9d71d941ddd62f0c4e
backport: 804b59ac965568b4ac7b1788ba8b3b324e362693
a40209d355afe4ed6d533507838c9e5cd70a76d8:
title: 'genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline'
mainline: a6c11c0a5235fb144a65e0cb2ffd360ddc1f6c32
skipped: too risky to backport
57ff6c0a175930856213b2aa39f8c845a53e5b1c:
title: 'SUNRPC: Fix loop termination condition in gss_free_in_token_pages()'
mainline: 4a77c3dead97339478c7422eb07bf4bf63577008
skipped: fixes patch not in branch
c437184be3c16f7123e5c59b4c85c1101f4dc96b:
title: 'binder: fix max_thread type inconsistency'
mainline: 42316941335644a98335f209daafa4c122f28983
backport: f642f364e2b4e4302e6b41f1583603a9be83baef
bda1d354bef71be32aaf2c5e6b96eef854b3dd4e:
title: 'mmc: core: Do not force a retune before RPMB switch'
mainline: 67380251e8bbd3302c64fea07f95c31971b91c22
backport: 5584cc5bd6c850f9738f7b249be3d298f0012a16
822ae5a8eac30478578a75f7e064f0584931bf2d:
title: 'nilfs2: fix use-after-free of timer for log writer thread'
mainline: f5d4e04634c9cf68bdf23de08ada0bb92e8befe7
backport: 705fabd9032429d644eee84edc1d45f740edcc81
f6141cbc2b5af521b1711e95363302b858a38729:
title: 'vxlan: Fix regression when dropping packets due to invalid src addresses'
mainline: 1cd4bc987abb2823836cbb8f887026011ccddc8a
backport: 7e6f3eaf97955faec6cf408b6404a35cf2c82ea0
f451d1a013fd585cbf70a65ca6b9cf3548bb039f:
title: 'neighbour: fix unaligned access to pneigh_entry'
mainline: ed779fe4c9b5a20b4ab4fd6f3e19807445bb78c7
backport: 34358bf261de42b079db6cbd5ae3b074282cd00f
21604179f67bd484790c296565bdc38f7a40fe35:
title: 'ata: pata_legacy: make legacy_exit() work again'
mainline: d4a89339f17c87c4990070e9116462d16e75894f
backport: 792524d8e1b344cedcb40983a8756d4793a22e9e
40f76e72ec0ebe27dcff9bfd5de8e65e1a2b8939:
title: 'arm64: tegra: Correct Tegra132 I2C alias'
mainline: 2633c58e1354d7de2c8e7be8bdb6f68a0a01bad7
backport: aa9c43942fc69f5e652d6b4f68e0e2bf75868c7e
b32aa95843cac6b12c2c014d40fca18aef24a347:
title: 'md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING'
mainline: 151f66bb618d1fd0eeb84acb61b4a9fa5d8bb0fa
backport: d7263704edf4ee2783b116f64f407752d5b2f2bf
e9b77b537a198235a518f71a274348afd1288467:
title: 'wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU'
mainline: 08b5d052d17a89bb8706b2888277d0b682dc1610
skipped: u32_get_bits() does not build
26e62b983a31b304733fb21f4b576a4a1e171297:
title: 'arm64: dts: hi3798cv200: fix the size of GICR'
mainline: 428a575dc9038846ad259466d5ba109858c0a023
backport: 964fdd7feb56e40a55b89328877b0a7103bb4084
772f5e31ed2d6bc5e8698394e4d13b298060c74a:
title: 'media: mxl5xx: Move xpt structures off stack'
mainline: 526f4527545b2d4ce0733733929fac7b6da09ac6
backport: 35d3fa1859980a84c64c51b04a2ac57ffe5af109
1ea3de272f5cc7603610b96316f9ed07bec6c2d0:
title: 'media: v4l2-core: hold videodev_lock until dev reg, finishes'
mainline: 1ed4477f2ea4743e7c5e1f9f3722152d14e6eeb1
backport: 2046df24d6472a520a62d52a72d84d180b3e363c
be754cbd77eaf2932408a4e18532e4945274a5c7:
title: 'fbdev: savage: Handle err return when savagefb_check_var failed'
mainline: 6ad959b6703e2c4c5d7af03b4cfd5ff608036339
backport: 293140832f7230044b5f6888d0110714f51b554f
525561faa075cb49905783fd3e4e16b66b218846:
title: 'netfilter: nf_tables: pass context to nft_set_destroy()'
mainline: 0c2a85edd143162b3a698f31e94bf8cdc041da87
backport: c4af59f2d8336214168c4e0778a1a0a62afcbdc4
68b10f33a37e942bdc06b9cb313ad4e1b1f612e8:
title: 'netfilter: nftables: rename set element data activation/deactivation functions'
mainline: f8bb7889af58d8e74d2d61c76b1418230f1610fa
backport: b42c75cd69307b546b719cc59fb421a7c80a980f
bc9f791d2593f17e39f87c6e2b3a36549a3705b1:
title: 'netfilter: nf_tables: drop map element references from preparation phase'
mainline: 628bd3e49cba1c066228e23d71a852c23e26da73
backport: 50bfcb0af95ae860d93c151604451b9a10af6e06
c6d5477753caa9ab0c5c043bf5d0fad29d1e596d:
title: 'netfilter: nft_set_rbtree: allow loose matching of closing element in interval'
mainline: 3b18d5eba491b2328b31efa4235724a2354af010
skipped: fixes patch not in branch
1302ba27fdc84ba0786301575dbcd2e1eddbcdc0:
title: 'netfilter: nft_set_rbtree: Add missing expired checks'
mainline: 340eaff651160234bdbce07ef34b92a8e45cd540
skipped: fixes patch not in branch
7ab87a326f20c52ff4d9972052d085be951c704b:
title: 'netfilter: nft_set_rbtree: Switch to node list walk for overlap detection'
mainline: c9e6978e2725a7d4b6cd23b2facd3f11422c0643
skipped: fixes patch not in branch
b76db53ee8802ee5683f8cb401d7e2ec6f9b3d56:
title: 'netfilter: nft_set_rbtree: fix null deref on element insertion'
mainline: 61ae320a29b0540c16931816299eb86bf2b66c08
skipped: fixes patch not in branch
8284a79136c384059e85e278da2210b809730287:
title: 'netfilter: nft_set_rbtree: fix overlap expiration walk'
mainline: f718863aca469a109895cb855e6b81fff4827d71
skipped: fixes patch not in branch
94313a196b44184b5b52c1876da6a537701b425a:
title: 'netfilter: nf_tables: don''t skip expired elements during walk'
mainline: 24138933b97b055d486e8064b4a1721702442a9b
backport: 4538b02484e4c2d0c016ca190c5219fd97f932fb
8da1b048f9a501d3d7d38c188ba09d7d0d5b8c27:
title: 'netfilter: nf_tables: GC transaction API to avoid race with control plane'
mainline: 5f68718b34a531a556f2f50300ead2862278da26
skipped: too risky to backport
cb4d00b563675ba8ff6ef94b077f58d816f68ba3:
title: 'netfilter: nf_tables: adapt set backend to use GC transaction API'
mainline: f6c383b8c31a93752a52697f8430a71dcbc46adf
skipped: too risky to backport
a35a20e083be2b507c30cc216b59d1a57f381d9b:
title: 'netfilter: nf_tables: remove busy mark and gc batch API'
mainline: a2dd0233cbc4d8a0abb5f64487487ffc9265beb5
skipped: too risky to backport
e7b86599fa945f3ce2bcbb95b4bbf1febbd3b087:
title: 'netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path'
mainline: 6a33d8b73dfac0a41f3877894b38082bd0c9a5bc
skipped: too risky to backport
9a3f450ed90c72b6b80fd6e8974cbe8683c7365f:
title: 'netfilter: nf_tables: GC transaction race with netns dismantle'
mainline: 02c6c24402bf1c1e986899c14ba22a10b510916b
skipped: too risky to backport
f85ca36090cbb252bcbc95fc74c2853fc792694f:
title: 'netfilter: nf_tables: GC transaction race with abort path'
mainline: 720344340fb9be2765bbaab7b292ece0a4570eae
skipped: too risky to backport
9c22bd1ab442c552e9481f1157589362887a7f47:
title: 'netfilter: nf_tables: defer gc run if previous batch is still pending'
mainline: 8e51830e29e12670b4c10df070a4ea4c9593e961
skipped: too risky to backport
9db9feb841f7449772f9393c16b9ef4536d8c127:
title: 'netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction'
mainline: 2ee52ae94baabf7ee09cf2a8d854b990dac5d0e4
skipped: too risky to backport
b3558703731028be2aee61baf341e53a3734e2a9:
title: 'netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention'
mainline: 96b33300fba880ec0eafcf3d82486f3463b4b6da
skipped: too risky to backport
b6a744ba74f2388034c422f57568451bb6111d00:
title: 'netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration'
mainline: b079155faae94e9b3ab9337e82100a914ebb4e8d
skipped: too risky to backport
7cf055b43756b10aa2b851c927c940f5ed652125:
title: 'netfilter: nf_tables: fix memleak when more than 255 elements expired'
mainline: cf5000a7787cbc10341091d37245a42c119d26c5
skipped: too risky to backport
88c795491bf45a8c08a0f94c9ca4f13722e51013:
title: 'netfilter: nf_tables: unregister flowtable hooks on netns exit'
mainline: 6069da443bf65f513bb507bb21e2f87cfb1ad0b6
skipped: fixes patch not in branch
c73955a09408e7374d9abfd0e78ce3de9cda0635:
title: 'netfilter: nf_tables: double hook unregistration in netns path'
mainline: f9a43007d3f7ba76d5e7f9421094f00f2ef202f8
skipped: fixes patch not in branch
2565d90ab654f775d8865512f2a6aa3940182038:
title: 'netfilter: nftables: update table flags from the commit phase'
mainline: 0ce7cf4127f14078ca598ba9700d813178a59409
skipped: too risky to backport
bf8083bbf8fa202e6e5316bbd99759ab82bfe7a3:
title: 'netfilter: nf_tables: fix table flag updates'
mainline: 179d9ba5559a756f4322583388b3213fe4e391b0
skipped: too risky to backport
746523b4a3927fb922c82a6e997c4d1ba74c7f13:
title: 'netfilter: nf_tables: disable toggling dormant table state more than once'
mainline: c9bd26513b3a11b3adb3c2ed8a31a01a87173ff1
skipped: too risky to backport
a118e0d82bb4b7760db8f704c05e2b8713b9bcc1:
title: 'netfilter: nf_tables: bogus EBUSY when deleting flowtable after flush (for 4.19)'
6a67f972de8994ee1c3092b19b6f5569b66b9904:
title: 'netfilter: nft_dynset: fix timeouts later than 23 days'
mainline: 917d80d376ffbaa9725fde9e3c0282f63643f278
skipped: too risky to backport
28a97c43c9e32f437ebb8d6126f9bb7f3ca9521a:
title: 'netfilter: nftables: exthdr: fix 4-byte stack OOB write'
mainline: fd94d9dadee58e09b49075240fe83423eb1dcd36
skipped: commit is already present in branch
c5c4746c8cd6d049dcbf39c811172c917ea6fb6e:
title: 'netfilter: nft_dynset: report EOPNOTSUPP on missing set feature'
mainline: 95cd4bca7b1f4a25810f3ddfc5e767fb46931789
backport: ea71b10a3d18e5589f44b836a83003a6e741d6bb
79e98cd78610560a6a6cf85200eb31331602f9a9:
title: 'netfilter: nft_dynset: relax superfluous check on set updates'
mainline: 7b1394892de8d95748d05e3ee41e85edb4abbfa1
backport: fa8b9918795f9be7f4ca95f5440acff86fe946db
451dc4678c1342fc5c3a2d23e1d8e120e58f6304:
title: 'netfilter: nf_tables: mark newset as dead on transaction abort'
mainline: 08e4c8c5919fd405a4d709b4ba43d836894a26eb
skipped: too risky to backport
18f1f50558e1736d34597fdf08554aee94f59405:
title: 'netfilter: nf_tables: skip dead set elements in netlink dump'
mainline: 6b1ca88e4bb63673dc9f9c7f23c899f22c3cb17a
skipped: too risky to backport
a5bbd579c81ffb9f65cb280fa89be9ec9c01029b:
title: 'netfilter: nf_tables: validate NFPROTO_* family'
mainline: d0009effa8862c20a13af4cb7475d9771b905693
skipped: too risky to backport
c60d252949caf9aba537525195edae6bbabc35eb:
title: 'netfilter: nft_set_rbtree: skip end interval element from gc'
mainline: 60c0c230c6f046da536d3df8b39a20b9a9fd6af0
skipped: fixes patch not in branch
a6411f3c48f991c19aaf9a24fce36865fbba28d7:
title: 'netfilter: nf_tables: set dormant flag on hook register failure'
mainline: bccebf64701735533c8db37773eeacc6566cc8ec
skipped: fixes issue not in 4.14
d8853cfe273c181b2e45528db7300536e860b758:
title: 'netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()'
mainline: 7e0f122c65912740327e4c54472acaa5f85868cb
skipped: too risky to backport
845083249d6a392f3a88804e1669bdb936ee129f:
title: 'netfilter: nf_tables: do not compare internal table flags on updates'
mainline: 4a0e7f2decbf9bd72461226f1f5f7dcc4b08f139
skipped: too risky to backport
d75a589bb92af1abf3b779cfcd1977ca11b27033:
title: 'netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout'
mainline: 552705a3650bbf46a22b1adedc1b04181490fc36
skipped: too risky to backport
6d12f21f8bbe23fde25b77c2bf5973c136b8bef8:
title: 'netfilter: nf_tables: reject new basechain after table flag update'
mainline: 994209ddf4f430946f6247616b2e33d179243769
skipped: too risky to backport
e75faf01e22ec7dc671640fa0e0968964fafd2fc:
title: 'netfilter: nf_tables: discard table flag update with pending basechain deletion'
mainline: 1bc83a019bbe268be3526406245ec28c2458a518
skipped: too risky to backport
3c9ee8294728633e707c25fe0a321eeac1cc7515:
title: 'KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode'
mainline: dfe6d190f38fc5df5ff2614b463a5195a399c885
backport: 6658c1ef0cb35d3d594507db800cb44a54db4f75
0ce5964b82f212f4df6a9813f09a0b5de15bd9c8:
title: 'crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak'
mainline: d3b17c6d9dddc2db3670bc9be628b122416a3d26
backport: 9d5b95ce1488266fd3dc3951da6c8ce25c366ada
72c5d8e416ecc46af370a1340b3db5ff0b0cc867:
title: 'net/9p: fix uninit-value in p9_client_rpc()'
mainline: 25460d6f39024cc3b8241b14c7ccf0d6f11a736a
backport: 9a9a74f4cdb1295a5a854d2ca6cb87fc19048ef3
58c0309c73fe1e9c477ed4cc5d02fc9015336979:
title: 'intel_th: pci: Add Meteor Lake-S CPU support'
mainline: a4f813c3ec9d1c32bc402becd1f011b3904dd699
backport: 471ea347bb7d4b16dd62a6642efb111fa36f2da7
180b2e4c1ba4f6e3e4c52d6664cb019f6eac02f8:
title: 'sparc64: Fix number of online CPUs'
mainline: 98937707fea8375e8acea0aaa0b68a956dd52719
backport: 9f2edbc910b189e46e7ca3d17680e36fde63276d
fb824a99e148ff272a53d71d84122728b5f00992:
title: 'kdb: Fix buffer overflow during tab-complete'
mainline: e9730744bf3af04cda23799029342aa3cddbc454
backport: f751d9a9f3d6c01908cf9bc9d966a35ecc1a2f64
4edfbbaca46491b06af14e49dcb79ac661d0bbdc:
title: 'kdb: Use format-strings rather than ''\0'' injection in kdb_read()'
mainline: 09b35989421dfd5573f0b4683c7700a7483c71f9
backport: f990953b6d8d752849e6f682628d4632f051b7de
21c068c1bbb4c336741749596d004b1965faab2c:
title: 'kdb: Fix console handling when editing and tab-completing commands'
mainline: db2f9c7dc29114f531df4a425d0867d01e1f1e28
backport: fc2a098bc09c4f9968c93222902d72f518ec6953
4a89182788f9af9a290c19098382fb972ebe2783:
title: 'kdb: Merge identical case statements in kdb_read()'
mainline: 6244917f377bf64719551b58592a02a0336a7439
backport: 201f3d45deb9bcf1046483d72642d8457976c7a9
2467f3f182eb35627534effd4956fceb2504c127:
title: 'kdb: Use format-specifiers rather than memset() for padding in kdb_read()'
mainline: c9b51ddb66b1d96e4d364c088da0f1dfb004c574
backport: c89fb4fb7559ec8e3f74ecbc29ef856a47cc85d4
051c0bde9f0450a2ec3d62a86d2a0d2fad117f13:
title: 'net: fix __dst_negative_advice() race'
mainline: 92f1655aa2b2294d0b49925f3b875a634bd3b59e
skipped: fixes patch not in branch
980a1cd6e092eab9398a78f517809a7dacaa0468:
title: 'sparc: move struct termio to asm/termios.h'
mainline: c32d18e7942d7589b62e301eb426b32623366565
backport: 212ca5dd4286a76808254db293bd898a062b56e3
9ad75e78747b5a50dc5a52f0f8e92e920a653f16:
title: 'ext4: fix mb_cache_entry''s e_refcnt leak in ext4_xattr_block_cache_find()'
mainline: 0c0b4a49d3e7f49690a6827a41faeffad5df7e21
backport: 199f7d837409f78087fde12a33c486d4d866c16e
2062e3f1f2374102f8014d7ca286b9aa527bd558:
title: 's390/ap: Fix crash in AP internal function modify_bitmap()'
mainline: d4f9d5a99a3fd1b1c691b7a1a6f8f3f25f4116c9
skipped: depends on missing commit 3d8f60d38e249f989a7fca9c2370c31c3d5487e1
74ea538aa24490d7d259c881189bb58dbf1f692c:
title: 'nfs: fix undefined behavior in nfs_block_bits()'
mainline: 3c0a2e0b0ae661457c8505fecc7be5501aa7a715
backport: 593e234893f02097b207840c7c31b4d91b64ca14

View File

@ -16,6 +16,11 @@ Optional properties:
a GPIO spec for the external headphone detect pin. If jd-mode = 0, a GPIO spec for the external headphone detect pin. If jd-mode = 0,
we will get the JD status by getting the value of hp-detect-gpios. we will get the JD status by getting the value of hp-detect-gpios.
- cbj-sleeve-gpios:
a GPIO spec to control the external combo jack circuit to tie the sleeve/ring2
contacts to the ground or floating. It could avoid some electric noise from the
active speaker jacks.
- realtek,in2-differential - realtek,in2-differential
Boolean. Indicate MIC2 input are differential, rather than single-ended. Boolean. Indicate MIC2 input are differential, rather than single-ended.
@ -64,6 +69,7 @@ codec: rt5650@1a {
compatible = "realtek,rt5650"; compatible = "realtek,rt5650";
reg = <0x1a>; reg = <0x1a>;
hp-detect-gpios = <&gpio 19 0>; hp-detect-gpios = <&gpio 19 0>;
cbj-sleeve-gpios = <&gpio 20 0>;
interrupt-parent = <&gpio>; interrupt-parent = <&gpio>;
interrupts = <7 IRQ_TYPE_EDGE_FALLING>; interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
realtek,dmic-en = "true"; realtek,dmic-en = "true";

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
VERSION = 4 VERSION = 4
PATCHLEVEL = 14 PATCHLEVEL = 14
SUBLEVEL = 348 SUBLEVEL = 349
EXTRAVERSION = -openela EXTRAVERSION = -openela
NAME = Petit Gorille NAME = Petit Gorille

View File

@ -58,7 +58,7 @@
gic: interrupt-controller@f1001000 { gic: interrupt-controller@f1001000 {
compatible = "arm,gic-400"; compatible = "arm,gic-400";
reg = <0x0 0xf1001000 0x0 0x1000>, /* GICD */ reg = <0x0 0xf1001000 0x0 0x1000>, /* GICD */
<0x0 0xf1002000 0x0 0x100>; /* GICC */ <0x0 0xf1002000 0x0 0x2000>; /* GICC */
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <3>; #interrupt-cells = <3>;
interrupt-controller; interrupt-controller;

View File

@ -9,8 +9,8 @@
compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124"; compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124";
aliases { aliases {
rtc0 = "/i2c@7000d000/as3722@40"; rtc0 = &as3722;
rtc1 = "/rtc@7000e000"; rtc1 = &tegra_rtc;
serial0 = &uarta; serial0 = &uarta;
}; };

View File

@ -569,7 +569,7 @@
status = "disabled"; status = "disabled";
}; };
rtc@7000e000 { tegra_rtc: rtc@7000e000 {
compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
reg = <0x0 0x7000e000 0x0 0x100>; reg = <0x0 0x7000e000 0x0 0x100>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;

View File

@ -39,6 +39,7 @@
0: .long 1f - 0b; \ 0: .long 1f - 0b; \
_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \ _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
.short flags; \ .short flags; \
.align 2; \
.popsection; \ .popsection; \
1: 1:
#else #else

View File

@ -175,6 +175,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
case COMPAT_PSR_MODE_SVC: case COMPAT_PSR_MODE_SVC:
case COMPAT_PSR_MODE_ABT: case COMPAT_PSR_MODE_ABT:
case COMPAT_PSR_MODE_UND: case COMPAT_PSR_MODE_UND:
case COMPAT_PSR_MODE_SYS:
if (!vcpu_el1_is_32bit(vcpu)) if (!vcpu_el1_is_32bit(vcpu))
return -EINVAL; return -EINVAL;
break; break;

View File

@ -159,6 +159,7 @@ extern void iop_complete_message(struct iop_msg *);
extern void iop_upload_code(uint, __u8 *, uint, __u16); extern void iop_upload_code(uint, __u8 *, uint, __u16);
extern void iop_download_code(uint, __u8 *, uint, __u16); extern void iop_download_code(uint, __u8 *, uint, __u16);
extern __u8 *iop_compare_code(uint, __u8 *, uint, __u16); extern __u8 *iop_compare_code(uint, __u8 *, uint, __u16);
extern void iop_ism_irq_poll(uint);
extern void iop_register_interrupts(void); extern void iop_register_interrupts(void);

View File

@ -425,7 +425,9 @@ resume:
movec %a0,%dfc movec %a0,%dfc
/* restore status register */ /* restore status register */
movew %a1@(TASK_THREAD+THREAD_SR),%sr movew %a1@(TASK_THREAD+THREAD_SR),%d0
oriw #0x0700,%d0
movew %d0,%sr
rts rts

View File

@ -589,3 +589,12 @@ irqreturn_t iop_ism_irq(int irq, void *dev_id)
} }
return IRQ_HANDLED; return IRQ_HANDLED;
} }
void iop_ism_irq_poll(uint iop_num)
{
unsigned long flags;
local_irq_save(flags);
iop_ism_irq(0, (void *)iop_num);
local_irq_restore(flags);
}

View File

@ -483,41 +483,19 @@ void mac_poweroff(void)
void mac_reset(void) void mac_reset(void)
{ {
if (macintosh_config->adb_type == MAC_ADB_II) {
unsigned long flags;
/* need ROMBASE in booter */
/* indeed, plus need to MAP THE ROM !! */
if (mac_bi_data.rombase == 0)
mac_bi_data.rombase = 0x40800000;
/* works on some */
rom_reset = (void *) (mac_bi_data.rombase + 0xa);
if (macintosh_config->ident == MAC_MODEL_SE30) {
/*
* MSch: Machines known to crash on ROM reset ...
*/
} else {
local_irq_save(flags);
rom_reset();
local_irq_restore(flags);
}
#ifdef CONFIG_ADB_CUDA #ifdef CONFIG_ADB_CUDA
} else if (macintosh_config->adb_type == MAC_ADB_EGRET || if (macintosh_config->adb_type == MAC_ADB_EGRET ||
macintosh_config->adb_type == MAC_ADB_CUDA) { macintosh_config->adb_type == MAC_ADB_CUDA) {
cuda_restart(); cuda_restart();
} else
#endif #endif
#ifdef CONFIG_ADB_PMU68K #ifdef CONFIG_ADB_PMU68K
} else if (macintosh_config->adb_type == MAC_ADB_PB1 if (macintosh_config->adb_type == MAC_ADB_PB1 ||
|| macintosh_config->adb_type == MAC_ADB_PB2) { macintosh_config->adb_type == MAC_ADB_PB2) {
pmu_restart(); pmu_restart();
} else
#endif #endif
} else if (CPU_IS_030) { if (CPU_IS_030) {
/* 030-specific reset routine. The idea is general, but the /* 030-specific reset routine. The idea is general, but the
* specific registers to reset are '030-specific. Until I * specific registers to reset are '030-specific. Until I
* have a non-030 machine, I can't test anything else. * have a non-030 machine, I can't test anything else.
@ -564,6 +542,18 @@ void mac_reset(void)
"jmp %/a0@\n\t" /* jump to the reset vector */ "jmp %/a0@\n\t" /* jump to the reset vector */
".chip 68k" ".chip 68k"
: : "r" (offset), "a" (rombase) : "a0"); : : "r" (offset), "a" (rombase) : "a0");
} else {
/* need ROMBASE in booter */
/* indeed, plus need to MAP THE ROM !! */
if (mac_bi_data.rombase == 0)
mac_bi_data.rombase = 0x40800000;
/* works on some */
rom_reset = (void *)(mac_bi_data.rombase + 0xa);
local_irq_disable();
rom_reset();
} }
/* should never get here */ /* should never get here */

View File

@ -34,6 +34,7 @@ EXPORT_SYMBOL(memset);
#include <linux/atomic.h> #include <linux/atomic.h>
EXPORT_SYMBOL(__xchg8); EXPORT_SYMBOL(__xchg8);
EXPORT_SYMBOL(__xchg32); EXPORT_SYMBOL(__xchg32);
EXPORT_SYMBOL(__cmpxchg_u8);
EXPORT_SYMBOL(__cmpxchg_u32); EXPORT_SYMBOL(__cmpxchg_u32);
EXPORT_SYMBOL(__cmpxchg_u64); EXPORT_SYMBOL(__cmpxchg_u64);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP

View File

@ -422,7 +422,7 @@ struct hvcall_mpp_data {
unsigned long backing_mem; unsigned long backing_mem;
}; };
int h_get_mpp(struct hvcall_mpp_data *); long h_get_mpp(struct hvcall_mpp_data *mpp_data);
struct hvcall_mpp_x_data { struct hvcall_mpp_x_data {
unsigned long coalesced_bytes; unsigned long coalesced_bytes;

View File

@ -937,10 +937,10 @@ out:
* h_get_mpp * h_get_mpp
* H_GET_MPP hcall returns info in 7 parms * H_GET_MPP hcall returns info in 7 parms
*/ */
int h_get_mpp(struct hvcall_mpp_data *mpp_data) long h_get_mpp(struct hvcall_mpp_data *mpp_data)
{ {
int rc; unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE]; long rc;
rc = plpar_hcall9(H_GET_MPP, retbuf); rc = plpar_hcall9(H_GET_MPP, retbuf);

View File

@ -112,8 +112,8 @@ struct hvcall_ppp_data {
*/ */
static unsigned int h_get_ppp(struct hvcall_ppp_data *ppp_data) static unsigned int h_get_ppp(struct hvcall_ppp_data *ppp_data)
{ {
unsigned long rc; unsigned long retbuf[PLPAR_HCALL9_BUFSIZE] = {0};
unsigned long retbuf[PLPAR_HCALL9_BUFSIZE]; long rc;
rc = plpar_hcall9(H_GET_PPP, retbuf); rc = plpar_hcall9(H_GET_PPP, retbuf);
@ -159,7 +159,7 @@ static void parse_ppp_data(struct seq_file *m)
struct hvcall_ppp_data ppp_data; struct hvcall_ppp_data ppp_data;
struct device_node *root; struct device_node *root;
const __be32 *perf_level; const __be32 *perf_level;
int rc; long rc;
rc = h_get_ppp(&ppp_data); rc = h_get_ppp(&ppp_data);
if (rc) if (rc)

View File

@ -576,10 +576,12 @@ static const struct fsl_msi_feature ipic_msi_feature = {
.msiir_offset = 0x38, .msiir_offset = 0x38,
}; };
#ifdef CONFIG_EPAPR_PARAVIRT
static const struct fsl_msi_feature vmpic_msi_feature = { static const struct fsl_msi_feature vmpic_msi_feature = {
.fsl_pic_ip = FSL_PIC_IP_VMPIC, .fsl_pic_ip = FSL_PIC_IP_VMPIC,
.msiir_offset = 0, .msiir_offset = 0,
}; };
#endif
static const struct of_device_id fsl_of_msi_ids[] = { static const struct of_device_id fsl_of_msi_ids[] = {
{ {

View File

@ -47,17 +47,12 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
if (OPCODE_RTE(opcode)) if (OPCODE_RTE(opcode))
return -EFAULT; /* Bad breakpoint */ return -EFAULT; /* Bad breakpoint */
memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
p->opcode = opcode; p->opcode = opcode;
return 0; return 0;
} }
void __kprobes arch_copy_kprobe(struct kprobe *p)
{
memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
p->opcode = *p->addr;
}
void __kprobes arch_arm_kprobe(struct kprobe *p) void __kprobes arch_arm_kprobe(struct kprobe *p)
{ {
*p->addr = BREAKPOINT_INSTRUCTION; *p->addr = BREAKPOINT_INSTRUCTION;

View File

@ -36,7 +36,8 @@
*/ */
/* /*
* asmlinkage __wsum csum_partial(const void *buf, int len, __wsum sum); * unsigned int csum_partial(const unsigned char *buf, int len,
* unsigned int sum);
*/ */
.text .text
@ -48,31 +49,11 @@ ENTRY(csum_partial)
* Fortunately, it is easy to convert 2-byte alignment to 4-byte * Fortunately, it is easy to convert 2-byte alignment to 4-byte
* alignment for the unrolled loop. * alignment for the unrolled loop.
*/ */
mov r5, r1
mov r4, r0 mov r4, r0
tst #3, r0 ! Check alignment. tst #2, r0 ! Check alignment.
bt/s 2f ! Jump if alignment is ok. bt 2f ! Jump if alignment is ok.
mov r4, r7 ! Keep a copy to check for alignment
! !
tst #1, r0 ! Check alignment.
bt 21f ! Jump if alignment is boundary of 2bytes.
! buf is odd
tst r5, r5
add #-1, r5
bt 9f
mov.b @r4+, r0
extu.b r0, r0
addc r0, r6 ! t=0 from previous tst
mov r6, r0
shll8 r6
shlr16 r0
shlr8 r0
or r0, r6
mov r4, r0
tst #2, r0
bt 2f
21:
! buf is 2 byte aligned (len could be 0)
add #-2, r5 ! Alignment uses up two bytes. add #-2, r5 ! Alignment uses up two bytes.
cmp/pz r5 ! cmp/pz r5 !
bt/s 1f ! Jump if we had at least two bytes. bt/s 1f ! Jump if we had at least two bytes.
@ -80,17 +61,16 @@ ENTRY(csum_partial)
bra 6f bra 6f
add #2, r5 ! r5 was < 2. Deal with it. add #2, r5 ! r5 was < 2. Deal with it.
1: 1:
mov r5, r1 ! Save new len for later use.
mov.w @r4+, r0 mov.w @r4+, r0
extu.w r0, r0 extu.w r0, r0
addc r0, r6 addc r0, r6
bf 2f bf 2f
add #1, r6 add #1, r6
2: 2:
! buf is 4 byte aligned (len could be 0)
mov r5, r1
mov #-5, r0 mov #-5, r0
shld r0, r1 shld r0, r5
tst r1, r1 tst r5, r5
bt/s 4f ! if it's =0, go to 4f bt/s 4f ! if it's =0, go to 4f
clrt clrt
.align 2 .align 2
@ -112,31 +92,30 @@ ENTRY(csum_partial)
addc r0, r6 addc r0, r6
addc r2, r6 addc r2, r6
movt r0 movt r0
dt r1 dt r5
bf/s 3b bf/s 3b
cmp/eq #1, r0 cmp/eq #1, r0
! here, we know r1==0 ! here, we know r5==0
addc r1, r6 ! add carry to r6 addc r5, r6 ! add carry to r6
4: 4:
mov r5, r0 mov r1, r0
and #0x1c, r0 and #0x1c, r0
tst r0, r0 tst r0, r0
bt 6f bt/s 6f
! 4 bytes or more remaining mov r0, r5
mov r0, r1 shlr2 r5
shlr2 r1
mov #0, r2 mov #0, r2
5: 5:
addc r2, r6 addc r2, r6
mov.l @r4+, r2 mov.l @r4+, r2
movt r0 movt r0
dt r1 dt r5
bf/s 5b bf/s 5b
cmp/eq #1, r0 cmp/eq #1, r0
addc r2, r6 addc r2, r6
addc r1, r6 ! r1==0 here, so it means add carry-bit addc r5, r6 ! r5==0 here, so it means add carry-bit
6: 6:
! 3 bytes or less remaining mov r1, r5
mov #3, r0 mov #3, r0
and r0, r5 and r0, r5
tst r5, r5 tst r5, r5
@ -162,16 +141,6 @@ ENTRY(csum_partial)
mov #0, r0 mov #0, r0
addc r0, r6 addc r0, r6
9: 9:
! Check if the buffer was misaligned, if so realign sum
mov r7, r0
tst #1, r0
bt 10f
mov r6, r0
shll8 r6
shlr16 r0
shlr8 r0
or r0, r6
10:
rts rts
mov r6, r0 mov r6, r0

View File

@ -47,7 +47,6 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask);
int hard_smp_processor_id(void); int hard_smp_processor_id(void);
#define raw_smp_processor_id() (current_thread_info()->cpu) #define raw_smp_processor_id() (current_thread_info()->cpu)
void smp_fill_in_cpu_possible_map(void);
void smp_fill_in_sib_core_maps(void); void smp_fill_in_sib_core_maps(void);
void cpu_play_dead(void); void cpu_play_dead(void);
@ -77,7 +76,6 @@ void __cpu_die(unsigned int cpu);
#define smp_fill_in_sib_core_maps() do { } while (0) #define smp_fill_in_sib_core_maps() do { } while (0)
#define smp_fetch_global_regs() do { } while (0) #define smp_fetch_global_regs() do { } while (0)
#define smp_fetch_global_pmu() do { } while (0) #define smp_fetch_global_pmu() do { } while (0)
#define smp_fill_in_cpu_possible_map() do { } while (0)
#define smp_init_cpu_poke() do { } while (0) #define smp_init_cpu_poke() do { } while (0)
#define scheduler_poke() do { } while (0) #define scheduler_poke() do { } while (0)

View File

@ -13,16 +13,6 @@ typedef unsigned int tcflag_t;
typedef unsigned long tcflag_t; typedef unsigned long tcflag_t;
#endif #endif
#define NCC 8
struct termio {
unsigned short c_iflag; /* input mode flags */
unsigned short c_oflag; /* output mode flags */
unsigned short c_cflag; /* control mode flags */
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
#define NCCS 17 #define NCCS 17
struct termios { struct termios {
tcflag_t c_iflag; /* input mode flags */ tcflag_t c_iflag; /* input mode flags */

View File

@ -40,5 +40,14 @@ struct winsize {
unsigned short ws_ypixel; unsigned short ws_ypixel;
}; };
#define NCC 8
struct termio {
unsigned short c_iflag; /* input mode flags */
unsigned short c_oflag; /* output mode flags */
unsigned short c_cflag; /* control mode flags */
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
#endif /* _UAPI_SPARC_TERMIOS_H */ #endif /* _UAPI_SPARC_TERMIOS_H */

View File

@ -479,7 +479,9 @@ static void *record_one_cpu(struct device_node *dp, int cpuid, int arg)
ncpus_probed++; ncpus_probed++;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
set_cpu_present(cpuid, true); set_cpu_present(cpuid, true);
set_cpu_possible(cpuid, true);
if (num_possible_cpus() < nr_cpu_ids)
set_cpu_possible(cpuid, true);
#endif #endif
return NULL; return NULL;
} }

View File

@ -688,7 +688,6 @@ void __init setup_arch(char **cmdline_p)
paging_init(); paging_init();
init_sparc64_elf_hwcap(); init_sparc64_elf_hwcap();
smp_fill_in_cpu_possible_map();
/* /*
* Once the OF device tree and MDESC have been setup and nr_cpus has * Once the OF device tree and MDESC have been setup and nr_cpus has
* been parsed, we know the list of possible cpus. Therefore we can * been parsed, we know the list of possible cpus. Therefore we can

View File

@ -1213,20 +1213,6 @@ void __init smp_setup_processor_id(void)
xcall_deliver_impl = hypervisor_xcall_deliver; xcall_deliver_impl = hypervisor_xcall_deliver;
} }
void __init smp_fill_in_cpu_possible_map(void)
{
int possible_cpus = num_possible_cpus();
int i;
if (possible_cpus > nr_cpu_ids)
possible_cpus = nr_cpu_ids;
for (i = 0; i < possible_cpus; i++)
set_cpu_possible(i, true);
for (; i < NR_CPUS; i++)
set_cpu_possible(i, false);
}
void smp_fill_in_sib_core_maps(void) void smp_fill_in_sib_core_maps(void)
{ {
unsigned int i; unsigned int i;

View File

@ -683,24 +683,26 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_port *port,
goto cleanup; goto cleanup;
} }
*winch = ((struct winch) { .list = LIST_HEAD_INIT(winch->list), *winch = ((struct winch) { .fd = fd,
.fd = fd,
.tty_fd = tty_fd, .tty_fd = tty_fd,
.pid = pid, .pid = pid,
.port = port, .port = port,
.stack = stack }); .stack = stack });
spin_lock(&winch_handler_lock);
list_add(&winch->list, &winch_handlers);
spin_unlock(&winch_handler_lock);
if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt, if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
IRQF_SHARED, "winch", winch) < 0) { IRQF_SHARED, "winch", winch) < 0) {
printk(KERN_ERR "register_winch_irq - failed to register " printk(KERN_ERR "register_winch_irq - failed to register "
"IRQ\n"); "IRQ\n");
spin_lock(&winch_handler_lock);
list_del(&winch->list);
spin_unlock(&winch_handler_lock);
goto out_free; goto out_free;
} }
spin_lock(&winch_handler_lock);
list_add(&winch->list, &winch_handlers);
spin_unlock(&winch_handler_lock);
return; return;
out_free: out_free:

View File

@ -1147,7 +1147,7 @@ static int __init ubd_init(void)
if (irq_req_buffer == NULL) { if (irq_req_buffer == NULL) {
printk(KERN_ERR "Failed to initialize ubd buffering\n"); printk(KERN_ERR "Failed to initialize ubd buffering\n");
return -1; return -ENOMEM;
} }
io_req_buffer = kmalloc( io_req_buffer = kmalloc(
sizeof(struct io_thread_req *) * UBD_REQ_BUFFER_SIZE, sizeof(struct io_thread_req *) * UBD_REQ_BUFFER_SIZE,
@ -1158,7 +1158,7 @@ static int __init ubd_init(void)
if (io_req_buffer == NULL) { if (io_req_buffer == NULL) {
printk(KERN_ERR "Failed to initialize ubd buffering\n"); printk(KERN_ERR "Failed to initialize ubd buffering\n");
return -1; return -ENOMEM;
} }
platform_driver_register(&ubd_driver); platform_driver_register(&ubd_driver);
mutex_lock(&ubd_lock); mutex_lock(&ubd_lock);

View File

@ -15,8 +15,6 @@ typedef struct mm_context {
struct page *stub_pages[2]; struct page *stub_pages[2];
} mm_context_t; } mm_context_t;
extern void __switch_mm(struct mm_id * mm_idp);
/* Avoid tangled inclusion with asm/ldt.h */ /* Avoid tangled inclusion with asm/ldt.h */
extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm); extern long init_new_ldt(struct mm_context *to_mm, struct mm_context *from_mm);
extern void free_ldt(struct mm_context *mm); extern void free_ldt(struct mm_context *mm);

View File

@ -14,4 +14,6 @@ struct mm_id {
unsigned long stack; unsigned long stack;
}; };
void __switch_mm(struct mm_id *mm_idp);
#endif #endif

View File

@ -370,6 +370,7 @@ config UNWINDER_ORC
config UNWINDER_FRAME_POINTER config UNWINDER_FRAME_POINTER
bool "Frame pointer unwinder" bool "Frame pointer unwinder"
select ARCH_WANT_FRAME_POINTERS
select FRAME_POINTER select FRAME_POINTER
---help--- ---help---
This option enables the frame pointer unwinder for unwinding kernel This option enables the frame pointer unwinder for unwinding kernel
@ -397,8 +398,4 @@ config UNWINDER_GUESS
endchoice endchoice
config FRAME_POINTER
depends on !UNWINDER_ORC && !UNWINDER_GUESS
bool
endmenu endmenu

View File

@ -6,7 +6,6 @@
#include <asm/alternative.h> #include <asm/alternative.h>
#include <uapi/asm/kvm_para.h> #include <uapi/asm/kvm_para.h>
extern void kvmclock_init(void);
extern int kvm_register_clock(char *txt); extern int kvm_register_clock(char *txt);
#ifdef CONFIG_KVM_GUEST #ifdef CONFIG_KVM_GUEST
@ -86,13 +85,14 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
} }
#ifdef CONFIG_KVM_GUEST #ifdef CONFIG_KVM_GUEST
void kvmclock_init(void);
void kvmclock_disable(void);
bool kvm_para_available(void); bool kvm_para_available(void);
unsigned int kvm_arch_para_features(void); unsigned int kvm_arch_para_features(void);
void __init kvm_guest_init(void); void __init kvm_guest_init(void);
void kvm_async_pf_task_wait(u32 token, int interrupt_kernel); void kvm_async_pf_task_wait(u32 token, int interrupt_kernel);
void kvm_async_pf_task_wake(u32 token); void kvm_async_pf_task_wake(u32 token);
u32 kvm_read_and_reset_pf_reason(void); u32 kvm_read_and_reset_pf_reason(void);
extern void kvm_disable_steal_time(void);
#ifdef CONFIG_PARAVIRT_SPINLOCKS #ifdef CONFIG_PARAVIRT_SPINLOCKS
void __init kvm_spinlock_init(void); void __init kvm_spinlock_init(void);
@ -122,10 +122,6 @@ static inline u32 kvm_read_and_reset_pf_reason(void)
return 0; return 0;
} }
static inline void kvm_disable_steal_time(void)
{
return;
}
#endif #endif
#endif /* _ASM_X86_KVM_PARA_H */ #endif /* _ASM_X86_KVM_PARA_H */

View File

@ -37,6 +37,7 @@
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/nmi.h> #include <linux/nmi.h>
#include <linux/swait.h> #include <linux/swait.h>
#include <linux/syscore_ops.h>
#include <asm/timer.h> #include <asm/timer.h>
#include <asm/cpu.h> #include <asm/cpu.h>
#include <asm/traps.h> #include <asm/traps.h>
@ -46,6 +47,7 @@
#include <asm/apicdef.h> #include <asm/apicdef.h>
#include <asm/hypervisor.h> #include <asm/hypervisor.h>
#include <asm/kvm_guest.h> #include <asm/kvm_guest.h>
#include <asm/reboot.h>
static int kvmapf = 1; static int kvmapf = 1;
@ -376,6 +378,14 @@ static void kvm_pv_disable_apf(void)
smp_processor_id()); smp_processor_id());
} }
static void kvm_disable_steal_time(void)
{
if (!has_steal_clock)
return;
wrmsr(MSR_KVM_STEAL_TIME, 0, 0);
}
static void kvm_pv_guest_cpu_reboot(void *unused) static void kvm_pv_guest_cpu_reboot(void *unused)
{ {
/* /*
@ -418,12 +428,25 @@ static u64 kvm_steal_clock(int cpu)
return steal; return steal;
} }
void kvm_disable_steal_time(void) static void kvm_guest_cpu_offline(bool shutdown)
{ {
if (!has_steal_clock) kvm_disable_steal_time();
return; if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
wrmsrl(MSR_KVM_PV_EOI_EN, 0);
kvm_pv_disable_apf();
if (!shutdown)
apf_task_wake_all();
kvmclock_disable();
}
wrmsr(MSR_KVM_STEAL_TIME, 0, 0); static int kvm_cpu_online(unsigned int cpu)
{
unsigned long flags;
local_irq_save(flags);
kvm_guest_cpu_init();
local_irq_restore(flags);
return 0;
} }
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
@ -434,37 +457,54 @@ static void __init kvm_smp_prepare_boot_cpu(void)
kvm_spinlock_init(); kvm_spinlock_init();
} }
static void kvm_guest_cpu_offline(void)
{
kvm_disable_steal_time();
if (kvm_para_has_feature(KVM_FEATURE_PV_EOI))
wrmsrl(MSR_KVM_PV_EOI_EN, 0);
kvm_pv_disable_apf();
apf_task_wake_all();
}
static int kvm_cpu_online(unsigned int cpu)
{
local_irq_disable();
kvm_guest_cpu_init();
local_irq_enable();
return 0;
}
static int kvm_cpu_down_prepare(unsigned int cpu) static int kvm_cpu_down_prepare(unsigned int cpu)
{ {
local_irq_disable(); unsigned long flags;
kvm_guest_cpu_offline();
local_irq_enable(); local_irq_save(flags);
kvm_guest_cpu_offline(false);
local_irq_restore(flags);
return 0; return 0;
} }
#endif #endif
static int kvm_suspend(void)
{
kvm_guest_cpu_offline(false);
return 0;
}
static void kvm_resume(void)
{
kvm_cpu_online(raw_smp_processor_id());
}
static struct syscore_ops kvm_syscore_ops = {
.suspend = kvm_suspend,
.resume = kvm_resume,
};
static void __init kvm_apf_trap_init(void) static void __init kvm_apf_trap_init(void)
{ {
update_intr_gate(X86_TRAP_PF, async_page_fault); update_intr_gate(X86_TRAP_PF, async_page_fault);
} }
/*
* After a PV feature is registered, the host will keep writing to the
* registered memory location. If the guest happens to shutdown, this memory
* won't be valid. In cases like kexec, in which you install a new kernel, this
* means a random memory location will be kept being written.
*/
#ifdef CONFIG_KEXEC_CORE
static void kvm_crash_shutdown(struct pt_regs *regs)
{
kvm_guest_cpu_offline(true);
native_machine_crash_shutdown(regs);
}
#endif
void __init kvm_guest_init(void) void __init kvm_guest_init(void)
{ {
int i; int i;
@ -499,6 +539,12 @@ void __init kvm_guest_init(void)
kvm_guest_cpu_init(); kvm_guest_cpu_init();
#endif #endif
#ifdef CONFIG_KEXEC_CORE
machine_ops.crash_shutdown = kvm_crash_shutdown;
#endif
register_syscore_ops(&kvm_syscore_ops);
/* /*
* Hard lockup detection is enabled by default. Disable it, as guests * Hard lockup detection is enabled by default. Disable it, as guests
* can get false positives too easily, for example if the host is * can get false positives too easily, for example if the host is

View File

@ -28,7 +28,6 @@
#include <linux/sched/clock.h> #include <linux/sched/clock.h>
#include <asm/x86_init.h> #include <asm/x86_init.h>
#include <asm/reboot.h>
#include <asm/kvmclock.h> #include <asm/kvmclock.h>
static int kvmclock __ro_after_init = 1; static int kvmclock __ro_after_init = 1;
@ -220,28 +219,9 @@ static void kvm_setup_secondary_clock(void)
} }
#endif #endif
/* void kvmclock_disable(void)
* After the clock is registered, the host will keep writing to the
* registered memory location. If the guest happens to shutdown, this memory
* won't be valid. In cases like kexec, in which you install a new kernel, this
* means a random memory location will be kept being written. So before any
* kind of shutdown from our side, we unregister the clock by writing anything
* that does not have the 'enable' bit set in the msr
*/
#ifdef CONFIG_KEXEC_CORE
static void kvm_crash_shutdown(struct pt_regs *regs)
{ {
native_write_msr(msr_kvm_system_time, 0, 0); native_write_msr(msr_kvm_system_time, 0, 0);
kvm_disable_steal_time();
native_machine_crash_shutdown(regs);
}
#endif
static void kvm_shutdown(void)
{
native_write_msr(msr_kvm_system_time, 0, 0);
kvm_disable_steal_time();
native_machine_shutdown();
} }
void __init kvmclock_init(void) void __init kvmclock_init(void)
@ -297,10 +277,6 @@ void __init kvmclock_init(void)
#endif #endif
x86_platform.save_sched_clock_state = kvm_save_sched_clock_state; x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
x86_platform.restore_sched_clock_state = kvm_restore_sched_clock_state; x86_platform.restore_sched_clock_state = kvm_restore_sched_clock_state;
machine_ops.shutdown = kvm_shutdown;
#ifdef CONFIG_KEXEC_CORE
machine_ops.crash_shutdown = kvm_crash_shutdown;
#endif
kvm_get_preset_lpj(); kvm_get_preset_lpj();
clocksource_register_hz(&kvm_clock, NSEC_PER_SEC); clocksource_register_hz(&kvm_clock, NSEC_PER_SEC);
pv_info.name = "KVM"; pv_info.name = "KVM";

View File

@ -148,7 +148,7 @@ AVXcode:
65: SEG=GS (Prefix) 65: SEG=GS (Prefix)
66: Operand-Size (Prefix) 66: Operand-Size (Prefix)
67: Address-Size (Prefix) 67: Address-Size (Prefix)
68: PUSH Iz (d64) 68: PUSH Iz
69: IMUL Gv,Ev,Iz 69: IMUL Gv,Ev,Iz
6a: PUSH Ib (d64) 6a: PUSH Ib (d64)
6b: IMUL Gv,Ev,Ib 6b: IMUL Gv,Ev,Ib

View File

@ -672,6 +672,15 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) { if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
continue; continue;
} }
/*
* Do not perform relocations in .notes sections; 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; sh_symtab = sec_symtab->symtab;
sym_strtab = sec_symtab->link->strtab; sym_strtab = sec_symtab->link->strtab;
for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) { for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {

View File

@ -568,12 +568,6 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)
INIT_LIST_HEAD(&ctx->tsgl_list); INIT_LIST_HEAD(&ctx->tsgl_list);
ctx->len = len; ctx->len = len;
ctx->used = 0;
atomic_set(&ctx->rcvused, 0);
ctx->more = 0;
ctx->merge = 0;
ctx->enc = 0;
ctx->aead_assoclen = 0;
af_alg_init_completion(&ctx->completion); af_alg_init_completion(&ctx->completion);
ask->private = ctx; ask->private = ctx;

View File

@ -371,6 +371,7 @@ static int skcipher_accept_parent_nokey(void *private, struct sock *sk)
ctx = sock_kmalloc(sk, len, GFP_KERNEL); ctx = sock_kmalloc(sk, len, GFP_KERNEL);
if (!ctx) if (!ctx)
return -ENOMEM; return -ENOMEM;
memset(ctx, 0, len);
ctx->iv = sock_kmalloc(sk, crypto_skcipher_ivsize(skcipher), ctx->iv = sock_kmalloc(sk, crypto_skcipher_ivsize(skcipher),
GFP_KERNEL); GFP_KERNEL);
@ -378,16 +379,10 @@ static int skcipher_accept_parent_nokey(void *private, struct sock *sk)
sock_kfree_s(sk, ctx, len); sock_kfree_s(sk, ctx, len);
return -ENOMEM; return -ENOMEM;
} }
memset(ctx->iv, 0, crypto_skcipher_ivsize(skcipher)); memset(ctx->iv, 0, crypto_skcipher_ivsize(skcipher));
INIT_LIST_HEAD(&ctx->tsgl_list); INIT_LIST_HEAD(&ctx->tsgl_list);
ctx->len = len; ctx->len = len;
ctx->used = 0;
atomic_set(&ctx->rcvused, 0);
ctx->more = 0;
ctx->merge = 0;
ctx->enc = 0;
af_alg_init_completion(&ctx->completion); af_alg_init_completion(&ctx->completion);
ask->private = ctx; ask->private = ctx;

View File

@ -5,6 +5,7 @@
ccflags-y := -D_LINUX -DBUILDING_ACPICA ccflags-y := -D_LINUX -DBUILDING_ACPICA
ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
CFLAGS_tbfind.o += $(call cc-disable-warning, stringop-truncation)
# use acpi.o to put all files here into acpi.o modparam namespace # use acpi.o to put all files here into acpi.o modparam namespace
obj-y += acpi.o obj-y += acpi.o

View File

@ -546,7 +546,7 @@ struct binder_proc {
struct list_head todo; struct list_head todo;
struct binder_stats stats; struct binder_stats stats;
struct list_head delivered_death; struct list_head delivered_death;
int max_threads; u32 max_threads;
int requested_threads; int requested_threads;
int requested_threads_started; int requested_threads_started;
atomic_t tmp_ref; atomic_t tmp_ref;
@ -5252,7 +5252,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
goto err; goto err;
break; break;
case BINDER_SET_MAX_THREADS: { case BINDER_SET_MAX_THREADS: {
int max_threads; u32 max_threads;
if (copy_from_user(&max_threads, ubuf, if (copy_from_user(&max_threads, ubuf,
sizeof(max_threads))) { sizeof(max_threads))) {

View File

@ -128,8 +128,6 @@ static int legacy_port[NR_HOST] = { 0x1f0, 0x170, 0x1e8, 0x168, 0x1e0, 0x160 };
static struct legacy_probe probe_list[NR_HOST]; static struct legacy_probe probe_list[NR_HOST];
static struct legacy_data legacy_data[NR_HOST]; static struct legacy_data legacy_data[NR_HOST];
static struct ata_host *legacy_host[NR_HOST]; static struct ata_host *legacy_host[NR_HOST];
static int nr_legacy_host;
static int probe_all; /* Set to check all ISA port ranges */ static int probe_all; /* Set to check all ISA port ranges */
static int ht6560a; /* HT 6560A on primary 1, second 2, both 3 */ static int ht6560a; /* HT 6560A on primary 1, second 2, both 3 */
@ -1253,9 +1251,11 @@ static __exit void legacy_exit(void)
{ {
int i; int i;
for (i = 0; i < nr_legacy_host; i++) { for (i = 0; i < NR_HOST; i++) {
struct legacy_data *ld = &legacy_data[i]; struct legacy_data *ld = &legacy_data[i];
ata_host_detach(legacy_host[i]);
if (legacy_host[i])
ata_host_detach(legacy_host[i]);
platform_device_unregister(ld->platform_dev); platform_device_unregister(ld->platform_dev);
} }
} }

View File

@ -2054,10 +2054,13 @@ static void __exit null_exit(void)
blk_mq_free_tag_set(&tag_set); blk_mq_free_tag_set(&tag_set);
kmem_cache_destroy(ppa_cache); kmem_cache_destroy(ppa_cache);
mutex_destroy(&lock);
} }
module_init(null_init); module_init(null_init);
module_exit(null_exit); module_exit(null_exit);
MODULE_AUTHOR("Jens Axboe <axboe@kernel.dk>"); MODULE_AUTHOR("Jens Axboe <axboe@kernel.dk>");
MODULE_DESCRIPTION("multi queue aware block test driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");

View File

@ -300,28 +300,35 @@ static int register_device(int minor, struct pp_struct *pp)
if (!port) { if (!port) {
pr_warn("%s: no associated port!\n", name); pr_warn("%s: no associated port!\n", name);
rc = -ENXIO; rc = -ENXIO;
goto err; goto err_free_name;
} }
index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL); index = ida_simple_get(&ida_index, 0, 0, GFP_KERNEL);
if (index < 0) {
pr_warn("%s: failed to get index!\n", name);
rc = index;
goto err_put_port;
}
memset(&ppdev_cb, 0, sizeof(ppdev_cb)); memset(&ppdev_cb, 0, sizeof(ppdev_cb));
ppdev_cb.irq_func = pp_irq; ppdev_cb.irq_func = pp_irq;
ppdev_cb.flags = (pp->flags & PP_EXCL) ? PARPORT_FLAG_EXCL : 0; ppdev_cb.flags = (pp->flags & PP_EXCL) ? PARPORT_FLAG_EXCL : 0;
ppdev_cb.private = pp; ppdev_cb.private = pp;
pdev = parport_register_dev_model(port, name, &ppdev_cb, index); pdev = parport_register_dev_model(port, name, &ppdev_cb, index);
parport_put_port(port);
if (!pdev) { if (!pdev) {
pr_warn("%s: failed to register device!\n", name); pr_warn("%s: failed to register device!\n", name);
rc = -ENXIO; rc = -ENXIO;
ida_simple_remove(&ida_index, index); ida_simple_remove(&ida_index, index);
goto err; goto err_put_port;
} }
pp->pdev = pdev; pp->pdev = pdev;
pp->index = index; pp->index = index;
dev_dbg(&pdev->dev, "registered pardevice\n"); dev_dbg(&pdev->dev, "registered pardevice\n");
err: err_put_port:
parport_put_port(port);
err_free_name:
kfree(name); kfree(name);
return rc; return rc;
} }

View File

@ -506,7 +506,7 @@ static void spu2_dump_omd(u8 *omd, u16 hash_key_len, u16 ciph_key_len,
if (hash_iv_len) { if (hash_iv_len) {
packet_log(" Hash IV Length %u bytes\n", hash_iv_len); packet_log(" Hash IV Length %u bytes\n", hash_iv_len);
packet_dump(" hash IV: ", ptr, hash_iv_len); packet_dump(" hash IV: ", ptr, hash_iv_len);
ptr += ciph_key_len; ptr += hash_iv_len;
} }
if (ciph_iv_len) { if (ciph_iv_len) {

View File

@ -33,30 +33,47 @@ struct sp_platform {
unsigned int irq_count; unsigned int irq_count;
}; };
static const struct acpi_device_id sp_acpi_match[]; static const struct sp_dev_vdata dev_vdata[] = {
static const struct of_device_id sp_of_match[]; {
.bar = 0,
#ifdef CONFIG_CRYPTO_DEV_SP_CCP
.ccp_vdata = &ccpv3_platform,
#endif
},
};
static const struct acpi_device_id sp_acpi_match[] = {
{ "AMDI0C00", (kernel_ulong_t)&dev_vdata[0] },
{ },
};
MODULE_DEVICE_TABLE(acpi, sp_acpi_match);
static const struct of_device_id sp_of_match[] = {
{ .compatible = "amd,ccp-seattle-v1a",
.data = (const void *)&dev_vdata[0] },
{ },
};
MODULE_DEVICE_TABLE(of, sp_of_match);
static struct sp_dev_vdata *sp_get_of_version(struct platform_device *pdev) static struct sp_dev_vdata *sp_get_of_version(struct platform_device *pdev)
{ {
#ifdef CONFIG_OF
const struct of_device_id *match; const struct of_device_id *match;
match = of_match_node(sp_of_match, pdev->dev.of_node); match = of_match_node(sp_of_match, pdev->dev.of_node);
if (match && match->data) if (match && match->data)
return (struct sp_dev_vdata *)match->data; return (struct sp_dev_vdata *)match->data;
#endif
return NULL; return NULL;
} }
static struct sp_dev_vdata *sp_get_acpi_version(struct platform_device *pdev) static struct sp_dev_vdata *sp_get_acpi_version(struct platform_device *pdev)
{ {
#ifdef CONFIG_ACPI
const struct acpi_device_id *match; const struct acpi_device_id *match;
match = acpi_match_device(sp_acpi_match, &pdev->dev); match = acpi_match_device(sp_acpi_match, &pdev->dev);
if (match && match->driver_data) if (match && match->driver_data)
return (struct sp_dev_vdata *)match->driver_data; return (struct sp_dev_vdata *)match->driver_data;
#endif
return NULL; return NULL;
} }
@ -201,41 +218,11 @@ static int sp_platform_resume(struct platform_device *pdev)
} }
#endif #endif
static const struct sp_dev_vdata dev_vdata[] = {
{
.bar = 0,
#ifdef CONFIG_CRYPTO_DEV_SP_CCP
.ccp_vdata = &ccpv3_platform,
#endif
},
};
#ifdef CONFIG_ACPI
static const struct acpi_device_id sp_acpi_match[] = {
{ "AMDI0C00", (kernel_ulong_t)&dev_vdata[0] },
{ },
};
MODULE_DEVICE_TABLE(acpi, sp_acpi_match);
#endif
#ifdef CONFIG_OF
static const struct of_device_id sp_of_match[] = {
{ .compatible = "amd,ccp-seattle-v1a",
.data = (const void *)&dev_vdata[0] },
{ },
};
MODULE_DEVICE_TABLE(of, sp_of_match);
#endif
static struct platform_driver sp_platform_driver = { static struct platform_driver sp_platform_driver = {
.driver = { .driver = {
.name = "ccp", .name = "ccp",
#ifdef CONFIG_ACPI
.acpi_match_table = sp_acpi_match, .acpi_match_table = sp_acpi_match,
#endif
#ifdef CONFIG_OF
.of_match_table = sp_of_match, .of_match_table = sp_of_match,
#endif
}, },
.probe = sp_platform_probe, .probe = sp_platform_probe,
.remove = sp_platform_remove, .remove = sp_platform_remove,

View File

@ -139,8 +139,7 @@ static void adf_device_reset_worker(struct work_struct *work)
if (adf_dev_init(accel_dev) || adf_dev_start(accel_dev)) { if (adf_dev_init(accel_dev) || adf_dev_start(accel_dev)) {
/* The device hanged and we can't restart it so stop here */ /* The device hanged and we can't restart it so stop here */
dev_err(&GET_DEV(accel_dev), "Restart device failed\n"); dev_err(&GET_DEV(accel_dev), "Restart device failed\n");
if (reset_data->mode == ADF_DEV_RESET_ASYNC || if (reset_data->mode == ADF_DEV_RESET_ASYNC)
completion_done(&reset_data->compl))
kfree(reset_data); kfree(reset_data);
WARN(1, "QAT: device restart failed. Device is unusable\n"); WARN(1, "QAT: device restart failed. Device is unusable\n");
return; return;
@ -148,16 +147,8 @@ static void adf_device_reset_worker(struct work_struct *work)
adf_dev_restarted_notify(accel_dev); adf_dev_restarted_notify(accel_dev);
clear_bit(ADF_STATUS_RESTARTING, &accel_dev->status); clear_bit(ADF_STATUS_RESTARTING, &accel_dev->status);
/* /* The dev is back alive. Notify the caller if in sync mode */
* The dev is back alive. Notify the caller if in sync mode if (reset_data->mode == ADF_DEV_RESET_ASYNC)
*
* If device restart will take a more time than expected,
* the schedule_reset() function can timeout and exit. This can be
* detected by calling the completion_done() function. In this case
* the reset_data structure needs to be freed here.
*/
if (reset_data->mode == ADF_DEV_RESET_ASYNC ||
completion_done(&reset_data->compl))
kfree(reset_data); kfree(reset_data);
else else
complete(&reset_data->compl); complete(&reset_data->compl);
@ -192,10 +183,10 @@ static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
if (!timeout) { if (!timeout) {
dev_err(&GET_DEV(accel_dev), dev_err(&GET_DEV(accel_dev),
"Reset device timeout expired\n"); "Reset device timeout expired\n");
cancel_work_sync(&reset_data->reset_work);
ret = -EFAULT; ret = -EFAULT;
} else {
kfree(reset_data);
} }
kfree(reset_data);
return ret; return ret;
} }
return 0; return 0;

View File

@ -119,12 +119,12 @@ static void sync_print_obj(struct seq_file *s, struct sync_timeline *obj)
seq_printf(s, "%s: %d\n", obj->name, obj->value); seq_printf(s, "%s: %d\n", obj->name, obj->value);
spin_lock_irq(&obj->lock); spin_lock(&obj->lock); /* Caller already disabled IRQ. */
list_for_each(pos, &obj->pt_list) { list_for_each(pos, &obj->pt_list) {
struct sync_pt *pt = container_of(pos, struct sync_pt, link); struct sync_pt *pt = container_of(pos, struct sync_pt, link);
sync_print_fence(s, &pt->base, false); sync_print_fence(s, &pt->base, false);
} }
spin_unlock_irq(&obj->lock); spin_unlock(&obj->lock);
} }
static void sync_print_sync_file(struct seq_file *s, static void sync_print_sync_file(struct seq_file *s,

View File

@ -595,7 +595,9 @@ static int idma64_probe(struct idma64_chip *chip)
idma64->dma.dev = chip->sysdev; idma64->dma.dev = chip->sysdev;
dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK); ret = dma_set_max_seg_size(idma64->dma.dev, IDMA64C_CTLH_BLOCK_TS_MASK);
if (ret)
return ret;
ret = dma_async_device_register(&idma64->dma); ret = dma_async_device_register(&idma64->dma);
if (ret) if (ret)

View File

@ -100,7 +100,8 @@ config EXTCON_MAX77843
config EXTCON_MAX8997 config EXTCON_MAX8997
tristate "Maxim MAX8997 EXTCON Support" tristate "Maxim MAX8997 EXTCON Support"
depends on MFD_MAX8997 && IRQ_DOMAIN depends on MFD_MAX8997
select IRQ_DOMAIN
help help
If you say yes here you get support for the MUIC device of If you say yes here you get support for the MUIC device of
Maxim MAX8997 PMIC. The MAX8997 MUIC is a USB port accessory Maxim MAX8997 PMIC. The MAX8997 MUIC is a USB port accessory

View File

@ -160,9 +160,14 @@ static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
return 0; return 0;
} }
static void dmi_dev_release(struct device *dev)
{
kfree(dev);
}
static struct class dmi_class = { static struct class dmi_class = {
.name = "dmi", .name = "dmi",
.dev_release = (void(*)(struct device *)) kfree, .dev_release = dmi_dev_release,
.dev_uevent = dmi_dev_uevent, .dev_uevent = dmi_dev_uevent,
}; };

View File

@ -11,6 +11,7 @@
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/mailbox_client.h> #include <linux/mailbox_client.h>
#include <linux/mailbox_controller.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
@ -88,8 +89,8 @@ int rpi_firmware_property_list(struct rpi_firmware *fw,
if (size & 3) if (size & 3)
return -EINVAL; return -EINVAL;
buf = dma_alloc_coherent(fw->cl.dev, PAGE_ALIGN(size), &bus_addr, buf = dma_alloc_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size),
GFP_ATOMIC); &bus_addr, GFP_ATOMIC);
if (!buf) if (!buf)
return -ENOMEM; return -ENOMEM;
@ -117,7 +118,7 @@ int rpi_firmware_property_list(struct rpi_firmware *fw,
ret = -EINVAL; ret = -EINVAL;
} }
dma_free_coherent(fw->cl.dev, PAGE_ALIGN(size), buf, bus_addr); dma_free_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size), buf, bus_addr);
return ret; return ret;
} }

View File

@ -26,6 +26,9 @@ static struct mtk_drm_gem_obj *mtk_drm_gem_init(struct drm_device *dev,
size = round_up(size, PAGE_SIZE); size = round_up(size, PAGE_SIZE);
if (size == 0)
return ERR_PTR(-EINVAL);
mtk_gem_obj = kzalloc(sizeof(*mtk_gem_obj), GFP_KERNEL); mtk_gem_obj = kzalloc(sizeof(*mtk_gem_obj), GFP_KERNEL);
if (!mtk_gem_obj) if (!mtk_gem_obj)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);

View File

@ -258,6 +258,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f), PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f),
.driver_data = (kernel_ulong_t)&intel_th_2x, .driver_data = (kernel_ulong_t)&intel_th_2x,
}, },
{
/* Meteor Lake-S CPU */
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xae24),
.driver_data = (kernel_ulong_t)&intel_th_2x,
},
{ {
/* Raptor Lake-S */ /* Raptor Lake-S */
PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26), PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),

View File

@ -714,8 +714,11 @@ int stm_register_device(struct device *parent, struct stm_data *stm_data,
return -ENOMEM; return -ENOMEM;
stm->major = register_chrdev(0, stm_data->name, &stm_fops); stm->major = register_chrdev(0, stm_data->name, &stm_fops);
if (stm->major < 0) if (stm->major < 0) {
goto err_free; err = stm->major;
vfree(stm);
return err;
}
device_initialize(&stm->dev); device_initialize(&stm->dev);
stm->dev.devt = MKDEV(stm->major, 0); stm->dev.devt = MKDEV(stm->major, 0);
@ -759,10 +762,8 @@ int stm_register_device(struct device *parent, struct stm_data *stm_data,
err_device: err_device:
unregister_chrdev(stm->major, stm_data->name); unregister_chrdev(stm->major, stm_data->name);
/* matches device_initialize() above */ /* calls stm_device_release() */
put_device(&stm->dev); put_device(&stm->dev);
err_free:
vfree(stm);
return err; return err;
} }

View File

@ -362,7 +362,7 @@ static int ipoib_cm_nonsrq_init_rx(struct net_device *dev, struct ib_cm_id *cm_i
if (!rx->rx_ring) if (!rx->rx_ring)
return -ENOMEM; return -ENOMEM;
t = kmalloc(sizeof *t, GFP_KERNEL); t = kmalloc(sizeof(*t), GFP_KERNEL);
if (!t) { if (!t) {
ret = -ENOMEM; ret = -ENOMEM;
goto err_free_1; goto err_free_1;
@ -431,7 +431,7 @@ static int ipoib_cm_send_rep(struct net_device *dev, struct ib_cm_id *cm_id,
data.mtu = cpu_to_be32(IPOIB_CM_BUF_SIZE); data.mtu = cpu_to_be32(IPOIB_CM_BUF_SIZE);
rep.private_data = &data; rep.private_data = &data;
rep.private_data_len = sizeof data; rep.private_data_len = sizeof(data);
rep.flow_control = 0; rep.flow_control = 0;
rep.rnr_retry_count = req->rnr_retry_count; rep.rnr_retry_count = req->rnr_retry_count;
rep.srq = ipoib_cm_has_srq(dev); rep.srq = ipoib_cm_has_srq(dev);
@ -449,7 +449,7 @@ static int ipoib_cm_req_handler(struct ib_cm_id *cm_id, struct ib_cm_event *even
int ret; int ret;
ipoib_dbg(priv, "REQ arrived\n"); ipoib_dbg(priv, "REQ arrived\n");
p = kzalloc(sizeof *p, GFP_KERNEL); p = kzalloc(sizeof(*p), GFP_KERNEL);
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
p->dev = dev; p->dev = dev;
@ -656,7 +656,7 @@ void ipoib_cm_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
} }
ipoib_cm_dma_unmap_rx(priv, frags, rx_ring[wr_id].mapping); ipoib_cm_dma_unmap_rx(priv, frags, rx_ring[wr_id].mapping);
memcpy(rx_ring[wr_id].mapping, mapping, (frags + 1) * sizeof *mapping); memcpy(rx_ring[wr_id].mapping, mapping, (frags + 1) * sizeof(*mapping));
ipoib_dbg_data(priv, "received %d bytes, SLID 0x%04x\n", ipoib_dbg_data(priv, "received %d bytes, SLID 0x%04x\n",
wc->byte_len, wc->slid); wc->byte_len, wc->slid);
@ -1086,7 +1086,7 @@ static int ipoib_cm_send_req(struct net_device *dev,
req.qp_num = qp->qp_num; req.qp_num = qp->qp_num;
req.qp_type = qp->qp_type; req.qp_type = qp->qp_type;
req.private_data = &data; req.private_data = &data;
req.private_data_len = sizeof data; req.private_data_len = sizeof(data);
req.flow_control = 0; req.flow_control = 0;
req.starting_psn = 0; /* FIXME */ req.starting_psn = 0; /* FIXME */
@ -1143,7 +1143,7 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
ret = -ENOMEM; ret = -ENOMEM;
goto err_tx; goto err_tx;
} }
memset(p->tx_ring, 0, ipoib_sendq_size * sizeof *p->tx_ring); memset(p->tx_ring, 0, ipoib_sendq_size * sizeof(*p->tx_ring));
p->qp = ipoib_cm_create_tx_qp(p->dev, p); p->qp = ipoib_cm_create_tx_qp(p->dev, p);
memalloc_noio_restore(noio_flag); memalloc_noio_restore(noio_flag);
@ -1295,7 +1295,7 @@ struct ipoib_cm_tx *ipoib_cm_create_tx(struct net_device *dev, struct ipoib_path
struct ipoib_dev_priv *priv = ipoib_priv(dev); struct ipoib_dev_priv *priv = ipoib_priv(dev);
struct ipoib_cm_tx *tx; struct ipoib_cm_tx *tx;
tx = kzalloc(sizeof *tx, GFP_ATOMIC); tx = kzalloc(sizeof(*tx), GFP_ATOMIC);
if (!tx) if (!tx)
return NULL; return NULL;
@ -1360,7 +1360,7 @@ static void ipoib_cm_tx_start(struct work_struct *work)
neigh->daddr + QPN_AND_OPTIONS_OFFSET); neigh->daddr + QPN_AND_OPTIONS_OFFSET);
goto free_neigh; goto free_neigh;
} }
memcpy(&pathrec, &p->path->pathrec, sizeof pathrec); memcpy(&pathrec, &p->path->pathrec, sizeof(pathrec));
spin_unlock_irqrestore(&priv->lock, flags); spin_unlock_irqrestore(&priv->lock, flags);
netif_tx_unlock_bh(dev); netif_tx_unlock_bh(dev);

View File

@ -262,15 +262,15 @@ static const struct file_operations ipoib_path_fops = {
void ipoib_create_debug_files(struct net_device *dev) void ipoib_create_debug_files(struct net_device *dev)
{ {
struct ipoib_dev_priv *priv = ipoib_priv(dev); struct ipoib_dev_priv *priv = ipoib_priv(dev);
char name[IFNAMSIZ + sizeof "_path"]; char name[IFNAMSIZ + sizeof("_path")];
snprintf(name, sizeof name, "%s_mcg", dev->name); snprintf(name, sizeof(name), "%s_mcg", dev->name);
priv->mcg_dentry = debugfs_create_file(name, S_IFREG | S_IRUGO, priv->mcg_dentry = debugfs_create_file(name, S_IFREG | S_IRUGO,
ipoib_root, dev, &ipoib_mcg_fops); ipoib_root, dev, &ipoib_mcg_fops);
if (!priv->mcg_dentry) if (!priv->mcg_dentry)
ipoib_warn(priv, "failed to create mcg debug file\n"); ipoib_warn(priv, "failed to create mcg debug file\n");
snprintf(name, sizeof name, "%s_path", dev->name); snprintf(name, sizeof(name), "%s_path", dev->name);
priv->path_dentry = debugfs_create_file(name, S_IFREG | S_IRUGO, priv->path_dentry = debugfs_create_file(name, S_IFREG | S_IRUGO,
ipoib_root, dev, &ipoib_path_fops); ipoib_root, dev, &ipoib_path_fops);
if (!priv->path_dentry) if (!priv->path_dentry)

View File

@ -57,7 +57,7 @@ struct ipoib_ah *ipoib_create_ah(struct net_device *dev,
struct ipoib_ah *ah; struct ipoib_ah *ah;
struct ib_ah *vah; struct ib_ah *vah;
ah = kmalloc(sizeof *ah, GFP_KERNEL); ah = kmalloc(sizeof(*ah), GFP_KERNEL);
if (!ah) if (!ah)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
@ -202,7 +202,7 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
} }
memcpy(mapping, priv->rx_ring[wr_id].mapping, memcpy(mapping, priv->rx_ring[wr_id].mapping,
IPOIB_UD_RX_SG * sizeof *mapping); IPOIB_UD_RX_SG * sizeof(*mapping));
/* /*
* If we can't allocate a new RX buffer, dump * If we can't allocate a new RX buffer, dump

View File

@ -636,7 +636,7 @@ struct ipoib_path_iter *ipoib_path_iter_init(struct net_device *dev)
{ {
struct ipoib_path_iter *iter; struct ipoib_path_iter *iter;
iter = kmalloc(sizeof *iter, GFP_KERNEL); iter = kmalloc(sizeof(*iter), GFP_KERNEL);
if (!iter) if (!iter)
return NULL; return NULL;
@ -866,7 +866,7 @@ static struct ipoib_path *path_rec_create(struct net_device *dev, void *gid)
if (!priv->broadcast) if (!priv->broadcast)
return NULL; return NULL;
path = kzalloc(sizeof *path, GFP_ATOMIC); path = kzalloc(sizeof(*path), GFP_ATOMIC);
if (!path) if (!path)
return NULL; return NULL;
@ -1184,7 +1184,7 @@ static int ipoib_hard_header(struct sk_buff *skb,
{ {
struct ipoib_header *header; struct ipoib_header *header;
header = skb_push(skb, sizeof *header); header = skb_push(skb, sizeof(*header));
header->proto = htons(type); header->proto = htons(type);
header->reserved = 0; header->reserved = 0;
@ -1352,7 +1352,7 @@ static struct ipoib_neigh *ipoib_neigh_ctor(u8 *daddr,
{ {
struct ipoib_neigh *neigh; struct ipoib_neigh *neigh;
neigh = kzalloc(sizeof *neigh, GFP_ATOMIC); neigh = kzalloc(sizeof(*neigh), GFP_ATOMIC);
if (!neigh) if (!neigh)
return NULL; return NULL;
@ -2329,7 +2329,7 @@ static void ipoib_add_one(struct ib_device *device)
int p; int p;
int count = 0; int count = 0;
dev_list = kmalloc(sizeof *dev_list, GFP_KERNEL); dev_list = kmalloc(sizeof(*dev_list), GFP_KERNEL);
if (!dev_list) if (!dev_list)
return; return;

View File

@ -140,7 +140,7 @@ static struct ipoib_mcast *ipoib_mcast_alloc(struct net_device *dev,
{ {
struct ipoib_mcast *mcast; struct ipoib_mcast *mcast;
mcast = kzalloc(sizeof *mcast, can_sleep ? GFP_KERNEL : GFP_ATOMIC); mcast = kzalloc(sizeof(*mcast), can_sleep ? GFP_KERNEL : GFP_ATOMIC);
if (!mcast) if (!mcast)
return NULL; return NULL;
@ -916,7 +916,7 @@ void ipoib_mcast_restart_task(struct work_struct *work)
if (!ipoib_mcast_addr_is_valid(ha->addr, dev->broadcast)) if (!ipoib_mcast_addr_is_valid(ha->addr, dev->broadcast))
continue; continue;
memcpy(mgid.raw, ha->addr + 4, sizeof mgid); memcpy(mgid.raw, ha->addr + 4, sizeof(mgid));
mcast = __ipoib_mcast_find(dev, &mgid); mcast = __ipoib_mcast_find(dev, &mgid);
if (!mcast || test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags)) { if (!mcast || test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags)) {
@ -997,7 +997,7 @@ struct ipoib_mcast_iter *ipoib_mcast_iter_init(struct net_device *dev)
{ {
struct ipoib_mcast_iter *iter; struct ipoib_mcast_iter *iter;
iter = kmalloc(sizeof *iter, GFP_KERNEL); iter = kmalloc(sizeof(*iter), GFP_KERNEL);
if (!iter) if (!iter)
return NULL; return NULL;

View File

@ -52,7 +52,7 @@ int ipoib_mcast_attach(struct net_device *dev, struct ib_device *hca,
if (set_qkey) { if (set_qkey) {
ret = -ENOMEM; ret = -ENOMEM;
qp_attr = kmalloc(sizeof *qp_attr, GFP_KERNEL); qp_attr = kmalloc(sizeof(*qp_attr), GFP_KERNEL);
if (!qp_attr) if (!qp_attr)
goto out; goto out;

View File

@ -130,8 +130,12 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey)
if (test_bit(IPOIB_FLAG_GOING_DOWN, &ppriv->flags)) if (test_bit(IPOIB_FLAG_GOING_DOWN, &ppriv->flags))
return -EPERM; return -EPERM;
snprintf(intf_name, sizeof intf_name, "%s.%04x", /* If you increase IFNAMSIZ, update snprintf below
ppriv->dev->name, pkey); * to allow longer names.
*/
BUILD_BUG_ON(IFNAMSIZ != 16);
snprintf(intf_name, sizeof(intf_name), "%.10s.%04x", ppriv->dev->name,
pkey);
if (!mutex_trylock(&ppriv->sysfs_mutex)) if (!mutex_trylock(&ppriv->sysfs_mutex))
return restart_syscall(); return restart_syscall();

View File

@ -47,8 +47,8 @@ struct ims_pcu_backlight {
#define IMS_PCU_PART_NUMBER_LEN 15 #define IMS_PCU_PART_NUMBER_LEN 15
#define IMS_PCU_SERIAL_NUMBER_LEN 8 #define IMS_PCU_SERIAL_NUMBER_LEN 8
#define IMS_PCU_DOM_LEN 8 #define IMS_PCU_DOM_LEN 8
#define IMS_PCU_FW_VERSION_LEN (9 + 1) #define IMS_PCU_FW_VERSION_LEN 16
#define IMS_PCU_BL_VERSION_LEN (9 + 1) #define IMS_PCU_BL_VERSION_LEN 16
#define IMS_PCU_BL_RESET_REASON_LEN (2 + 1) #define IMS_PCU_BL_RESET_REASON_LEN (2 + 1)
#define IMS_PCU_PCU_B_DEVICE_ID 5 #define IMS_PCU_PCU_B_DEVICE_ID 5

View File

@ -22,7 +22,8 @@
#define VIB_MAX_LEVEL_mV (3100) #define VIB_MAX_LEVEL_mV (3100)
#define VIB_MIN_LEVEL_mV (1200) #define VIB_MIN_LEVEL_mV (1200)
#define VIB_MAX_LEVELS (VIB_MAX_LEVEL_mV - VIB_MIN_LEVEL_mV) #define VIB_PER_STEP_mV (100)
#define VIB_MAX_LEVELS (VIB_MAX_LEVEL_mV - VIB_MIN_LEVEL_mV + VIB_PER_STEP_mV)
#define MAX_FF_SPEED 0xff #define MAX_FF_SPEED 0xff
@ -126,10 +127,10 @@ static void pm8xxx_work_handler(struct work_struct *work)
vib->active = true; vib->active = true;
vib->level = ((VIB_MAX_LEVELS * vib->speed) / MAX_FF_SPEED) + vib->level = ((VIB_MAX_LEVELS * vib->speed) / MAX_FF_SPEED) +
VIB_MIN_LEVEL_mV; VIB_MIN_LEVEL_mV;
vib->level /= 100; vib->level /= VIB_PER_STEP_mV;
} else { } else {
vib->active = false; vib->active = false;
vib->level = VIB_MIN_LEVEL_mV / 100; vib->level = VIB_MIN_LEVEL_mV / VIB_PER_STEP_mV;
} }
pm8xxx_vib_set(vib, vib->active); pm8xxx_vib_set(vib, vib->active);

View File

@ -165,7 +165,7 @@ static int alpine_msix_middle_domain_alloc(struct irq_domain *domain,
return 0; return 0;
err_sgi: err_sgi:
irq_domain_free_irqs_parent(domain, virq, i - 1); irq_domain_free_irqs_parent(domain, virq, i);
alpine_msix_free_sgi(priv, sgi, nr_irqs); alpine_msix_free_sgi(priv, sgi, nr_irqs);
return err; return err;
} }

View File

@ -20,18 +20,16 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/proc_fs.h> #include <linux/proc_fs.h>
#include <asm/macintosh.h> #include <asm/macintosh.h>
#include <asm/macints.h> #include <asm/macints.h>
#include <asm/mac_iop.h> #include <asm/mac_iop.h>
#include <asm/mac_oss.h> #include <asm/mac_oss.h>
#include <asm/adb_iop.h> #include <asm/adb_iop.h>
#include <linux/adb.h> #include <linux/adb.h>
/*#define DEBUG_ADB_IOP*/ /*#define DEBUG_ADB_IOP*/
extern void iop_ism_irq(int, void *);
static struct adb_request *current_req; static struct adb_request *current_req;
static struct adb_request *last_req; static struct adb_request *last_req;
#if 0 #if 0
@ -40,9 +38,9 @@ static unsigned char *reply_ptr;
#endif #endif
static enum adb_iop_state { static enum adb_iop_state {
idle, idle,
sending, sending,
awaiting_reply awaiting_reply
} adb_iop_state; } adb_iop_state;
static void adb_iop_start(void); static void adb_iop_start(void);
@ -68,7 +66,8 @@ static void adb_iop_end_req(struct adb_request *req, int state)
{ {
req->complete = 1; req->complete = 1;
current_req = req->next; current_req = req->next;
if (req->done) (*req->done)(req); if (req->done)
(*req->done)(req);
adb_iop_state = state; adb_iop_state = state;
} }
@ -102,7 +101,7 @@ static void adb_iop_complete(struct iop_msg *msg)
static void adb_iop_listen(struct iop_msg *msg) static void adb_iop_listen(struct iop_msg *msg)
{ {
struct adb_iopmsg *amsg = (struct adb_iopmsg *) msg->message; struct adb_iopmsg *amsg = (struct adb_iopmsg *)msg->message;
struct adb_request *req; struct adb_request *req;
unsigned long flags; unsigned long flags;
#ifdef DEBUG_ADB_IOP #ifdef DEBUG_ADB_IOP
@ -115,9 +114,9 @@ static void adb_iop_listen(struct iop_msg *msg)
#ifdef DEBUG_ADB_IOP #ifdef DEBUG_ADB_IOP
printk("adb_iop_listen %p: rcvd packet, %d bytes: %02X %02X", req, printk("adb_iop_listen %p: rcvd packet, %d bytes: %02X %02X", req,
(uint) amsg->count + 2, (uint) amsg->flags, (uint) amsg->cmd); (uint)amsg->count + 2, (uint)amsg->flags, (uint)amsg->cmd);
for (i = 0; i < amsg->count; i++) for (i = 0; i < amsg->count; i++)
printk(" %02X", (uint) amsg->data[i]); printk(" %02X", (uint)amsg->data[i]);
printk("\n"); printk("\n");
#endif #endif
@ -170,14 +169,15 @@ static void adb_iop_start(void)
/* get the packet to send */ /* get the packet to send */
req = current_req; req = current_req;
if (!req) return; if (!req)
return;
local_irq_save(flags); local_irq_save(flags);
#ifdef DEBUG_ADB_IOP #ifdef DEBUG_ADB_IOP
printk("adb_iop_start %p: sending packet, %d bytes:", req, req->nbytes); printk("adb_iop_start %p: sending packet, %d bytes:", req, req->nbytes);
for (i = 0 ; i < req->nbytes ; i++) for (i = 0; i < req->nbytes; i++)
printk(" %02X", (uint) req->data[i]); printk(" %02X", (uint)req->data[i]);
printk("\n"); printk("\n");
#endif #endif
@ -198,13 +198,14 @@ static void adb_iop_start(void)
/* Now send it. The IOP manager will call adb_iop_complete */ /* Now send it. The IOP manager will call adb_iop_complete */
/* when the packet has been sent. */ /* when the packet has been sent. */
iop_send_message(ADB_IOP, ADB_CHAN, req, iop_send_message(ADB_IOP, ADB_CHAN, req, sizeof(amsg), (__u8 *)&amsg,
sizeof(amsg), (__u8 *) &amsg, adb_iop_complete); adb_iop_complete);
} }
int adb_iop_probe(void) int adb_iop_probe(void)
{ {
if (!iop_ism_present) return -ENODEV; if (!iop_ism_present)
return -ENODEV;
return 0; return 0;
} }
@ -220,10 +221,12 @@ int adb_iop_send_request(struct adb_request *req, int sync)
int err; int err;
err = adb_iop_write(req); err = adb_iop_write(req);
if (err) return err; if (err)
return err;
if (sync) { if (sync) {
while (!req->complete) adb_iop_poll(); while (!req->complete)
adb_iop_poll();
} }
return 0; return 0;
} }
@ -253,7 +256,9 @@ static int adb_iop_write(struct adb_request *req)
} }
local_irq_restore(flags); local_irq_restore(flags);
if (adb_iop_state == idle) adb_iop_start();
if (adb_iop_state == idle)
adb_iop_start();
return 0; return 0;
} }
@ -265,8 +270,9 @@ int adb_iop_autopoll(int devs)
void adb_iop_poll(void) void adb_iop_poll(void)
{ {
if (adb_iop_state == idle) adb_iop_start(); if (adb_iop_state == idle)
iop_ism_irq(0, (void *) ADB_IOP); adb_iop_start();
iop_ism_irq_poll(ADB_IOP);
} }
int adb_iop_reset_bus(void) int adb_iop_reset_bus(void)

View File

@ -12,7 +12,7 @@
* *
* 1999-08-02 (jmt) - Initial rewrite for Unified ADB. * 1999-08-02 (jmt) - Initial rewrite for Unified ADB.
* 2000-03-29 Tony Mantler <tonym@mac.linux-m68k.org> * 2000-03-29 Tony Mantler <tonym@mac.linux-m68k.org>
* - Big overhaul, should actually work now. * - Big overhaul, should actually work now.
* 2006-12-31 Finn Thain - Another overhaul. * 2006-12-31 Finn Thain - Another overhaul.
* *
* Suggested reading: * Suggested reading:
@ -23,7 +23,7 @@
* Apple's "ADB Analyzer" bus sniffer is invaluable: * Apple's "ADB Analyzer" bus sniffer is invaluable:
* ftp://ftp.apple.com/developer/Tool_Chest/Devices_-_Hardware/Apple_Desktop_Bus/ * ftp://ftp.apple.com/developer/Tool_Chest/Devices_-_Hardware/Apple_Desktop_Bus/
*/ */
#include <stdarg.h> #include <stdarg.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/errno.h> #include <linux/errno.h>
@ -77,7 +77,7 @@ static volatile unsigned char *via;
#define ST_ODD 0x20 /* ADB state: odd data byte */ #define ST_ODD 0x20 /* ADB state: odd data byte */
#define ST_IDLE 0x30 /* ADB state: idle, nothing to send */ #define ST_IDLE 0x30 /* ADB state: idle, nothing to send */
static int macii_init_via(void); static int macii_init_via(void);
static void macii_start(void); static void macii_start(void);
static irqreturn_t macii_interrupt(int irq, void *arg); static irqreturn_t macii_interrupt(int irq, void *arg);
static void macii_queue_poll(void); static void macii_queue_poll(void);
@ -120,27 +120,11 @@ static int srq_asserted; /* have to poll for the device that asserted it */
static int command_byte; /* the most recent command byte transmitted */ static int command_byte; /* the most recent command byte transmitted */
static int autopoll_devs; /* bits set are device addresses to be polled */ static int autopoll_devs; /* bits set are device addresses to be polled */
/* Sanity check for request queue. Doesn't check for cycles. */
static int request_is_queued(struct adb_request *req) {
struct adb_request *cur;
unsigned long flags;
local_irq_save(flags);
cur = current_req;
while (cur) {
if (cur == req) {
local_irq_restore(flags);
return 1;
}
cur = cur->next;
}
local_irq_restore(flags);
return 0;
}
/* Check for MacII style ADB */ /* Check for MacII style ADB */
static int macii_probe(void) static int macii_probe(void)
{ {
if (macintosh_config->adb_type != MAC_ADB_II) return -ENODEV; if (macintosh_config->adb_type != MAC_ADB_II)
return -ENODEV;
via = via1; via = via1;
@ -151,25 +135,22 @@ static int macii_probe(void)
/* Initialize the driver */ /* Initialize the driver */
int macii_init(void) int macii_init(void)
{ {
unsigned long flags;
int err; int err;
local_irq_save(flags);
err = macii_init_via(); err = macii_init_via();
if (err) goto out; if (err)
return err;
err = request_irq(IRQ_MAC_ADB, macii_interrupt, 0, "ADB", err = request_irq(IRQ_MAC_ADB, macii_interrupt, 0, "ADB",
macii_interrupt); macii_interrupt);
if (err) goto out; if (err)
return err;
macii_state = idle; macii_state = idle;
out: return 0;
local_irq_restore(flags);
return err;
} }
/* initialize the hardware */ /* initialize the hardware */
static int macii_init_via(void) static int macii_init_via(void)
{ {
unsigned char x; unsigned char x;
@ -179,7 +160,7 @@ static int macii_init_via(void)
/* Set up state: idle */ /* Set up state: idle */
via[B] |= ST_IDLE; via[B] |= ST_IDLE;
last_status = via[B] & (ST_MASK|CTLR_IRQ); last_status = via[B] & (ST_MASK | CTLR_IRQ);
/* Shift register on input */ /* Shift register on input */
via[ACR] = (via[ACR] & ~SR_CTRL) | SR_EXT; via[ACR] = (via[ACR] & ~SR_CTRL) | SR_EXT;
@ -205,7 +186,8 @@ static void macii_queue_poll(void)
int next_device; int next_device;
static struct adb_request req; static struct adb_request req;
if (!autopoll_devs) return; if (!autopoll_devs)
return;
device_mask = (1 << (((command_byte & 0xF0) >> 4) + 1)) - 1; device_mask = (1 << (((command_byte & 0xF0) >> 4) + 1)) - 1;
if (autopoll_devs & ~device_mask) if (autopoll_devs & ~device_mask)
@ -213,10 +195,7 @@ static void macii_queue_poll(void)
else else
next_device = ffs(autopoll_devs) - 1; next_device = ffs(autopoll_devs) - 1;
BUG_ON(request_is_queued(&req)); adb_request(&req, NULL, ADBREQ_NOSEND, 1, ADB_READREG(next_device, 0));
adb_request(&req, NULL, ADBREQ_NOSEND, 1,
ADB_READREG(next_device, 0));
req.sent = 0; req.sent = 0;
req.complete = 0; req.complete = 0;
@ -237,18 +216,13 @@ static int macii_send_request(struct adb_request *req, int sync)
int err; int err;
unsigned long flags; unsigned long flags;
BUG_ON(request_is_queued(req));
local_irq_save(flags); local_irq_save(flags);
err = macii_write(req); err = macii_write(req);
local_irq_restore(flags); local_irq_restore(flags);
if (!err && sync) { if (!err && sync)
while (!req->complete) { while (!req->complete)
macii_poll(); macii_poll();
}
BUG_ON(request_is_queued(req));
}
return err; return err;
} }
@ -260,7 +234,7 @@ static int macii_write(struct adb_request *req)
req->complete = 1; req->complete = 1;
return -EINVAL; return -EINVAL;
} }
req->next = NULL; req->next = NULL;
req->sent = 0; req->sent = 0;
req->complete = 0; req->complete = 0;
@ -272,7 +246,8 @@ static int macii_write(struct adb_request *req)
} else { } else {
current_req = req; current_req = req;
last_req = req; last_req = req;
if (macii_state == idle) macii_start(); if (macii_state == idle)
macii_start();
} }
return 0; return 0;
} }
@ -287,7 +262,8 @@ static int macii_autopoll(int devs)
/* bit 1 == device 1, and so on. */ /* bit 1 == device 1, and so on. */
autopoll_devs = devs & 0xFFFE; autopoll_devs = devs & 0xFFFE;
if (!autopoll_devs) return 0; if (!autopoll_devs)
return 0;
local_irq_save(flags); local_irq_save(flags);
@ -304,7 +280,8 @@ static int macii_autopoll(int devs)
return err; return err;
} }
static inline int need_autopoll(void) { static inline int need_autopoll(void)
{
/* Was the last command Talk Reg 0 /* Was the last command Talk Reg 0
* and is the target on the autopoll list? * and is the target on the autopoll list?
*/ */
@ -326,9 +303,6 @@ static void macii_poll(void)
static int macii_reset_bus(void) static int macii_reset_bus(void)
{ {
static struct adb_request req; static struct adb_request req;
if (request_is_queued(&req))
return 0;
/* Command = 0, Address = ignored */ /* Command = 0, Address = ignored */
adb_request(&req, NULL, 0, 1, ADB_BUSRESET); adb_request(&req, NULL, 0, 1, ADB_BUSRESET);
@ -346,10 +320,6 @@ static void macii_start(void)
req = current_req; req = current_req;
BUG_ON(req == NULL);
BUG_ON(macii_state != idle);
/* Now send it. Be careful though, that first byte of the request /* Now send it. Be careful though, that first byte of the request
* is actually ADB_PACKET; the real data begins at index 1! * is actually ADB_PACKET; the real data begins at index 1!
* And req->nbytes is the number of bytes of real data plus one. * And req->nbytes is the number of bytes of real data plus one.
@ -375,7 +345,7 @@ static void macii_start(void)
* to be activity on the ADB bus. The chip will poll to achieve this. * to be activity on the ADB bus. The chip will poll to achieve this.
* *
* The basic ADB state machine was left unchanged from the original MacII code * The basic ADB state machine was left unchanged from the original MacII code
* by Alan Cox, which was based on the CUDA driver for PowerMac. * by Alan Cox, which was based on the CUDA driver for PowerMac.
* The syntax of the ADB status lines is totally different on MacII, * The syntax of the ADB status lines is totally different on MacII,
* though. MacII uses the states Command -> Even -> Odd -> Even ->...-> Idle * though. MacII uses the states Command -> Even -> Odd -> Even ->...-> Idle
* for sending and Idle -> Even -> Odd -> Even ->...-> Idle for receiving. * for sending and Idle -> Even -> Odd -> Even ->...-> Idle for receiving.
@ -387,7 +357,6 @@ static void macii_start(void)
static irqreturn_t macii_interrupt(int irq, void *arg) static irqreturn_t macii_interrupt(int irq, void *arg)
{ {
int x; int x;
static int entered;
struct adb_request *req; struct adb_request *req;
if (!arg) { if (!arg) {
@ -398,153 +367,150 @@ static irqreturn_t macii_interrupt(int irq, void *arg)
return IRQ_NONE; return IRQ_NONE;
} }
BUG_ON(entered++);
last_status = status; last_status = status;
status = via[B] & (ST_MASK|CTLR_IRQ); status = via[B] & (ST_MASK | CTLR_IRQ);
switch (macii_state) { switch (macii_state) {
case idle: case idle:
if (reading_reply) { if (reading_reply) {
reply_ptr = current_req->reply; reply_ptr = current_req->reply;
} else { } else {
BUG_ON(current_req != NULL); WARN_ON(current_req);
reply_ptr = reply_buf; reply_ptr = reply_buf;
} }
x = via[SR]; x = via[SR];
if ((status & CTLR_IRQ) && (x == 0xFF)) { if ((status & CTLR_IRQ) && (x == 0xFF)) {
/* Bus timeout without SRQ sequence: /* Bus timeout without SRQ sequence:
* data is "FF" while CTLR_IRQ is "H" * data is "FF" while CTLR_IRQ is "H"
*/
reply_len = 0;
srq_asserted = 0;
macii_state = read_done;
} else {
macii_state = reading;
*reply_ptr = x;
reply_len = 1;
}
/* set ADB state = even for first data byte */
via[B] = (via[B] & ~ST_MASK) | ST_EVEN;
break;
case sending:
req = current_req;
if (data_index >= req->nbytes) {
req->sent = 1;
macii_state = idle;
if (req->reply_expected) {
reading_reply = 1;
} else {
req->complete = 1;
current_req = req->next;
if (req->done) (*req->done)(req);
if (current_req)
macii_start();
else
if (need_autopoll())
macii_autopoll(autopoll_devs);
}
if (macii_state == idle) {
/* reset to shift in */
via[ACR] &= ~SR_OUT;
x = via[SR];
/* set ADB state idle - might get SRQ */
via[B] = (via[B] & ~ST_MASK) | ST_IDLE;
}
} else {
via[SR] = req->data[data_index++];
if ( (via[B] & ST_MASK) == ST_CMD ) {
/* just sent the command byte, set to EVEN */
via[B] = (via[B] & ~ST_MASK) | ST_EVEN;
} else {
/* invert state bits, toggle ODD/EVEN */
via[B] ^= ST_MASK;
}
}
break;
case reading:
x = via[SR];
BUG_ON((status & ST_MASK) == ST_CMD ||
(status & ST_MASK) == ST_IDLE);
/* Bus timeout with SRQ sequence:
* data is "XX FF" while CTLR_IRQ is "L L"
* End of packet without SRQ sequence:
* data is "XX...YY 00" while CTLR_IRQ is "L...H L"
* End of packet SRQ sequence:
* data is "XX...YY 00" while CTLR_IRQ is "L...L L"
* (where XX is the first response byte and
* YY is the last byte of valid response data.)
*/ */
reply_len = 0;
srq_asserted = 0; srq_asserted = 0;
if (!(status & CTLR_IRQ)) { macii_state = read_done;
if (x == 0xFF) { } else {
if (!(last_status & CTLR_IRQ)) { macii_state = reading;
macii_state = read_done; *reply_ptr = x;
reply_len = 0; reply_len = 1;
srq_asserted = 1; }
}
} else if (x == 0x00) {
macii_state = read_done;
if (!(last_status & CTLR_IRQ))
srq_asserted = 1;
}
}
if (macii_state == reading) { /* set ADB state = even for first data byte */
BUG_ON(reply_len > 15); via[B] = (via[B] & ~ST_MASK) | ST_EVEN;
reply_ptr++; break;
*reply_ptr = x;
reply_len++;
}
/* invert state bits, toggle ODD/EVEN */
via[B] ^= ST_MASK;
break;
case read_done:
x = via[SR];
if (reading_reply) {
reading_reply = 0;
req = current_req;
req->reply_len = reply_len;
req->complete = 1;
current_req = req->next;
if (req->done) (*req->done)(req);
} else if (reply_len && autopoll_devs)
adb_input(reply_buf, reply_len, 0);
case sending:
req = current_req;
if (data_index >= req->nbytes) {
req->sent = 1;
macii_state = idle; macii_state = idle;
/* SRQ seen before, initiate poll now */ if (req->reply_expected) {
if (srq_asserted) reading_reply = 1;
macii_queue_poll(); } else {
req->complete = 1;
current_req = req->next;
if (req->done)
(*req->done)(req);
if (current_req) if (current_req)
macii_start(); macii_start();
else else if (need_autopoll())
if (need_autopoll())
macii_autopoll(autopoll_devs); macii_autopoll(autopoll_devs);
}
if (macii_state == idle) if (macii_state == idle) {
/* reset to shift in */
via[ACR] &= ~SR_OUT;
x = via[SR];
/* set ADB state idle - might get SRQ */
via[B] = (via[B] & ~ST_MASK) | ST_IDLE; via[B] = (via[B] & ~ST_MASK) | ST_IDLE;
break; }
} else {
via[SR] = req->data[data_index++];
default: if ((via[B] & ST_MASK) == ST_CMD) {
/* just sent the command byte, set to EVEN */
via[B] = (via[B] & ~ST_MASK) | ST_EVEN;
} else {
/* invert state bits, toggle ODD/EVEN */
via[B] ^= ST_MASK;
}
}
break;
case reading:
x = via[SR];
WARN_ON((status & ST_MASK) == ST_CMD ||
(status & ST_MASK) == ST_IDLE);
/* Bus timeout with SRQ sequence:
* data is "XX FF" while CTLR_IRQ is "L L"
* End of packet without SRQ sequence:
* data is "XX...YY 00" while CTLR_IRQ is "L...H L"
* End of packet SRQ sequence:
* data is "XX...YY 00" while CTLR_IRQ is "L...L L"
* (where XX is the first response byte and
* YY is the last byte of valid response data.)
*/
srq_asserted = 0;
if (!(status & CTLR_IRQ)) {
if (x == 0xFF) {
if (!(last_status & CTLR_IRQ)) {
macii_state = read_done;
reply_len = 0;
srq_asserted = 1;
}
} else if (x == 0x00) {
macii_state = read_done;
if (!(last_status & CTLR_IRQ))
srq_asserted = 1;
}
}
if (macii_state == reading &&
reply_len < ARRAY_SIZE(reply_buf)) {
reply_ptr++;
*reply_ptr = x;
reply_len++;
}
/* invert state bits, toggle ODD/EVEN */
via[B] ^= ST_MASK;
break;
case read_done:
x = via[SR];
if (reading_reply) {
reading_reply = 0;
req = current_req;
req->reply_len = reply_len;
req->complete = 1;
current_req = req->next;
if (req->done)
(*req->done)(req);
} else if (reply_len && autopoll_devs)
adb_input(reply_buf, reply_len, 0);
macii_state = idle;
/* SRQ seen before, initiate poll now */
if (srq_asserted)
macii_queue_poll();
if (current_req)
macii_start();
else if (need_autopoll())
macii_autopoll(autopoll_devs);
if (macii_state == idle)
via[B] = (via[B] & ~ST_MASK) | ST_IDLE;
break;
default:
break; break;
} }
entered--;
return IRQ_HANDLED; return IRQ_HANDLED;
} }

View File

@ -44,7 +44,6 @@
*/ */
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/kthread.h> #include <linux/kthread.h>
#include <linux/raid/pq.h> #include <linux/raid/pq.h>
#include <linux/async_tx.h> #include <linux/async_tx.h>
@ -6273,6 +6272,9 @@ static void raid5d(struct md_thread *thread)
int batch_size, released; int batch_size, released;
unsigned int offset; unsigned int offset;
if (test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags))
break;
released = release_stripe_list(conf, conf->temp_inactive_list); released = release_stripe_list(conf, conf->temp_inactive_list);
if (released) if (released)
clear_bit(R5_DID_ALLOC, &conf->cache_state); clear_bit(R5_DID_ALLOC, &conf->cache_state);
@ -6309,18 +6311,7 @@ static void raid5d(struct md_thread *thread)
spin_unlock_irq(&conf->device_lock); spin_unlock_irq(&conf->device_lock);
md_check_recovery(mddev); md_check_recovery(mddev);
spin_lock_irq(&conf->device_lock); spin_lock_irq(&conf->device_lock);
/*
* Waiting on MD_SB_CHANGE_PENDING below may deadlock
* seeing md_check_recovery() is needed to clear
* the flag when using mdmon.
*/
continue;
} }
wait_event_lock_irq(mddev->sb_wait,
!test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags),
conf->device_lock);
} }
pr_debug("%d stripes handled\n", handled); pr_debug("%d stripes handled\n", handled);

View File

@ -645,6 +645,8 @@ static int cec_release(struct inode *inode, struct file *filp)
list_del(&data->xfer_list); list_del(&data->xfer_list);
} }
mutex_unlock(&adap->lock); mutex_unlock(&adap->lock);
mutex_lock(&fh->lock);
while (!list_empty(&fh->msgs)) { while (!list_empty(&fh->msgs)) {
struct cec_msg_entry *entry = struct cec_msg_entry *entry =
list_first_entry(&fh->msgs, struct cec_msg_entry, list); list_first_entry(&fh->msgs, struct cec_msg_entry, list);
@ -662,6 +664,7 @@ static int cec_release(struct inode *inode, struct file *filp)
kfree(entry); kfree(entry);
} }
} }
mutex_unlock(&fh->lock);
kfree(fh); kfree(fh);
cec_put_device(devnode); cec_put_device(devnode);

View File

@ -1367,57 +1367,57 @@ static int config_ts(struct mxl *state, enum MXL_HYDRA_DEMOD_ID_E demod_id,
u32 nco_count_min = 0; u32 nco_count_min = 0;
u32 clk_type = 0; u32 clk_type = 0;
struct MXL_REG_FIELD_T xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 8, 1}, {0x90700010, 9, 1}, {0x90700010, 8, 1}, {0x90700010, 9, 1},
{0x90700010, 10, 1}, {0x90700010, 11, 1}, {0x90700010, 10, 1}, {0x90700010, 11, 1},
{0x90700010, 12, 1}, {0x90700010, 13, 1}, {0x90700010, 12, 1}, {0x90700010, 13, 1},
{0x90700010, 14, 1}, {0x90700010, 15, 1} }; {0x90700010, 14, 1}, {0x90700010, 15, 1} };
struct MXL_REG_FIELD_T xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 16, 1}, {0x90700010, 17, 1}, {0x90700010, 16, 1}, {0x90700010, 17, 1},
{0x90700010, 18, 1}, {0x90700010, 19, 1}, {0x90700010, 18, 1}, {0x90700010, 19, 1},
{0x90700010, 20, 1}, {0x90700010, 21, 1}, {0x90700010, 20, 1}, {0x90700010, 21, 1},
{0x90700010, 22, 1}, {0x90700010, 23, 1} }; {0x90700010, 22, 1}, {0x90700010, 23, 1} };
struct MXL_REG_FIELD_T xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700014, 0, 1}, {0x90700014, 1, 1}, {0x90700014, 0, 1}, {0x90700014, 1, 1},
{0x90700014, 2, 1}, {0x90700014, 3, 1}, {0x90700014, 2, 1}, {0x90700014, 3, 1},
{0x90700014, 4, 1}, {0x90700014, 5, 1}, {0x90700014, 4, 1}, {0x90700014, 5, 1},
{0x90700014, 6, 1}, {0x90700014, 7, 1} }; {0x90700014, 6, 1}, {0x90700014, 7, 1} };
struct MXL_REG_FIELD_T xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
{0x90700018, 0, 3}, {0x90700018, 4, 3}, {0x90700018, 0, 3}, {0x90700018, 4, 3},
{0x90700018, 8, 3}, {0x90700018, 12, 3}, {0x90700018, 8, 3}, {0x90700018, 12, 3},
{0x90700018, 16, 3}, {0x90700018, 20, 3}, {0x90700018, 16, 3}, {0x90700018, 20, 3},
{0x90700018, 24, 3}, {0x90700018, 28, 3} }; {0x90700018, 24, 3}, {0x90700018, 28, 3} };
struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] = {
{0x9070000C, 16, 1}, {0x9070000C, 17, 1}, {0x9070000C, 16, 1}, {0x9070000C, 17, 1},
{0x9070000C, 18, 1}, {0x9070000C, 19, 1}, {0x9070000C, 18, 1}, {0x9070000C, 19, 1},
{0x9070000C, 20, 1}, {0x9070000C, 21, 1}, {0x9070000C, 20, 1}, {0x9070000C, 21, 1},
{0x9070000C, 22, 1}, {0x9070000C, 23, 1} }; {0x9070000C, 22, 1}, {0x9070000C, 23, 1} };
struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 0, 1}, {0x90700010, 1, 1}, {0x90700010, 0, 1}, {0x90700010, 1, 1},
{0x90700010, 2, 1}, {0x90700010, 3, 1}, {0x90700010, 2, 1}, {0x90700010, 3, 1},
{0x90700010, 4, 1}, {0x90700010, 5, 1}, {0x90700010, 4, 1}, {0x90700010, 5, 1},
{0x90700010, 6, 1}, {0x90700010, 7, 1} }; {0x90700010, 6, 1}, {0x90700010, 7, 1} };
struct MXL_REG_FIELD_T xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
{0x9070000C, 0, 1}, {0x9070000C, 1, 1}, {0x9070000C, 0, 1}, {0x9070000C, 1, 1},
{0x9070000C, 2, 1}, {0x9070000C, 3, 1}, {0x9070000C, 2, 1}, {0x9070000C, 3, 1},
{0x9070000C, 4, 1}, {0x9070000C, 5, 1}, {0x9070000C, 4, 1}, {0x9070000C, 5, 1},
{0x9070000C, 6, 1}, {0x9070000C, 7, 1} }; {0x9070000C, 6, 1}, {0x9070000C, 7, 1} };
struct MXL_REG_FIELD_T xpt_err_replace_sync[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_err_replace_sync[MXL_HYDRA_DEMOD_MAX] = {
{0x9070000C, 24, 1}, {0x9070000C, 25, 1}, {0x9070000C, 24, 1}, {0x9070000C, 25, 1},
{0x9070000C, 26, 1}, {0x9070000C, 27, 1}, {0x9070000C, 26, 1}, {0x9070000C, 27, 1},
{0x9070000C, 28, 1}, {0x9070000C, 29, 1}, {0x9070000C, 28, 1}, {0x9070000C, 29, 1},
{0x9070000C, 30, 1}, {0x9070000C, 31, 1} }; {0x9070000C, 30, 1}, {0x9070000C, 31, 1} };
struct MXL_REG_FIELD_T xpt_err_replace_valid[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_err_replace_valid[MXL_HYDRA_DEMOD_MAX] = {
{0x90700014, 8, 1}, {0x90700014, 9, 1}, {0x90700014, 8, 1}, {0x90700014, 9, 1},
{0x90700014, 10, 1}, {0x90700014, 11, 1}, {0x90700014, 10, 1}, {0x90700014, 11, 1},
{0x90700014, 12, 1}, {0x90700014, 13, 1}, {0x90700014, 12, 1}, {0x90700014, 13, 1},
{0x90700014, 14, 1}, {0x90700014, 15, 1} }; {0x90700014, 14, 1}, {0x90700014, 15, 1} };
struct MXL_REG_FIELD_T xpt_continuous_clock[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_continuous_clock[MXL_HYDRA_DEMOD_MAX] = {
{0x907001D4, 0, 1}, {0x907001D4, 1, 1}, {0x907001D4, 0, 1}, {0x907001D4, 1, 1},
{0x907001D4, 2, 1}, {0x907001D4, 3, 1}, {0x907001D4, 2, 1}, {0x907001D4, 3, 1},
{0x907001D4, 4, 1}, {0x907001D4, 5, 1}, {0x907001D4, 4, 1}, {0x907001D4, 5, 1},
{0x907001D4, 6, 1}, {0x907001D4, 7, 1} }; {0x907001D4, 6, 1}, {0x907001D4, 7, 1} };
struct MXL_REG_FIELD_T xpt_nco_clock_rate[MXL_HYDRA_DEMOD_MAX] = { static const struct MXL_REG_FIELD_T xpt_nco_clock_rate[MXL_HYDRA_DEMOD_MAX] = {
{0x90700044, 16, 80}, {0x90700044, 16, 81}, {0x90700044, 16, 80}, {0x90700044, 16, 81},
{0x90700044, 16, 82}, {0x90700044, 16, 83}, {0x90700044, 16, 82}, {0x90700044, 16, 83},
{0x90700044, 16, 84}, {0x90700044, 16, 85}, {0x90700044, 16, 84}, {0x90700044, 16, 85},

View File

@ -1499,7 +1499,9 @@ static int init_channel(struct ngene_channel *chan)
} }
if (dev->ci.en && (io & NGENE_IO_TSOUT)) { if (dev->ci.en && (io & NGENE_IO_TSOUT)) {
dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1); ret = dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1);
if (ret != 0)
goto err;
set_transfer(chan, 1); set_transfer(chan, 1);
chan->dev->channel[2].DataFormatFlags = DF_SWAP32; chan->dev->channel[2].DataFormatFlags = DF_SWAP32;
set_transfer(&chan->dev->channel[2], 1); set_transfer(&chan->dev->channel[2], 1);

View File

@ -62,7 +62,7 @@ struct shark_device {
#ifdef SHARK_USE_LEDS #ifdef SHARK_USE_LEDS
struct work_struct led_work; struct work_struct led_work;
struct led_classdev leds[NO_LEDS]; struct led_classdev leds[NO_LEDS];
char led_names[NO_LEDS][32]; char led_names[NO_LEDS][64];
atomic_t brightness[NO_LEDS]; atomic_t brightness[NO_LEDS];
unsigned long brightness_new; unsigned long brightness_new;
#endif #endif

View File

@ -109,7 +109,7 @@ void stk1160_buffer_done(struct stk1160 *dev)
static inline static inline
void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len) void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
{ {
int linesdone, lineoff, lencopy; int linesdone, lineoff, lencopy, offset;
int bytesperline = dev->width * 2; int bytesperline = dev->width * 2;
struct stk1160_buffer *buf = dev->isoc_ctl.buf; struct stk1160_buffer *buf = dev->isoc_ctl.buf;
u8 *dst = buf->mem; u8 *dst = buf->mem;
@ -149,8 +149,13 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
* Check if we have enough space left in the buffer. * Check if we have enough space left in the buffer.
* In that case, we force loop exit after copy. * In that case, we force loop exit after copy.
*/ */
if (lencopy > buf->bytesused - buf->length) { offset = dst - (u8 *)buf->mem;
lencopy = buf->bytesused - buf->length; if (offset > buf->length) {
dev_warn_ratelimited(dev->dev, "out of bounds offset\n");
return;
}
if (lencopy > buf->length - offset) {
lencopy = buf->length - offset;
remain = lencopy; remain = lencopy;
} }
@ -192,8 +197,13 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
* Check if we have enough space left in the buffer. * Check if we have enough space left in the buffer.
* In that case, we force loop exit after copy. * In that case, we force loop exit after copy.
*/ */
if (lencopy > buf->bytesused - buf->length) { offset = dst - (u8 *)buf->mem;
lencopy = buf->bytesused - buf->length; if (offset > buf->length) {
dev_warn_ratelimited(dev->dev, "offset out of bounds\n");
return;
}
if (lencopy > buf->length - offset) {
lencopy = buf->length - offset;
remain = lencopy; remain = lencopy;
} }

View File

@ -969,8 +969,10 @@ int __video_register_device(struct video_device *vdev, int type, int nr,
vdev->dev.devt = MKDEV(VIDEO_MAJOR, vdev->minor); vdev->dev.devt = MKDEV(VIDEO_MAJOR, vdev->minor);
vdev->dev.parent = vdev->dev_parent; vdev->dev.parent = vdev->dev_parent;
dev_set_name(&vdev->dev, "%s%d", name_base, vdev->num); dev_set_name(&vdev->dev, "%s%d", name_base, vdev->num);
mutex_lock(&videodev_lock);
ret = device_register(&vdev->dev); ret = device_register(&vdev->dev);
if (ret < 0) { if (ret < 0) {
mutex_unlock(&videodev_lock);
printk(KERN_ERR "%s: device_register failed\n", __func__); printk(KERN_ERR "%s: device_register failed\n", __func__);
goto cleanup; goto cleanup;
} }
@ -990,6 +992,7 @@ int __video_register_device(struct video_device *vdev, int type, int nr,
/* Part 6: Activate this minor. The char device can now be used. */ /* Part 6: Activate this minor. The char device can now be used. */
set_bit(V4L2_FL_REGISTERED, &vdev->flags); set_bit(V4L2_FL_REGISTERED, &vdev->flags);
mutex_unlock(&videodev_lock);
return 0; return 0;

View File

@ -394,13 +394,12 @@ EXPORT_SYMBOL(mmc_retune_enable);
/* /*
* Pause re-tuning for a small set of operations. The pause begins after the * Pause re-tuning for a small set of operations. The pause begins after the
* next command and after first doing re-tuning. * next command.
*/ */
void mmc_retune_pause(struct mmc_host *host) void mmc_retune_pause(struct mmc_host *host)
{ {
if (!host->retune_paused) { if (!host->retune_paused) {
host->retune_paused = 1; host->retune_paused = 1;
mmc_retune_needed(host);
mmc_retune_hold(host); mmc_retune_hold(host);
} }
} }

View File

@ -359,7 +359,7 @@ static int hynix_nand_rr_init(struct nand_chip *chip)
if (ret) if (ret)
pr_warn("failed to initialize read-retry infrastructure"); pr_warn("failed to initialize read-retry infrastructure");
return 0; return ret;
} }
static void hynix_nand_extract_oobsize(struct nand_chip *chip, static void hynix_nand_extract_oobsize(struct nand_chip *chip,

View File

@ -1108,18 +1108,30 @@ static int enic_set_vf_port(struct net_device *netdev, int vf,
pp->request = nla_get_u8(port[IFLA_PORT_REQUEST]); pp->request = nla_get_u8(port[IFLA_PORT_REQUEST]);
if (port[IFLA_PORT_PROFILE]) { if (port[IFLA_PORT_PROFILE]) {
if (nla_len(port[IFLA_PORT_PROFILE]) != PORT_PROFILE_MAX) {
memcpy(pp, &prev_pp, sizeof(*pp));
return -EINVAL;
}
pp->set |= ENIC_SET_NAME; pp->set |= ENIC_SET_NAME;
memcpy(pp->name, nla_data(port[IFLA_PORT_PROFILE]), memcpy(pp->name, nla_data(port[IFLA_PORT_PROFILE]),
PORT_PROFILE_MAX); PORT_PROFILE_MAX);
} }
if (port[IFLA_PORT_INSTANCE_UUID]) { if (port[IFLA_PORT_INSTANCE_UUID]) {
if (nla_len(port[IFLA_PORT_INSTANCE_UUID]) != PORT_UUID_MAX) {
memcpy(pp, &prev_pp, sizeof(*pp));
return -EINVAL;
}
pp->set |= ENIC_SET_INSTANCE; pp->set |= ENIC_SET_INSTANCE;
memcpy(pp->instance_uuid, memcpy(pp->instance_uuid,
nla_data(port[IFLA_PORT_INSTANCE_UUID]), PORT_UUID_MAX); nla_data(port[IFLA_PORT_INSTANCE_UUID]), PORT_UUID_MAX);
} }
if (port[IFLA_PORT_HOST_UUID]) { if (port[IFLA_PORT_HOST_UUID]) {
if (nla_len(port[IFLA_PORT_HOST_UUID]) != PORT_UUID_MAX) {
memcpy(pp, &prev_pp, sizeof(*pp));
return -EINVAL;
}
pp->set |= ENIC_SET_HOST; pp->set |= ENIC_SET_HOST;
memcpy(pp->host_uuid, memcpy(pp->host_uuid,
nla_data(port[IFLA_PORT_HOST_UUID]), PORT_UUID_MAX); nla_data(port[IFLA_PORT_HOST_UUID]), PORT_UUID_MAX);

View File

@ -3224,6 +3224,14 @@ static int fec_enet_init(struct net_device *ndev)
return 0; return 0;
} }
static void fec_enet_deinit(struct net_device *ndev)
{
struct fec_enet_private *fep = netdev_priv(ndev);
netif_napi_del(&fep->napi);
fec_enet_free_queue(ndev);
}
#ifdef CONFIG_OF #ifdef CONFIG_OF
static int fec_reset_phy(struct platform_device *pdev) static int fec_reset_phy(struct platform_device *pdev)
{ {
@ -3536,6 +3544,7 @@ failed_register:
fec_enet_mii_remove(fep); fec_enet_mii_remove(fep);
failed_mii_init: failed_mii_init:
failed_irq: failed_irq:
fec_enet_deinit(ndev);
failed_init: failed_init:
fec_ptp_stop(pdev); fec_ptp_stop(pdev);
failed_reset: failed_reset:
@ -3596,6 +3605,7 @@ fec_drv_remove(struct platform_device *pdev)
pm_runtime_put_noidle(&pdev->dev); pm_runtime_put_noidle(&pdev->dev);
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
fec_enet_deinit(ndev);
free_netdev(ndev); free_netdev(ndev);
return 0; return 0;
} }

View File

@ -111,7 +111,6 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
{ {
unsigned long flags; unsigned long flags;
u32 val, tempval; u32 val, tempval;
int inc;
struct timespec64 ts; struct timespec64 ts;
u64 ns; u64 ns;
val = 0; val = 0;
@ -121,15 +120,13 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
return -EINVAL; return -EINVAL;
} }
if (fep->pps_enable == enable)
return 0;
fep->pps_channel = DEFAULT_PPS_CHANNEL;
fep->reload_period = PPS_OUPUT_RELOAD_PERIOD;
inc = fep->ptp_inc;
spin_lock_irqsave(&fep->tmreg_lock, flags); spin_lock_irqsave(&fep->tmreg_lock, flags);
if (fep->pps_enable == enable) {
spin_unlock_irqrestore(&fep->tmreg_lock, flags);
return 0;
}
if (enable) { if (enable) {
/* clear capture or output compare interrupt status if have. /* clear capture or output compare interrupt status if have.
*/ */
@ -462,6 +459,9 @@ static int fec_ptp_enable(struct ptp_clock_info *ptp,
int ret = 0; int ret = 0;
if (rq->type == PTP_CLK_REQ_PPS) { if (rq->type == PTP_CLK_REQ_PPS) {
fep->pps_channel = DEFAULT_PPS_CHANNEL;
fep->reload_period = PPS_OUPUT_RELOAD_PERIOD;
ret = fec_ptp_enable_pps(fep, on); ret = fec_ptp_enable_pps(fep, on);
return ret; return ret;

View File

@ -3152,7 +3152,7 @@ mlx5e_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats)
stats->tx_dropped = sstats->tx_queue_dropped; stats->tx_dropped = sstats->tx_queue_dropped;
} }
stats->rx_dropped = priv->stats.qcnt.rx_out_of_buffer; stats->rx_missed_errors = priv->stats.qcnt.rx_out_of_buffer;
stats->rx_length_errors = stats->rx_length_errors =
PPORT_802_3_GET(pstats, a_in_range_length_errors) + PPORT_802_3_GET(pstats, a_in_range_length_errors) +

View File

@ -369,7 +369,7 @@ static struct ipvl_addr *ipvlan_addr_lookup(struct ipvl_port *port,
return addr; return addr;
} }
static int ipvlan_process_v4_outbound(struct sk_buff *skb) static noinline_for_stack int ipvlan_process_v4_outbound(struct sk_buff *skb)
{ {
const struct iphdr *ip4h = ip_hdr(skb); const struct iphdr *ip4h = ip_hdr(skb);
struct net_device *dev = skb->dev; struct net_device *dev = skb->dev;
@ -397,26 +397,23 @@ static int ipvlan_process_v4_outbound(struct sk_buff *skb)
memset(IPCB(skb), 0, sizeof(*IPCB(skb))); memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
err = ip_local_out(net, skb->sk, skb); err = ip_local_out(net, NULL, skb);
if (unlikely(net_xmit_eval(err))) if (unlikely(net_xmit_eval(err)))
dev->stats.tx_errors++; DEV_STATS_INC(dev, tx_errors);
else else
ret = NET_XMIT_SUCCESS; ret = NET_XMIT_SUCCESS;
goto out; goto out;
err: err:
dev->stats.tx_errors++; DEV_STATS_INC(dev, tx_errors);
kfree_skb(skb); kfree_skb(skb);
out: out:
return ret; return ret;
} }
static int ipvlan_process_v6_outbound(struct sk_buff *skb) static noinline_for_stack int
ipvlan_route_v6_outbound(struct net_device *dev, struct sk_buff *skb)
{ {
const struct ipv6hdr *ip6h = ipv6_hdr(skb); const struct ipv6hdr *ip6h = ipv6_hdr(skb);
struct net_device *dev = skb->dev;
struct net *net = dev_net(dev);
struct dst_entry *dst;
int err, ret = NET_XMIT_DROP;
struct flowi6 fl6 = { struct flowi6 fl6 = {
.flowi6_oif = dev->ifindex, .flowi6_oif = dev->ifindex,
.daddr = ip6h->daddr, .daddr = ip6h->daddr,
@ -426,27 +423,38 @@ static int ipvlan_process_v6_outbound(struct sk_buff *skb)
.flowi6_mark = skb->mark, .flowi6_mark = skb->mark,
.flowi6_proto = ip6h->nexthdr, .flowi6_proto = ip6h->nexthdr,
}; };
struct dst_entry *dst;
int err;
dst = ip6_route_output(net, NULL, &fl6); dst = ip6_route_output(dev_net(dev), NULL, &fl6);
if (dst->error) { err = dst->error;
ret = dst->error; if (err) {
dst_release(dst); dst_release(dst);
goto err; return err;
} }
skb_dst_set(skb, dst); skb_dst_set(skb, dst);
return 0;
}
static int ipvlan_process_v6_outbound(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
int err, ret = NET_XMIT_DROP;
err = ipvlan_route_v6_outbound(dev, skb);
if (unlikely(err)) {
DEV_STATS_INC(dev, tx_errors);
kfree_skb(skb);
return err;
}
memset(IP6CB(skb), 0, sizeof(*IP6CB(skb))); memset(IP6CB(skb), 0, sizeof(*IP6CB(skb)));
err = ip6_local_out(net, skb->sk, skb); err = ip6_local_out(dev_net(dev), NULL, skb);
if (unlikely(net_xmit_eval(err))) if (unlikely(net_xmit_eval(err)))
dev->stats.tx_errors++; DEV_STATS_INC(dev, tx_errors);
else else
ret = NET_XMIT_SUCCESS; ret = NET_XMIT_SUCCESS;
goto out;
err:
dev->stats.tx_errors++;
kfree_skb(skb);
out:
return ret; return ret;
} }

View File

@ -388,6 +388,7 @@ static void ipvlan_get_stats64(struct net_device *dev,
s->rx_dropped = rx_errs; s->rx_dropped = rx_errs;
s->tx_dropped = tx_drps; s->tx_dropped = tx_drps;
} }
s->tx_errors = DEV_STATS_READ(dev, tx_errors);
} }
static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)

View File

@ -3254,8 +3254,8 @@ static void macsec_get_stats64(struct net_device *dev,
s->tx_bytes += tmp.tx_bytes; s->tx_bytes += tmp.tx_bytes;
} }
s->rx_dropped = dev->stats.rx_dropped; s->rx_dropped = DEV_STATS_READ(dev, rx_dropped);
s->tx_dropped = dev->stats.tx_dropped; s->tx_dropped = DEV_STATS_READ(dev, tx_dropped);
} }
static int macsec_get_iflink(const struct net_device *dev) static int macsec_get_iflink(const struct net_device *dev)

View File

@ -1315,6 +1315,9 @@ static const struct usb_device_id products[] = {
{QMI_QUIRK_SET_DTR(0x1bc7, 0x1060, 2)}, /* Telit LN920 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1060, 2)}, /* Telit LN920 */
{QMI_QUIRK_SET_DTR(0x1bc7, 0x1070, 2)}, /* Telit FN990 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1070, 2)}, /* Telit FN990 */
{QMI_QUIRK_SET_DTR(0x1bc7, 0x1080, 2)}, /* Telit FE990 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1080, 2)}, /* Telit FE990 */
{QMI_QUIRK_SET_DTR(0x1bc7, 0x10a0, 0)}, /* Telit FN920C04 */
{QMI_QUIRK_SET_DTR(0x1bc7, 0x10a4, 0)}, /* Telit FN920C04 */
{QMI_QUIRK_SET_DTR(0x1bc7, 0x10a9, 0)}, /* Telit FN920C04 */
{QMI_FIXED_INTF(0x1bc7, 0x1100, 3)}, /* Telit ME910 */ {QMI_FIXED_INTF(0x1bc7, 0x1100, 3)}, /* Telit ME910 */
{QMI_FIXED_INTF(0x1bc7, 0x1101, 3)}, /* Telit ME910 dual modem */ {QMI_FIXED_INTF(0x1bc7, 0x1101, 3)}, /* Telit ME910 dual modem */
{QMI_FIXED_INTF(0x1bc7, 0x1200, 5)}, /* Telit LE920 */ {QMI_FIXED_INTF(0x1bc7, 0x1200, 5)}, /* Telit LE920 */

View File

@ -273,16 +273,18 @@ done:
mutex_unlock(&dev->phy_mutex); mutex_unlock(&dev->phy_mutex);
} }
static int smsc95xx_mdio_read_nopm(struct net_device *netdev, int phy_id, static int smsc95xx_mdio_read_nopm(struct usbnet *dev, int idx)
int idx)
{ {
return __smsc95xx_mdio_read(netdev, phy_id, idx, 1); struct mii_if_info *mii = &dev->mii;
return __smsc95xx_mdio_read(dev->net, mii->phy_id, idx, 1);
} }
static void smsc95xx_mdio_write_nopm(struct net_device *netdev, int phy_id, static void smsc95xx_mdio_write_nopm(struct usbnet *dev, int idx, int regval)
int idx, int regval)
{ {
__smsc95xx_mdio_write(netdev, phy_id, idx, regval, 1); struct mii_if_info *mii = &dev->mii;
__smsc95xx_mdio_write(dev->net, mii->phy_id, idx, regval, 1);
} }
static int smsc95xx_mdio_read(struct net_device *netdev, int phy_id, int idx) static int smsc95xx_mdio_read(struct net_device *netdev, int phy_id, int idx)
@ -467,7 +469,7 @@ static unsigned int smsc95xx_hash(char addr[ETH_ALEN])
static void smsc95xx_set_multicast(struct net_device *netdev) static void smsc95xx_set_multicast(struct net_device *netdev)
{ {
struct usbnet *dev = netdev_priv(netdev); struct usbnet *dev = netdev_priv(netdev);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
unsigned long flags; unsigned long flags;
int ret; int ret;
@ -562,7 +564,7 @@ static int smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex,
static int smsc95xx_link_reset(struct usbnet *dev) static int smsc95xx_link_reset(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
struct mii_if_info *mii = &dev->mii; struct mii_if_info *mii = &dev->mii;
struct ethtool_cmd ecmd = { .cmd = ETHTOOL_GSET }; struct ethtool_cmd ecmd = { .cmd = ETHTOOL_GSET };
unsigned long flags; unsigned long flags;
@ -632,7 +634,7 @@ static void smsc95xx_status(struct usbnet *dev, struct urb *urb)
static void set_carrier(struct usbnet *dev, bool link) static void set_carrier(struct usbnet *dev, bool link)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
if (pdata->link_ok == link) if (pdata->link_ok == link)
return; return;
@ -761,7 +763,7 @@ static void smsc95xx_ethtool_get_wol(struct net_device *net,
struct ethtool_wolinfo *wolinfo) struct ethtool_wolinfo *wolinfo)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
wolinfo->supported = SUPPORTED_WAKE; wolinfo->supported = SUPPORTED_WAKE;
wolinfo->wolopts = pdata->wolopts; wolinfo->wolopts = pdata->wolopts;
@ -771,7 +773,7 @@ static int smsc95xx_ethtool_set_wol(struct net_device *net,
struct ethtool_wolinfo *wolinfo) struct ethtool_wolinfo *wolinfo)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
int ret; int ret;
if (wolinfo->wolopts & ~SUPPORTED_WAKE) if (wolinfo->wolopts & ~SUPPORTED_WAKE)
@ -810,7 +812,7 @@ static int get_mdix_status(struct net_device *net)
static void set_mdix_status(struct net_device *net, __u8 mdix_ctrl) static void set_mdix_status(struct net_device *net, __u8 mdix_ctrl)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
int buf; int buf;
if ((pdata->chip_id == ID_REV_CHIP_ID_9500A_) || if ((pdata->chip_id == ID_REV_CHIP_ID_9500A_) ||
@ -859,7 +861,7 @@ static int smsc95xx_get_link_ksettings(struct net_device *net,
struct ethtool_link_ksettings *cmd) struct ethtool_link_ksettings *cmd)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
int retval; int retval;
retval = usbnet_get_link_ksettings(net, cmd); retval = usbnet_get_link_ksettings(net, cmd);
@ -874,7 +876,7 @@ static int smsc95xx_set_link_ksettings(struct net_device *net,
const struct ethtool_link_ksettings *cmd) const struct ethtool_link_ksettings *cmd)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
int retval; int retval;
if (pdata->mdix_ctrl != cmd->base.eth_tp_mdix_ctrl) if (pdata->mdix_ctrl != cmd->base.eth_tp_mdix_ctrl)
@ -956,7 +958,7 @@ static int smsc95xx_set_mac_address(struct usbnet *dev)
/* starts the TX path */ /* starts the TX path */
static int smsc95xx_start_tx_path(struct usbnet *dev) static int smsc95xx_start_tx_path(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
unsigned long flags; unsigned long flags;
int ret; int ret;
@ -976,7 +978,7 @@ static int smsc95xx_start_tx_path(struct usbnet *dev)
/* Starts the Receive path */ /* Starts the Receive path */
static int smsc95xx_start_rx_path(struct usbnet *dev, int in_pm) static int smsc95xx_start_rx_path(struct usbnet *dev, int in_pm)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&pdata->mac_cr_lock, flags); spin_lock_irqsave(&pdata->mac_cr_lock, flags);
@ -1033,8 +1035,8 @@ static int smsc95xx_phy_initialize(struct usbnet *dev)
static int smsc95xx_reset(struct usbnet *dev) static int smsc95xx_reset(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
u32 read_buf, write_buf, burst_cap; u32 read_buf, burst_cap;
int ret = 0, timeout; int ret = 0, timeout;
netif_dbg(dev, ifup, dev->net, "entering smsc95xx_reset\n"); netif_dbg(dev, ifup, dev->net, "entering smsc95xx_reset\n");
@ -1176,10 +1178,13 @@ static int smsc95xx_reset(struct usbnet *dev)
return ret; return ret;
netif_dbg(dev, ifup, dev->net, "ID_REV = 0x%08x\n", read_buf); netif_dbg(dev, ifup, dev->net, "ID_REV = 0x%08x\n", read_buf);
ret = smsc95xx_read_reg(dev, LED_GPIO_CFG, &read_buf);
if (ret < 0)
return ret;
/* Configure GPIO pins as LED outputs */ /* Configure GPIO pins as LED outputs */
write_buf = LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED | read_buf |= LED_GPIO_CFG_SPD_LED | LED_GPIO_CFG_LNK_LED |
LED_GPIO_CFG_FDX_LED; LED_GPIO_CFG_FDX_LED;
ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, write_buf); ret = smsc95xx_write_reg(dev, LED_GPIO_CFG, read_buf);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -1261,7 +1266,7 @@ static const struct net_device_ops smsc95xx_netdev_ops = {
static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf) static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
{ {
struct smsc95xx_priv *pdata = NULL; struct smsc95xx_priv *pdata;
u32 val; u32 val;
int ret; int ret;
@ -1273,13 +1278,12 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
return ret; return ret;
} }
dev->data[0] = (unsigned long)kzalloc(sizeof(struct smsc95xx_priv), pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
GFP_KERNEL);
pdata = (struct smsc95xx_priv *)(dev->data[0]);
if (!pdata) if (!pdata)
return -ENOMEM; return -ENOMEM;
dev->driver_priv = pdata;
spin_lock_init(&pdata->mac_cr_lock); spin_lock_init(&pdata->mac_cr_lock);
/* LAN95xx devices do not alter the computed checksum of 0 to 0xffff. /* LAN95xx devices do not alter the computed checksum of 0 to 0xffff.
@ -1342,15 +1346,11 @@ free_pdata:
static void smsc95xx_unbind(struct usbnet *dev, struct usb_interface *intf) static void smsc95xx_unbind(struct usbnet *dev, struct usb_interface *intf)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
if (pdata) { cancel_delayed_work_sync(&pdata->carrier_check);
cancel_delayed_work_sync(&pdata->carrier_check); netif_dbg(dev, ifdown, dev->net, "free pdata\n");
netif_dbg(dev, ifdown, dev->net, "free pdata\n"); kfree(pdata);
kfree(pdata);
pdata = NULL;
dev->data[0] = 0;
}
} }
static u32 smsc_crc(const u8 *buffer, size_t len, int filter) static u32 smsc_crc(const u8 *buffer, size_t len, int filter)
@ -1361,39 +1361,37 @@ static u32 smsc_crc(const u8 *buffer, size_t len, int filter)
static int smsc95xx_enable_phy_wakeup_interrupts(struct usbnet *dev, u16 mask) static int smsc95xx_enable_phy_wakeup_interrupts(struct usbnet *dev, u16 mask)
{ {
struct mii_if_info *mii = &dev->mii;
int ret; int ret;
netdev_dbg(dev->net, "enabling PHY wakeup interrupts\n"); netdev_dbg(dev->net, "enabling PHY wakeup interrupts\n");
/* read to clear */ /* read to clear */
ret = smsc95xx_mdio_read_nopm(dev->net, mii->phy_id, PHY_INT_SRC); ret = smsc95xx_mdio_read_nopm(dev, PHY_INT_SRC);
if (ret < 0) if (ret < 0)
return ret; return ret;
/* enable interrupt source */ /* enable interrupt source */
ret = smsc95xx_mdio_read_nopm(dev->net, mii->phy_id, PHY_INT_MASK); ret = smsc95xx_mdio_read_nopm(dev, PHY_INT_MASK);
if (ret < 0) if (ret < 0)
return ret; return ret;
ret |= mask; ret |= mask;
smsc95xx_mdio_write_nopm(dev->net, mii->phy_id, PHY_INT_MASK, ret); smsc95xx_mdio_write_nopm(dev, PHY_INT_MASK, ret);
return 0; return 0;
} }
static int smsc95xx_link_ok_nopm(struct usbnet *dev) static int smsc95xx_link_ok_nopm(struct usbnet *dev)
{ {
struct mii_if_info *mii = &dev->mii;
int ret; int ret;
/* first, a dummy read, needed to latch some MII phys */ /* first, a dummy read, needed to latch some MII phys */
ret = smsc95xx_mdio_read_nopm(dev->net, mii->phy_id, MII_BMSR); ret = smsc95xx_mdio_read_nopm(dev, MII_BMSR);
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = smsc95xx_mdio_read_nopm(dev->net, mii->phy_id, MII_BMSR); ret = smsc95xx_mdio_read_nopm(dev, MII_BMSR);
if (ret < 0) if (ret < 0)
return ret; return ret;
@ -1402,7 +1400,7 @@ static int smsc95xx_link_ok_nopm(struct usbnet *dev)
static int smsc95xx_enter_suspend0(struct usbnet *dev) static int smsc95xx_enter_suspend0(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
u32 val; u32 val;
int ret; int ret;
@ -1441,8 +1439,7 @@ static int smsc95xx_enter_suspend0(struct usbnet *dev)
static int smsc95xx_enter_suspend1(struct usbnet *dev) static int smsc95xx_enter_suspend1(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
struct mii_if_info *mii = &dev->mii;
u32 val; u32 val;
int ret; int ret;
@ -1450,17 +1447,17 @@ static int smsc95xx_enter_suspend1(struct usbnet *dev)
* compatibility with non-standard link partners * compatibility with non-standard link partners
*/ */
if (pdata->features & FEATURE_PHY_NLP_CROSSOVER) if (pdata->features & FEATURE_PHY_NLP_CROSSOVER)
smsc95xx_mdio_write_nopm(dev->net, mii->phy_id, PHY_EDPD_CONFIG, smsc95xx_mdio_write_nopm(dev, PHY_EDPD_CONFIG,
PHY_EDPD_CONFIG_DEFAULT); PHY_EDPD_CONFIG_DEFAULT);
/* enable energy detect power-down mode */ /* enable energy detect power-down mode */
ret = smsc95xx_mdio_read_nopm(dev->net, mii->phy_id, PHY_MODE_CTRL_STS); ret = smsc95xx_mdio_read_nopm(dev, PHY_MODE_CTRL_STS);
if (ret < 0) if (ret < 0)
return ret; return ret;
ret |= MODE_CTRL_STS_EDPWRDOWN_; ret |= MODE_CTRL_STS_EDPWRDOWN_;
smsc95xx_mdio_write_nopm(dev->net, mii->phy_id, PHY_MODE_CTRL_STS, ret); smsc95xx_mdio_write_nopm(dev, PHY_MODE_CTRL_STS, ret);
/* enter SUSPEND1 mode */ /* enter SUSPEND1 mode */
ret = smsc95xx_read_reg_nopm(dev, PM_CTRL, &val); ret = smsc95xx_read_reg_nopm(dev, PM_CTRL, &val);
@ -1489,7 +1486,7 @@ static int smsc95xx_enter_suspend1(struct usbnet *dev)
static int smsc95xx_enter_suspend2(struct usbnet *dev) static int smsc95xx_enter_suspend2(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
u32 val; u32 val;
int ret; int ret;
@ -1511,7 +1508,7 @@ static int smsc95xx_enter_suspend2(struct usbnet *dev)
static int smsc95xx_enter_suspend3(struct usbnet *dev) static int smsc95xx_enter_suspend3(struct usbnet *dev)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
u32 val; u32 val;
int ret; int ret;
@ -1550,7 +1547,7 @@ static int smsc95xx_enter_suspend3(struct usbnet *dev)
static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up) static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
int ret; int ret;
if (!netif_running(dev->net)) { if (!netif_running(dev->net)) {
@ -1598,7 +1595,7 @@ static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up)
static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message) static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message)
{ {
struct usbnet *dev = usb_get_intfdata(intf); struct usbnet *dev = usb_get_intfdata(intf);
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
u32 val, link_up; u32 val, link_up;
int ret; int ret;
@ -1869,7 +1866,7 @@ static int smsc95xx_resume(struct usb_interface *intf)
u32 val; u32 val;
BUG_ON(!dev); BUG_ON(!dev);
pdata = (struct smsc95xx_priv *)(dev->data[0]); pdata = dev->driver_priv;
suspend_flags = pdata->suspend_flags; suspend_flags = pdata->suspend_flags;
netdev_dbg(dev->net, "resume suspend_flags=0x%02x\n", suspend_flags); netdev_dbg(dev->net, "resume suspend_flags=0x%02x\n", suspend_flags);
@ -1924,9 +1921,11 @@ static int smsc95xx_reset_resume(struct usb_interface *intf)
static void smsc95xx_rx_csum_offload(struct sk_buff *skb) static void smsc95xx_rx_csum_offload(struct sk_buff *skb)
{ {
skb->csum = *(u16 *)(skb_tail_pointer(skb) - 2); u16 *csum_ptr = (u16 *)(skb_tail_pointer(skb) - 2);
skb->csum = (__force __wsum)get_unaligned(csum_ptr);
skb->ip_summed = CHECKSUM_COMPLETE; skb->ip_summed = CHECKSUM_COMPLETE;
skb_trim(skb, skb->len - 2); skb_trim(skb, skb->len - 2); /* remove csum */
} }
static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
@ -1985,25 +1984,22 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
if (dev->net->features & NETIF_F_RXCSUM) if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(skb); smsc95xx_rx_csum_offload(skb);
skb_trim(skb, skb->len - 4); /* remove fcs */ skb_trim(skb, skb->len - 4); /* remove fcs */
skb->truesize = size + sizeof(struct sk_buff);
return 1; return 1;
} }
ax_skb = skb_clone(skb, GFP_ATOMIC); ax_skb = netdev_alloc_skb_ip_align(dev->net, size);
if (unlikely(!ax_skb)) { if (unlikely(!ax_skb)) {
netdev_warn(dev->net, "Error allocating skb\n"); netdev_warn(dev->net, "Error allocating skb\n");
return 0; return 0;
} }
ax_skb->len = size; skb_put(ax_skb, size);
ax_skb->data = packet; memcpy(ax_skb->data, packet, size);
skb_set_tail_pointer(ax_skb, size);
if (dev->net->features & NETIF_F_RXCSUM) if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(ax_skb); smsc95xx_rx_csum_offload(ax_skb);
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
ax_skb->truesize = size + sizeof(struct sk_buff);
usbnet_skb_return(dev, ax_skb); usbnet_skb_return(dev, ax_skb);
} }
@ -2081,7 +2077,7 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet *dev,
static int smsc95xx_manage_power(struct usbnet *dev, int on) static int smsc95xx_manage_power(struct usbnet *dev, int on)
{ {
struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); struct smsc95xx_priv *pdata = dev->driver_priv;
dev->intf->needs_remote_wakeup = on; dev->intf->needs_remote_wakeup = on;

View File

@ -418,19 +418,15 @@ static int sr9700_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
skb_pull(skb, 3); skb_pull(skb, 3);
skb->len = len; skb->len = len;
skb_set_tail_pointer(skb, len); skb_set_tail_pointer(skb, len);
skb->truesize = len + sizeof(struct sk_buff);
return 2; return 2;
} }
/* skb_clone is used for address align */ sr_skb = netdev_alloc_skb_ip_align(dev->net, len);
sr_skb = skb_clone(skb, GFP_ATOMIC);
if (!sr_skb) if (!sr_skb)
return 0; return 0;
sr_skb->len = len; skb_put(sr_skb, len);
sr_skb->data = skb->data + 3; memcpy(sr_skb->data, skb->data + 3, len);
skb_set_tail_pointer(sr_skb, len);
sr_skb->truesize = len + sizeof(struct sk_buff);
usbnet_skb_return(dev, sr_skb); usbnet_skb_return(dev, sr_skb);
skb_pull(skb, len + SR_RX_OVERHEAD); skb_pull(skb, len + SR_RX_OVERHEAD);

View File

@ -1322,10 +1322,6 @@ static bool vxlan_set_mac(struct vxlan_dev *vxlan,
if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr)) if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr))
return false; return false;
/* Ignore packets from invalid src-address */
if (!is_valid_ether_addr(eth_hdr(skb)->h_source))
return false;
/* Get address from the outer IP header */ /* Get address from the outer IP header */
if (vxlan_get_sk_family(vs) == AF_INET) { if (vxlan_get_sk_family(vs) == AF_INET) {
saddr.sin.sin_addr.s_addr = ip_hdr(skb)->saddr; saddr.sin.sin_addr.s_addr = ip_hdr(skb)->saddr;

View File

@ -1590,6 +1590,20 @@ static int ar5523_probe(struct usb_interface *intf,
struct ar5523 *ar; struct ar5523 *ar;
int error = -ENOMEM; int error = -ENOMEM;
static const u8 bulk_ep_addr[] = {
AR5523_CMD_TX_PIPE | USB_DIR_OUT,
AR5523_DATA_TX_PIPE | USB_DIR_OUT,
AR5523_CMD_RX_PIPE | USB_DIR_IN,
AR5523_DATA_RX_PIPE | USB_DIR_IN,
0};
if (!usb_check_bulk_endpoints(intf, bulk_ep_addr)) {
dev_err(&dev->dev,
"Could not find all expected endpoints\n");
error = -ENODEV;
goto out;
}
/* /*
* Load firmware if the device requires it. This will return * Load firmware if the device requires it. This will return
* -ENXIO on success and we'll get called back afer the usb * -ENXIO on success and we'll get called back afer the usb

View File

@ -331,7 +331,7 @@ ath10k_dbg_sta_write_peer_debug_trigger(struct file *file,
} }
out: out:
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
return count; return ret ?: count;
} }
static const struct file_operations fops_peer_debug_trigger = { static const struct file_operations fops_peer_debug_trigger = {

View File

@ -1709,12 +1709,32 @@ void ath10k_wmi_put_wmi_channel(struct wmi_channel *ch,
int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) int ath10k_wmi_wait_for_service_ready(struct ath10k *ar)
{ {
unsigned long time_left; unsigned long time_left, i;
time_left = wait_for_completion_timeout(&ar->wmi.service_ready, time_left = wait_for_completion_timeout(&ar->wmi.service_ready,
WMI_SERVICE_READY_TIMEOUT_HZ); WMI_SERVICE_READY_TIMEOUT_HZ);
if (!time_left) if (!time_left) {
return -ETIMEDOUT; /* Sometimes the PCI HIF doesn't receive interrupt
* for the service ready message even if the buffer
* was completed. PCIe sniffer shows that it's
* because the corresponding CE ring doesn't fires
* it. Workaround here by polling CE rings once.
*/
ath10k_warn(ar, "failed to receive service ready completion, polling..\n");
for (i = 0; i < CE_COUNT; i++)
ath10k_hif_send_complete_check(ar, i, 1);
time_left = wait_for_completion_timeout(&ar->wmi.service_ready,
WMI_SERVICE_READY_TIMEOUT_HZ);
if (!time_left) {
ath10k_warn(ar, "polling timed out\n");
return -ETIMEDOUT;
}
ath10k_warn(ar, "service ready completion received, continuing normally\n");
}
return 0; return 0;
} }

View File

@ -1069,6 +1069,38 @@ static int carl9170_usb_probe(struct usb_interface *intf,
ar->usb_ep_cmd_is_bulk = true; ar->usb_ep_cmd_is_bulk = true;
} }
/* Verify that all expected endpoints are present */
if (ar->usb_ep_cmd_is_bulk) {
u8 bulk_ep_addr[] = {
AR9170_USB_EP_RX | USB_DIR_IN,
AR9170_USB_EP_TX | USB_DIR_OUT,
AR9170_USB_EP_CMD | USB_DIR_OUT,
0};
u8 int_ep_addr[] = {
AR9170_USB_EP_IRQ | USB_DIR_IN,
0};
if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
!usb_check_int_endpoints(intf, int_ep_addr))
err = -ENODEV;
} else {
u8 bulk_ep_addr[] = {
AR9170_USB_EP_RX | USB_DIR_IN,
AR9170_USB_EP_TX | USB_DIR_OUT,
0};
u8 int_ep_addr[] = {
AR9170_USB_EP_IRQ | USB_DIR_IN,
AR9170_USB_EP_CMD | USB_DIR_OUT,
0};
if (!usb_check_bulk_endpoints(intf, bulk_ep_addr) ||
!usb_check_int_endpoints(intf, int_ep_addr))
err = -ENODEV;
}
if (err) {
carl9170_free(ar);
return err;
}
usb_set_intfdata(intf, ar); usb_set_intfdata(intf, ar);
SET_IEEE80211_DEV(ar->hw, &intf->dev); SET_IEEE80211_DEV(ar->hw, &intf->dev);

View File

@ -2706,7 +2706,7 @@ __mwl8k_cmd_mac_multicast_adr(struct ieee80211_hw *hw, int allmulti,
cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_MULTICAST); cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_MULTICAST);
cmd->numaddr = cpu_to_le16(mc_count); cmd->numaddr = cpu_to_le16(mc_count);
netdev_hw_addr_list_for_each(ha, mc_list) { netdev_hw_addr_list_for_each(ha, mc_list) {
memcpy(cmd->addr[i], ha->addr, ETH_ALEN); memcpy(cmd->addr[i++], ha->addr, ETH_ALEN);
} }
} }

View File

@ -396,10 +396,18 @@ static ssize_t nvmet_ns_enable_store(struct config_item *item,
if (strtobool(page, &enable)) if (strtobool(page, &enable))
return -EINVAL; return -EINVAL;
/*
* take a global nvmet_config_sem because the disable routine has a
* window where it releases the subsys-lock, giving a chance to
* a parallel enable to concurrently execute causing the disable to
* have a misaccounting of the ns percpu_ref.
*/
down_write(&nvmet_config_sem);
if (enable) if (enable)
ret = nvmet_ns_enable(ns); ret = nvmet_ns_enable(ns);
else else
nvmet_ns_disable(ns); nvmet_ns_disable(ns);
up_write(&nvmet_config_sem);
return ret ? ret : count; return ret ? ret : count;
} }

View File

@ -262,7 +262,7 @@ bfad_debugfs_write_regrd(struct file *file, const char __user *buf,
unsigned long flags; unsigned long flags;
void *kern_buf; void *kern_buf;
kern_buf = memdup_user(buf, nbytes); kern_buf = memdup_user_nul(buf, nbytes);
if (IS_ERR(kern_buf)) if (IS_ERR(kern_buf))
return PTR_ERR(kern_buf); return PTR_ERR(kern_buf);
@ -329,7 +329,7 @@ bfad_debugfs_write_regwr(struct file *file, const char __user *buf,
unsigned long flags; unsigned long flags;
void *kern_buf; void *kern_buf;
kern_buf = memdup_user(buf, nbytes); kern_buf = memdup_user_nul(buf, nbytes);
if (IS_ERR(kern_buf)) if (IS_ERR(kern_buf))
return PTR_ERR(kern_buf); return PTR_ERR(kern_buf);

View File

@ -5627,7 +5627,7 @@ static int hpsa_scsi_host_alloc(struct ctlr_info *h)
{ {
struct Scsi_Host *sh; struct Scsi_Host *sh;
sh = scsi_host_alloc(&hpsa_driver_template, sizeof(struct ctlr_info)); sh = scsi_host_alloc(&hpsa_driver_template, sizeof(struct ctlr_info *));
if (sh == NULL) { if (sh == NULL) {
dev_err(&h->pdev->dev, "scsi_host_alloc failed\n"); dev_err(&h->pdev->dev, "scsi_host_alloc failed\n");
return -ENOMEM; return -ENOMEM;

View File

@ -269,8 +269,7 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id, void *rsp)
/* help some expanders that fail to zero sas_address in the 'no /* help some expanders that fail to zero sas_address in the 'no
* device' case * device' case
*/ */
if (phy->attached_dev_type == SAS_PHY_UNUSED || if (phy->attached_dev_type == SAS_PHY_UNUSED)
phy->linkrate < SAS_LINK_RATE_1_5_GBPS)
memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE); memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE);
else else
memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE); memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE);

View File

@ -190,7 +190,7 @@ qedf_dbg_debug_cmd_write(struct file *filp, const char __user *buffer,
if (!count || *ppos) if (!count || *ppos)
return 0; return 0;
kern_buf = memdup_user(buffer, count); kern_buf = memdup_user_nul(buffer, count);
if (IS_ERR(kern_buf)) if (IS_ERR(kern_buf))
return PTR_ERR(kern_buf); return PTR_ERR(kern_buf);

View File

@ -195,10 +195,10 @@ static inline void ufs_qcom_assert_reset(struct ufs_hba *hba)
1 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1); 1 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
/* /*
* Make sure assertion of ufs phy reset is written to * Dummy read to ensure the write takes effect before doing any sort
* register before returning * of delay
*/ */
mb(); ufshcd_readl(hba, REG_UFS_CFG1);
} }
static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba) static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
@ -207,10 +207,10 @@ static inline void ufs_qcom_deassert_reset(struct ufs_hba *hba)
0 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1); 0 << OFFSET_UFS_PHY_SOFT_RESET, REG_UFS_CFG1);
/* /*
* Make sure de-assertion of ufs phy reset is written to * Dummy read to ensure the write takes effect before doing any sort
* register before returning * of delay
*/ */
mb(); ufshcd_readl(hba, REG_UFS_CFG1);
} }
struct ufs_qcom_bus_vote { struct ufs_qcom_bus_vote {

View File

@ -5158,7 +5158,7 @@ static int ufshcd_uic_pwr_ctrl(struct ufs_hba *hba, struct uic_command *cmd)
* Make sure UIC command completion interrupt is disabled before * Make sure UIC command completion interrupt is disabled before
* issuing UIC command. * issuing UIC command.
*/ */
wmb(); ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
reenable_intr = true; reenable_intr = true;
} }
ret = __ufshcd_send_uic_cmd(hba, cmd, false); ret = __ufshcd_send_uic_cmd(hba, cmd, false);
@ -11334,7 +11334,7 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq)
* Make sure that UFS interrupts are disabled and any pending interrupt * Make sure that UFS interrupts are disabled and any pending interrupt
* status is cleared before registering UFS interrupt handler. * status is cleared before registering UFS interrupt handler.
*/ */
mb(); ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
mutex_init(&hba->pm_qos.lock); mutex_init(&hba->pm_qos.lock);
INIT_WORK(&hba->pm_qos.get_work, ufshcd_pm_qos_get_worker); INIT_WORK(&hba->pm_qos.get_work, ufshcd_pm_qos_get_worker);

View File

@ -861,6 +861,7 @@ static int __spi_map_msg(struct spi_controller *ctlr, struct spi_message *msg)
else else
rx_dev = ctlr->dev.parent; rx_dev = ctlr->dev.parent;
ret = -ENOMSG;
list_for_each_entry(xfer, &msg->transfers, transfer_list) { list_for_each_entry(xfer, &msg->transfers, transfer_list) {
if (!ctlr->can_dma(ctlr, msg->spi, xfer)) if (!ctlr->can_dma(ctlr, msg->spi, xfer))
continue; continue;
@ -884,6 +885,9 @@ static int __spi_map_msg(struct spi_controller *ctlr, struct spi_message *msg)
} }
} }
} }
/* No transfer has been mapped, bail out with success */
if (ret)
return 0;
ctlr->cur_msg_mapped = true; ctlr->cur_msg_mapped = true;

Some files were not shown because too many files have changed in this diff Show More