Merge branch 'linux-4.14.y' of github.com:openela/kernel-lts into android13-4.14-msmnile
* 'linux-4.14.y' of github.com:openela/kernel-lts: LTS: Update to 4.14.355 Revert "parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367" netns: restore ops before calling ops_exit_list cx82310_eth: fix error return code in cx82310_bind() rtmutex: Drop rt_mutex::wait_lock before scheduling locking/rtmutex: Handle non enqueued waiters gracefully in remove_waiter() drm/i915/fence: Mark debug_fence_free() with __maybe_unused ACPI: processor: Fix memory leaks in error paths of processor_add() ACPI: processor: Return an error if acpi_processor_get_info() fails in processor_add() netns: add pre_exit method to struct pernet_operations net: Add comment about pernet_operations methods and synchronization nilfs2: protect references to superblock parameters exposed in sysfs nilfs2: replace snprintf in show functions with sysfs_emit nilfs2: use time64_t internally tracing: Avoid possible softlockup in tracing_iter_reset() ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance() uprobes: Use kzalloc to allocate xol area clocksource/drivers/imx-tpm: Fix next event not taking effect sometime clocksource/drivers/imx-tpm: Fix return -ETIME when delta exceeds INT_MAX VMCI: Fix use-after-free when removing resource in vmci_resource_remove() nvmem: Fix return type of devm_nvmem_device_get() in kerneldoc iio: fix scale application in iio_convert_raw_to_processed_unlocked iio: buffer-dmaengine: fix releasing dma channel on error ata: pata_macio: Use WARN instead of BUG of/irq: Prevent device address out-of-bounds read in interrupt map walk Squashfs: sanity check symbolic link size usbnet: ipheth: race between ipheth_close and error handling Input: uinput - reject requests with unreasonable number of slots btrfs: initialize location to fix -Wmaybe-uninitialized in btrfs_lookup_dentry() PCI: Add missing bridge lock to pci_bus_lock() btrfs: clean up our handling of refs == 0 in snapshot delete btrfs: replace BUG_ON with ASSERT in walk_down_proc() smp: Add missing destroy_work_on_stack() call in smp_call_on_cpu() wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id() hwmon: (w83627ehf) Fix underflows seen when writing limit attributes hwmon: (nct6775-core) Fix underflows seen when writing limit attributes hwmon: (lm95234) Fix underflows seen when writing limit attributes hwmon: (adc128d818) Fix underflows seen when writing limit attributes pci/hotplug/pnv_php: Fix hotplug driver crash on Powernv devres: Initialize an uninitialized struct member um: line: always fill *error_out in setup_one_line() cgroup: Protect css->cgroup write under css_set_lock iommu/vt-d: Handle volatile descriptor status read rfkill: fix spelling mistake contidion to condition usbnet: modern method to get random MAC net: usb: don't write directly to netdev->dev_addr drivers/net/usb: Remove all strcpy() uses cx82310_eth: re-enable ethernet mode after router reboot igb: Fix not clearing TimeSync interrupts for 82580 can: bcm: Remove proc entry when dev is unregistered. pcmcia: Use resource_size function on resource object media: qcom: camss: Add check for v4l2_fwnode_endpoint_parse wifi: brcmsmac: advertise MFP_CAPABLE to enable WPA3 af_unix: Remove put_pid()/put_cred() in copy_peercred(). irqchip/armada-370-xp: Do not allow mapping IRQ 0 and 1 smack: unix sockets: fix accept()ed socket label ALSA: hda: Add input value sanity checks to HDMI channel map controls nilfs2: fix state management in error path of log writing function nilfs2: fix missing cleanup on rollforward recovery error fuse: use unsigned type for getxattr/listxattr size truncation mmc: dw_mmc: Fix IDMAC operation with pages bigger than 4K ALSA: hda/conexant: Add pincfg quirk to enable top speakers on Sirius devices sch/netem: fix use after free in netem_dequeue ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check ALSA: usb-audio: Sanity checks for each pipe and EP types ALSA: usb-audio: add boot quirk for Axe-Fx III udf: Limit file size to 4TB block: initialize integrity buffer to zero before writing it to media media: uvcvideo: Enforce alignment of frame and interval smack: tcp: ipv4, fix incorrect labeling usbip: Don't submit special requests twice apparmor: fix possible NULL pointer dereference drm/amdgpu: fix mc_data out-of-bounds read warning drm/amdgpu: fix ucode out-of-bounds read warning drm/amdgpu: fix overflowed array index read warning drm/amdgpu: Fix uninitialized variable warning in amdgpu_afmt_acr usb: dwc3: st: add missing depopulate in probe error path usb: dwc3: st: Add of_node_put() before return in probe function net: usb: qmi_wwan: add MeiG Smart SRM825L LTS: Update to 4.14.354 drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var ipc: remove memcg accounting for sops objects in do_semtimedop() scsi: aacraid: Fix double-free on probe failure usb: core: sysfs: Unmerge @usb3_hardware_lpm_attr_group in remove_power_attributes() usb: dwc3: st: fix probed platform device ref count on probe error path usb: dwc3: core: Prevent USB core invalid event buffer address access usb: dwc3: omap: add missing depopulate in probe error path USB: serial: option: add MeiG Smart SRM825L cdc-acm: Add DISABLE_ECHO quirk for GE HealthCare UI Controller net: busy-poll: use ktime_get_ns() instead of local_clock() gtp: fix a potential NULL pointer dereference net: prevent mss overflow in skb_segment() ida: Fix crash in ida_free when the bitmap is empty net:rds: Fix possible deadlock in rds_message_put fbmem: Check virtual screen sizes in fb_set_var() fbcon: Prevent that screen size is smaller than font size printk: Export is_console_locked memcg: enable accounting of ipc resources cgroup/cpuset: Prevent UAF in proc_cpuset_show() media: uvcvideo: Fix integer overflow calculating timestamp media: uvcvideo: Use ktime_t for timestamps filelock: Correct the filelock owner in fcntl_setlk/fcntl_setlk64 scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES dm suspend: return -ERESTARTSYS instead of -EINTR wifi: mwifiex: duplicate static structs used in driver instances pinctrl: single: fix potential NULL dereference in pcs_get_function() drm/amdgpu: Using uninitialized value *size when calling amdgpu_vce_cs_reloc Input: MT - limit max slots Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO ALSA: timer: Relax start tick time check for slave timer elements mmc: dw_mmc: allow biu and ciu clocks to defer HID: wacom: Defer calculation of resolution until resolution_code is known Bluetooth: MGMT: Add error handling to pair_device() mmc: mmc_test: Fix NULL dereference on allocation failure net: xilinx: axienet: Always disable promiscuous mode ipv6: prevent UAF in ip6_send_skb() netfilter: nft_counter: Synchronize nft_counter_reset() against reader. kcm: Serialise kcm_sendmsg() for the same socket. Bluetooth: hci_core: Fix LE quote calculation Bluetooth: hci_core: Fix not handling link timeouts propertly Bluetooth: Make use of __check_timeout on hci_sched_le block: use "unsigned long" for blk_validate_block_size(). gtp: pull network headers in gtp_dev_xmit() hrtimer: Prevent queuing of hrtimer without a function callback nvmet-rdma: fix possible bad dereference when freeing rsps ext4: set the type of max_zeroout to unsigned int to avoid overflow irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc usb: dwc3: core: Skip setting event buffers for host only controllers s390/iucv: fix receive buffer virtual vs physical address confusion openrisc: Call setup_memory() earlier in the init sequence NFS: avoid infinite loop in pnfs_update_layout. Bluetooth: bnep: Fix out-of-bound access usb: gadget: fsl: Increase size of name buffer for endpoints f2fs: fix to do sanity check in update_sit_entry btrfs: delete pointless BUG_ON check on quota root in btrfs_qgroup_account_extent() btrfs: send: handle unexpected data in header buffer in begin_cmd() btrfs: handle invalid root reference found in may_destroy_subvol() btrfs: change BUG_ON to assertion when checking for delayed_node root powerpc/boot: Only free if realloc() succeeds powerpc/boot: Handle allocation failure in simple_realloc() parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367 md: clean up invalid BUG_ON in md_ioctl net/sun3_82586: Avoid reading past buffer in debug output scsi: lpfc: Initialize status local variable in lpfc_sli4_repost_sgl_list() fs: binfmt_elf_efpic: don't use missing interpreter's properties media: pci: cx23885: check cx23885_vdev_init() return quota: Remove BUG_ON from dqget() ext4: do not trim the group with corrupted block bitmap powerpc/xics: Check return value of kasprintf in icp_native_map_one_cpu wifi: iwlwifi: abort scan when rfkill on but device enabled gfs2: setattr_chown: Add missing initialization scsi: spi: Fix sshdr use binfmt_misc: cleanup on filesystem umount staging: ks7010: disable bh on tx_dev_lock wifi: cw1200: Avoid processing an invalid TIM IE ssb: Fix division by zero issue in ssb_calc_clock_rate atm: idt77252: prevent use after free in dequeue_rx() btrfs: rename bitmap_set_bits() -> btrfs_bitmap_set_bits() overflow: Implement size_t saturating arithmetic helpers overflow.h: Add flex_array_size() helper s390/cio: rename bitmap_size() -> idset_bitmap_size() memcg_write_event_control(): fix a user-triggerable oops drm/amdgpu: Actually check flags for all context ops. selinux: fix potential counting error in avc_add_xperms_decision() include/linux/bitmap.h: make bitmap_fill() and bitmap_zero() consistent dm persistent data: fix memory allocation failure dm resume: don't return EINVAL when signalled ALSA: usb-audio: Support Yamaha P-125 quirk entry fuse: Initialize beyond-EOF page contents before setting uptodate Conflicts: drivers/mmc/core/mmc_test.c drivers/net/usb/usbnet.c Change-Id: I718c5312df474678aea17713b30a8a669bdae348
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
upstream_repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
|
||||
upstream_base: 4.19.304
|
||||
base: 4.14.336
|
||||
upstream_version: 4.19.320
|
||||
version: 4.14.353
|
||||
upstream_version: 4.19.322
|
||||
version: 4.14.355
|
||||
|
||||
348
.elts/meta/4.14.354.yaml
Normal file
348
.elts/meta/4.14.354.yaml
Normal file
@@ -0,0 +1,348 @@
|
||||
fcb5aec66ce07e8329a51583b152150aa659236a:
|
||||
title: 'fuse: Initialize beyond-EOF page contents before setting uptodate'
|
||||
mainline: 3c0da3d163eb32f1f91891efaade027fa9b245b9
|
||||
upstream: 49934861514d36d0995be8e81bb3312a499d8d9a
|
||||
3d810347c95892c8f2ad7524a9dfac7643a838d2:
|
||||
title: 'ALSA: usb-audio: Support Yamaha P-125 quirk entry'
|
||||
mainline: c286f204ce6ba7b48e3dcba53eda7df8eaa64dd9
|
||||
upstream: 05c60b306979935e5e4f2339a0ceece783893813
|
||||
ceb3e3f9e1dc2aabfbe3ad010e400a085270ea3b:
|
||||
title: 'dm resume: don''t return EINVAL when signalled'
|
||||
mainline: 7a636b4f03af9d541205f69e373672e7b2b60a8a
|
||||
upstream: a809f6d8b10ce6d42e205a49c8855def77e1d452
|
||||
058be20653b9ce45b758e8e9f41c91f4fd51eebc:
|
||||
title: 'dm persistent data: fix memory allocation failure'
|
||||
mainline: faada2174c08662ae98b439c69efe3e79382c538
|
||||
upstream: 90a6b797e95d0f4bef30fbab423759f4e9999506
|
||||
90707a9e8cb97a896468af8280e33c377c001ed2:
|
||||
title: 'include/linux/bitmap.h: make bitmap_fill() and bitmap_zero() consistent'
|
||||
e12d520dc158be6dc4177147186a5ae53ebc2aaa:
|
||||
title: 'selinux: fix potential counting error in avc_add_xperms_decision()'
|
||||
mainline: 379d9af3f3da2da1bbfa67baf1820c72a080d1f1
|
||||
upstream: 5d93f05ed258c92a8925b74bc36101af36c22732
|
||||
854d4d53234aa5ebf5ec8dc947cb5a8e3288bf9d:
|
||||
title: 'drm/amdgpu: Actually check flags for all context ops.'
|
||||
mainline: 0573a1e2ea7e35bff08944a40f1adf2bb35cea61
|
||||
upstream: c5e2c86aef97d4b17ccb52879ab524a36a93566d
|
||||
6f2b82ee5ceb2de5411a2742b352030f08ae183b:
|
||||
title: 'memcg_write_event_control(): fix a user-triggerable oops'
|
||||
mainline: 046667c4d3196938e992fba0dfcde570aa85cd0e
|
||||
upstream: fa5bfdf6cb5846a00e712d630a43e3cf55ccb411
|
||||
0671b47894f55a65eee7907574ae9a4e6a681be8:
|
||||
title: 's390/cio: rename bitmap_size() -> idset_bitmap_size()'
|
||||
mainline: c1023f5634b9bfcbfff0dc200245309e3cde9b54
|
||||
upstream: 537201a9c9d82d3809de8e692465671b98d7cf77
|
||||
ebb9622683941bdd58ebee5b744d9dd27d2cbe92:
|
||||
title: 'overflow.h: Add flex_array_size() helper'
|
||||
mainline: b19d57d0f3cc6f1022edf94daf1d70506a09e3c2
|
||||
upstream: 81bec94f5d864318fa4fccfd06e5449c501885b7
|
||||
c698c6c7ce9f267ce483b4276c10daedfae14295:
|
||||
title: 'overflow: Implement size_t saturating arithmetic helpers'
|
||||
mainline: e1be43d9b5d0d1310dbd90185a8e5c7145dde40f
|
||||
upstream: 1f5cbd78177975aece64bb132948f611af2359c0
|
||||
5e78e68997f6e81f5ea7b7d7adcb0299f6cbe0eb:
|
||||
title: 'btrfs: rename bitmap_set_bits() -> btrfs_bitmap_set_bits()'
|
||||
mainline: 4ca532d64648d4776d15512caed3efea05ca7195
|
||||
upstream: eeca0881c04b07e053cd24b455012b6abd164328
|
||||
9c791f3833511ef47bd93f0069b3f216dc800843:
|
||||
title: 'atm: idt77252: prevent use after free in dequeue_rx()'
|
||||
mainline: a9a18e8f770c9b0703dab93580d0b02e199a4c79
|
||||
upstream: 628ea82190a678a56d2ec38cda3addf3b3a6248d
|
||||
cb51898f8eec5dd8524115da29d9414c6a117f67:
|
||||
title: 'ssb: Fix division by zero issue in ssb_calc_clock_rate'
|
||||
mainline: e0b5127fa134fe0284d58877b6b3133939c8b3ce
|
||||
upstream: b0862789cc11a214d31b6ff9c74bfede90dfb68d
|
||||
f4d17cd8acb0d59a0c6e16c00d411e4047ce4af9:
|
||||
title: 'wifi: cw1200: Avoid processing an invalid TIM IE'
|
||||
mainline: b7bcea9c27b3d87b54075735c870500123582145
|
||||
upstream: 2d109cefa3a51a6d826914f441a40d9efb1143b6
|
||||
f22c4b1e57a22b1e5b6a0754286c8136ed290c14:
|
||||
title: 'staging: ks7010: disable bh on tx_dev_lock'
|
||||
mainline: 058cbee52ccd7be77e373d31a4f14670cfd32018
|
||||
upstream: 936a24249747e0d995fc2d66524b043a3d158705
|
||||
0f4437492406977e2f14c77e67956facd888765d:
|
||||
title: 'binfmt_misc: cleanup on filesystem umount'
|
||||
mainline: 1c5976ef0f7ad76319df748ccb99a4c7ba2ba464
|
||||
upstream: 263bcebf5c2ab1fe949517225157f34015124620
|
||||
5e532c67718aa680857ff1bf76bf470f93dbf92d:
|
||||
title: 'scsi: spi: Fix sshdr use'
|
||||
mainline: 0b149cee836aa53989ea089af1cb9d90d7c6ac9e
|
||||
upstream: 5fe4af45db7988a0df3533d45aba085771654811
|
||||
431cbbd124292f497b4862a88ac60015765adb49:
|
||||
title: 'gfs2: setattr_chown: Add missing initialization'
|
||||
mainline: 2d8d7990619878a848b1d916c2f936d3012ee17d
|
||||
upstream: 686ef69ca191dcba8d325334c65a04a2589383e6
|
||||
e0961317d13c9d29d8901ab4053bf102b9595b6e:
|
||||
title: 'wifi: iwlwifi: abort scan when rfkill on but device enabled'
|
||||
mainline: 3c6a0b1f0add72e7f522bc9145222b86d0a7712a
|
||||
upstream: 6b344eb86f3b47e18d8fc2b0ae3e8e927f098994
|
||||
4297287b1132064e10b140991aa9d465d1926c24:
|
||||
title: 'powerpc/xics: Check return value of kasprintf in icp_native_map_one_cpu'
|
||||
mainline: 45b1ba7e5d1f6881050d558baf9bc74a2ae13930
|
||||
upstream: 479a0cffcca7e3672a7db5f9e23b147fb6cfba39
|
||||
0c2fd9f775685c502a30310255f91b826b979cbf:
|
||||
title: 'ext4: do not trim the group with corrupted block bitmap'
|
||||
mainline: 172202152a125955367393956acf5f4ffd092e0d
|
||||
upstream: cac7c9fcd15e92184c8e621b1f33d97d99505366
|
||||
df321d5b02416398d284e7af74bf4dfce4879e83:
|
||||
title: 'quota: Remove BUG_ON from dqget()'
|
||||
mainline: 249f374eb9b6b969c64212dd860cc1439674c4a8
|
||||
upstream: c08d02053b9e98dffea9b9b378dc90547e4621e8
|
||||
4e2660eb12ff478bc6604d3b6d34d5052a2e5a3e:
|
||||
title: 'media: pci: cx23885: check cx23885_vdev_init() return'
|
||||
mainline: 15126b916e39b0cb67026b0af3c014bfeb1f76b3
|
||||
upstream: 8e31b096e2e1949bc8f0be019c9ae70d414404c6
|
||||
eba1af4c431230bd41b1018f1000f95e02f2ef92:
|
||||
title: 'fs: binfmt_elf_efpic: don''t use missing interpreter''s properties'
|
||||
mainline: 15fd1dc3dadb4268207fa6797e753541aca09a2a
|
||||
upstream: 8ca5b21fa9b2c13aad93a97992b92f9360988fe9
|
||||
7cb20343fea9c616687a8ba6feb41a543f94e57e:
|
||||
title: 'scsi: lpfc: Initialize status local variable in lpfc_sli4_repost_sgl_list()'
|
||||
mainline: 3d0f9342ae200aa1ddc4d6e7a573c6f8f068d994
|
||||
upstream: 50568ec1402e601125845835c326310031c65c81
|
||||
8ab663cd2711e234d222565fc86632a09319263a:
|
||||
title: 'net/sun3_82586: Avoid reading past buffer in debug output'
|
||||
mainline: 4bea747f3fbec33c16d369b2f51e55981d7c78d0
|
||||
upstream: 7783533f788e59691102bae6e2df03f2109624de
|
||||
7ce64ccc2ff813b5cccd19298f889c464cab3f4d:
|
||||
title: 'md: clean up invalid BUG_ON in md_ioctl'
|
||||
mainline: 9dd8702e7cd28ebf076ff838933f29cf671165ec
|
||||
upstream: 5c11581df1f58c43ce8b2e9c14184ab1f75c883f
|
||||
172e698211ff81d1c66161b4591efc8c21c350dc:
|
||||
title: 'parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367'
|
||||
mainline: 73cb4a2d8d7e0259f94046116727084f21e4599f
|
||||
upstream: fea29d479eb470102cd025d9279503a2bfd28c60
|
||||
d8893f4de9af18d7878cef063d94387d122e9901:
|
||||
title: 'powerpc/boot: Handle allocation failure in simple_realloc()'
|
||||
mainline: 69b0194ccec033c208b071e019032c1919c2822d
|
||||
upstream: cd146e31691187ec22b404a2771db199d370d59d
|
||||
8d63c5821851b1b13fe34eb0d41189cc05b498a9:
|
||||
title: 'powerpc/boot: Only free if realloc() succeeds'
|
||||
mainline: f2d5bccaca3e8c09c9b9c8485375f7bdbb2631d2
|
||||
upstream: 1180feef209487d2a95ba8fede71ec6add2e8e52
|
||||
b52a80ebbf8e6be987ee8e40a7a1d7e550cafe3f:
|
||||
title: 'btrfs: change BUG_ON to assertion when checking for delayed_node root'
|
||||
mainline: be73f4448b607e6b7ce41cd8ef2214fdf6e7986f
|
||||
upstream: be9ce497c7cb293f93cf98ef563b6456bac75686
|
||||
4ae1ece59eff262456026a20164702f8ecfa2875:
|
||||
title: 'btrfs: handle invalid root reference found in may_destroy_subvol()'
|
||||
mainline: 6fbc6f4ac1f4907da4fc674251527e7dc79ffbf6
|
||||
upstream: ebce7d482d1a08392362ddf936ffdd9244fb1ece
|
||||
b1410389811d63127bd09bd1f21adba03e686b23:
|
||||
title: 'btrfs: send: handle unexpected data in header buffer in begin_cmd()'
|
||||
mainline: e80e3f732cf53c64b0d811e1581470d67f6c3228
|
||||
upstream: f0b54836bf2ff59b866a6db481f9ad46fa30b642
|
||||
0a7ed5945f5b2fb92877188e2ebc78067937f7cc:
|
||||
title: 'btrfs: delete pointless BUG_ON check on quota root in btrfs_qgroup_account_extent()'
|
||||
mainline: f40a3ea94881f668084f68f6b9931486b1606db0
|
||||
upstream: 5ae1493c5eac1a7a7ced34970a24cb3a5680a63b
|
||||
00705650825973da3c2fceae82def9e4eda121e4:
|
||||
title: 'f2fs: fix to do sanity check in update_sit_entry'
|
||||
mainline: 36959d18c3cf09b3c12157c6950e18652067de77
|
||||
upstream: 3c2c864f19490da6e892290441ba7dcc7bae2576
|
||||
7bc6f5f8bbb72993c108fa3f26283bd9c1406cc0:
|
||||
title: 'usb: gadget: fsl: Increase size of name buffer for endpoints'
|
||||
mainline: 87850f6cc20911e35eafcbc1d56b0d649ae9162d
|
||||
upstream: 29d8f0e05a33200db97d4b38c995c843a70f71e5
|
||||
4eb6b4890ed3c23303144f9a5cd341b7b22a1612:
|
||||
title: 'Bluetooth: bnep: Fix out-of-bound access'
|
||||
mainline: 0f0639b4d6f649338ce29c62da3ec0787fa08cd1
|
||||
upstream: 01ed379cb5ddc0049a348786b971fe53a31e6255
|
||||
cfe972295c3312e0a91aa910d94770ecd44179ac:
|
||||
title: 'NFS: avoid infinite loop in pnfs_update_layout.'
|
||||
mainline: 2fdbc20036acda9e5694db74a032d3c605323005
|
||||
upstream: 4980d45cca2b1135a1ab3dea101425cf44da72cd
|
||||
ca6e68d71ece21decaa46ff8b3694570e712b738:
|
||||
title: 'openrisc: Call setup_memory() earlier in the init sequence'
|
||||
mainline: 7b432bf376c9c198a7ff48f1ed14a14c0ffbe1fe
|
||||
upstream: 3979298b8033989f86d74ab47745e5fbe84a4ebb
|
||||
4832811162db2d2312cb89ee37849338312e6590:
|
||||
title: 's390/iucv: fix receive buffer virtual vs physical address confusion'
|
||||
mainline: 4e8477aeb46dfe74e829c06ea588dd00ba20c8cc
|
||||
upstream: da6cc71ff6c8e6b5076e80550b4e79a3d8f111be
|
||||
a4dc7b3a5f855afff980b9dcb0e2ceb24f7868d2:
|
||||
title: 'usb: dwc3: core: Skip setting event buffers for host only controllers'
|
||||
mainline: 89d7f962994604a3e3d480832788d06179abefc5
|
||||
upstream: 320bb9a5a6b79ba123d1e1f746edb52b41c7c1fb
|
||||
2236d13af575a3658cee60e8db880740509d5b66:
|
||||
title: 'irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc'
|
||||
mainline: 382d2ffe86efb1e2fa803d2cf17e5bfc34e574f3
|
||||
upstream: 139510ec274c7cc8739bb8f63aed70e425c2f0d8
|
||||
90ef0457118eaeab238228f223059b1f93389d73:
|
||||
title: 'ext4: set the type of max_zeroout to unsigned int to avoid overflow'
|
||||
mainline: 261341a932d9244cbcd372a3659428c8723e5a49
|
||||
upstream: 2f64ae32831e5a2bfd0e404c6e63b399eb180a0a
|
||||
2e31c2b032e1c2868c06b57b319907c83004eddc:
|
||||
title: 'nvmet-rdma: fix possible bad dereference when freeing rsps'
|
||||
mainline: 73964c1d07c054376f1b32a62548571795159148
|
||||
upstream: 66fce1c83e2def702dd6a7fb77e986c062b20972
|
||||
b02d82c6edb6abc9c87d281af2b3050e618f2fa1:
|
||||
title: 'hrtimer: Prevent queuing of hrtimer without a function callback'
|
||||
mainline: 5a830bbce3af16833fe0092dec47b6dd30279825
|
||||
upstream: ccef3adcb84816a30b8e535c8c4fcb167904e7b1
|
||||
8e448b4536e8b8cc387052bdb058ca595627bf1f:
|
||||
title: 'gtp: pull network headers in gtp_dev_xmit()'
|
||||
mainline: 3a3be7ff9224f424e485287b54be00d2c6bd9c40
|
||||
upstream: 3d89d0c4a1c6d4d2a755e826351b0a101dbc86f3
|
||||
30a1325eab21676ba9c453de44e70fe598a6b8e0:
|
||||
title: 'block: use "unsigned long" for blk_validate_block_size().'
|
||||
mainline: 37ae5a0f5287a52cf51242e76ccf198d02ffe495
|
||||
upstream: ee12aa483f6c8cecbd5a4c794867fee0e068b822
|
||||
52e5665bbc50c235e1498d2f40d1004c817a7895:
|
||||
title: 'Bluetooth: Make use of __check_timeout on hci_sched_le'
|
||||
mainline: 1b1d29e5149990e44634b2e681de71effd463591
|
||||
upstream: 67cddb2a1b256941952ebf501f8fc4936b704c8b
|
||||
874a31d69b75d57b7e017d7418a5e4ab4e537dc0:
|
||||
title: 'Bluetooth: hci_core: Fix not handling link timeouts propertly'
|
||||
mainline: 116523c8fac05d1d26f748fee7919a4ec5df67ea
|
||||
upstream: edb7dbcf8c1e95dc18ada839526ff86df3258d11
|
||||
ac7a5e553fe290082863eac89a4c79ec941a947c:
|
||||
title: 'Bluetooth: hci_core: Fix LE quote calculation'
|
||||
mainline: 932021a11805b9da4bd6abf66fe233cccd59fe0e
|
||||
upstream: 08829a8ff1303b1a903d1417dc0a06ffc7d17044
|
||||
6bff278ca0373109466e5e16c2b5b7feb2d275cc:
|
||||
title: 'kcm: Serialise kcm_sendmsg() for the same socket.'
|
||||
mainline: 807067bf014d4a3ae2cc55bd3de16f22a01eb580
|
||||
upstream: 8c9cdbf600143bd6835c8b8351e5ac956da79aec
|
||||
7308cdf114aa3e10b931d967f9c6224bea4da005:
|
||||
title: 'netfilter: nft_counter: Synchronize nft_counter_reset() against reader.'
|
||||
mainline: a0b39e2dc7017ac667b70bdeee5293e410fab2fb
|
||||
upstream: 31c28919a99f5c491e3cce4fa7293b12e330e247
|
||||
9011fa8f8e5bc75aa260d56c3c0f6fbfbd4f55d1:
|
||||
title: 'ipv6: prevent UAF in ip6_send_skb()'
|
||||
mainline: faa389b2fbaaec7fd27a390b4896139f9da662e3
|
||||
upstream: 571567e0277008459750f0728f246086b2659429
|
||||
019fc01257a13f075f7bd93a6fa8e02d822dacbd:
|
||||
title: 'net: xilinx: axienet: Always disable promiscuous mode'
|
||||
mainline: 4ae738dfef2c0323752ab81786e2d298c9939321
|
||||
upstream: e15ae5f903e1e54594a55146973d1e615519ae97
|
||||
a2b9cfe9687c3389a4cbc8b8e665baad4ef6087f:
|
||||
title: 'mmc: mmc_test: Fix NULL dereference on allocation failure'
|
||||
mainline: a1e627af32ed60713941cbfc8075d44cad07f6dd
|
||||
upstream: e97be13a9f51284da450dd2a592e3fa87b49cdc9
|
||||
ff165baf4bce33ecf7d628676ff606401ceb317f:
|
||||
title: 'Bluetooth: MGMT: Add error handling to pair_device()'
|
||||
mainline: 538fd3921afac97158d4177139a0ad39f056dbb2
|
||||
upstream: 11b4b0e63f2621b33b2e107407a7d67a65994ca1
|
||||
0ab5b59ccee3b6a0b46021458d60a8a7d3497bcc:
|
||||
title: 'HID: wacom: Defer calculation of resolution until resolution_code is known'
|
||||
mainline: 1b8f9c1fb464968a5b18d3acc1da8c00bad24fad
|
||||
upstream: 10ddadfab0272f37c9c73095c089970e65b38824
|
||||
9d1b2b527ab3dd13c18c3460b50f474ede01cacf:
|
||||
title: 'mmc: dw_mmc: allow biu and ciu clocks to defer'
|
||||
mainline: 6275c7bc8dd07644ea8142a1773d826800f0f3f7
|
||||
upstream: 714ac96c0d6e594b50d89d79e07ae76d22040b73
|
||||
408390db2ed1d018b5f958bec4dc86cf1d27fe77:
|
||||
title: 'ALSA: timer: Relax start tick time check for slave timer elements'
|
||||
mainline: ccbfcac05866ebe6eb3bc6d07b51d4ed4fcde436
|
||||
upstream: bfe0ba951567d9e4a2c60424d12067000ee27158
|
||||
2ec8267b2741c4c576ec568dbfb4802d2880345f:
|
||||
title: 'Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO'
|
||||
mainline: 9c33663af9ad115f90c076a1828129a3fbadea98
|
||||
upstream: aea24ef5e9b2bbc5d5d05e39b10573971b91241c
|
||||
f0ca8ebc5b58f920ed33dd6bd7d7e515744eb362:
|
||||
title: 'Input: MT - limit max slots'
|
||||
mainline: 99d3bf5f7377d42f8be60a6b9cb60fb0be34dceb
|
||||
upstream: 2829c80614890624456337e47320289112785f3e
|
||||
c3429e72b0b782a2bbaafb19d69018b65d0bd26f:
|
||||
title: 'drm/amdgpu: Using uninitialized value *size when calling amdgpu_vce_cs_reloc'
|
||||
mainline: 88a9a467c548d0b3c7761b4fd54a68e70f9c0944
|
||||
upstream: d35cf41c8eb5d9fe95b21ae6ee2910f9ba4878e8
|
||||
88f275a1e9972573add8003dc920818f17e8750a:
|
||||
title: 'pinctrl: single: fix potential NULL dereference in pcs_get_function()'
|
||||
mainline: 1c38a62f15e595346a1106025722869e87ffe044
|
||||
upstream: 0a2bab5ed161318f57134716accba0a30f3af191
|
||||
202eaab237a3cc7da4b688a77234744f62f31ccf:
|
||||
title: 'wifi: mwifiex: duplicate static structs used in driver instances'
|
||||
mainline: 27ec3c57fcadb43c79ed05b2ea31bc18c72d798a
|
||||
upstream: 42a15750b777edcb9be4eeea16ea04c0c4869cdc
|
||||
17fc0471635d9dca0781f8c90dbbd4161950b9fc:
|
||||
title: 'dm suspend: return -ERESTARTSYS instead of -EINTR'
|
||||
mainline: 1e1fd567d32fcf7544c6e09e0e5bc6c650da6e23
|
||||
upstream: ac7f3b1e424f2f38e81d27d7e1ecb30dcd9dd651
|
||||
2df5bdcc5b24b465d66f322073a523ba9ed852f3:
|
||||
title: 'scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES'
|
||||
mainline: 82dbb57ac8d06dfe8227ba9ab11a49de2b475ae5
|
||||
upstream: 868e60c28c2e838a005b41d2f69e923a07080a48
|
||||
3ae8e605510b7e72f71d9537919b3d83f01d5e07:
|
||||
title: 'filelock: Correct the filelock owner in fcntl_setlk/fcntl_setlk64'
|
||||
63dc7ea2f1a4d9560772db5ce062b11574c6a7b0:
|
||||
title: 'media: uvcvideo: Use ktime_t for timestamps'
|
||||
16913ef7e6317548e59036f4ee331d6f2f7f8913:
|
||||
title: 'media: uvcvideo: Fix integer overflow calculating timestamp'
|
||||
mainline: 8676a5e796fa18f55897ca36a94b2adf7f73ebd1
|
||||
upstream: 34666cab862a8154013713aaee0cc5da1241dd75
|
||||
4284ad6ee12894faa3fdfcc584a32aa4ce2a4fbc:
|
||||
title: 'cgroup/cpuset: Prevent UAF in proc_cpuset_show()'
|
||||
mainline: 1be59c97c83ccd67a519d8a49486b3a8a73ca28a
|
||||
upstream: 27d6dbdc6485d68075a0ebf8544d6425c1ed84bb
|
||||
f477af54dbe386b3ab323b5b765910e0e7851180:
|
||||
title: 'memcg: enable accounting of ipc resources'
|
||||
mainline: 18319498fdd4cdf8c1c2c48cd432863b1f915d6f
|
||||
upstream: 9e235ce6facfef2cbde3e2a5f1ccce28d341880f
|
||||
38d216ce7ac318b8dfaef24bb378c51c7a1aa151:
|
||||
title: 'printk: Export is_console_locked'
|
||||
cb4213b43b1c11a9c6a01ab412a48a78f372ec69:
|
||||
title: 'fbcon: Prevent that screen size is smaller than font size'
|
||||
mainline: e64242caef18b4a5840b0e7a9bff37abd4f4f933
|
||||
upstream: 54eaaac622d4547b4abae7e44763b29fa0687132
|
||||
fc15b7d69dd3b6418c8de3a3ff52a2d380d76d92:
|
||||
title: 'fbmem: Check virtual screen sizes in fb_set_var()'
|
||||
mainline: 6c11df58fd1ac0aefcb3b227f72769272b939e56
|
||||
upstream: f453f32f13320137f2317c0ad7ae1c20508effca
|
||||
ae877b9999278eedaf73d6e0e2797d3ed613d802:
|
||||
title: 'net:rds: Fix possible deadlock in rds_message_put'
|
||||
mainline: f1acf1ac84d2ae97b7889b87223c1064df850069
|
||||
upstream: 6a967835748472229da405bdb7780f98084c6ebc
|
||||
2cd2e32fc40226fe651a178ec13c343b18a58ba5:
|
||||
title: 'ida: Fix crash in ida_free when the bitmap is empty'
|
||||
mainline: af73483f4e8b6f5c68c9aa63257bdd929a9c194a
|
||||
upstream: 89db5346acb5a15e670c4fb3b8f3c30fa30ebc15
|
||||
b9b5914ae919e100f936acf89c40564438eea7ca:
|
||||
title: 'net: prevent mss overflow in skb_segment()'
|
||||
mainline: 23d05d563b7e7b0314e65c8e882bc27eac2da8e7
|
||||
upstream: 0d3ffbbf8631d6db0552f46250015648991c856f
|
||||
05748e7d5793a9b4006096221f8c991a7eaf3849:
|
||||
title: 'gtp: fix a potential NULL pointer dereference'
|
||||
mainline: defd8b3c37b0f9cb3e0f60f47d3d78d459d57fda
|
||||
upstream: 620fe9809752fae91b4190e897b81ed9976dfb39
|
||||
843fa098a51e412907dcd804d8e7cc3c28945edd:
|
||||
title: 'net: busy-poll: use ktime_get_ns() instead of local_clock()'
|
||||
mainline: 0870b0d8b393dde53106678a1e2cec9dfa52f9b7
|
||||
upstream: 1b1f0890fb51fc50bf990a800106a133f9036f32
|
||||
0089d92552aa7a94e2edb2441fe9017e20c4f63d:
|
||||
title: 'cdc-acm: Add DISABLE_ECHO quirk for GE HealthCare UI Controller'
|
||||
mainline: 0b00583ecacb0b51712a5ecd34cf7e6684307c67
|
||||
upstream: 43f8d47eaa36c16eb0beafdedbfba51220b4fe69
|
||||
f44a24bcd5833a5b5d32a0bab95bed37a86cbf55:
|
||||
title: 'USB: serial: option: add MeiG Smart SRM825L'
|
||||
mainline: 9a471de516c35219d1722c13367191ce1f120fe9
|
||||
upstream: 50f98b68051d01216bd59df5d0673d7a442d17cd
|
||||
c180e1013eb6b4db7ddf220491a2e325b7fcf06e:
|
||||
title: 'usb: dwc3: omap: add missing depopulate in probe error path'
|
||||
mainline: 2aa765a43817ec8add990f83c8e54a9a5d87aa9c
|
||||
upstream: 9c80a94d388528add073955108a1eeeed4c1c5ea
|
||||
347ecd5288aaff7fcc0828d8e2bbd122cce42a43:
|
||||
title: 'usb: dwc3: core: Prevent USB core invalid event buffer address access'
|
||||
mainline: 14e497183df28c006603cc67fd3797a537eef7b9
|
||||
upstream: eca3f543f817da87c00d1a5697b473efb548204f
|
||||
f86e58bf1c74fcdfcfb78baecf156127409442be:
|
||||
title: 'usb: dwc3: st: fix probed platform device ref count on probe error path'
|
||||
mainline: ddfcfeba891064b88bb844208b43bef2ef970f0c
|
||||
upstream: b0979a885b9d4df2a25b88e9d444ccaa5f9f495c
|
||||
2a00c7c9045d6b359ab6b51e71ab4be6f4dac461:
|
||||
title: 'usb: core: sysfs: Unmerge @usb3_hardware_lpm_attr_group in remove_power_attributes()'
|
||||
mainline: 3a8839bbb86da7968a792123ed2296d063871a52
|
||||
upstream: 0e9d60d0da23b5c344aaad9cb2088684f8548f9f
|
||||
caebf7249fb7bd0cb68e7b6f8a88f033d82ac221:
|
||||
title: 'scsi: aacraid: Fix double-free on probe failure'
|
||||
mainline: 919ddf8336f0b84c0453bac583808c9f165a85c2
|
||||
upstream: d237c7d06ffddcdb5d36948c527dc01284388218
|
||||
30eb6ce857111743822a317414a1f183319a105a:
|
||||
title: 'ipc: remove memcg accounting for sops objects in do_semtimedop()'
|
||||
mainline: 6a4746ba06191e23d30230738e94334b26590a8a
|
||||
upstream: 72793f5cc9e41f9ee33353d4594036817529b766
|
||||
6c3aa8fda82fedf05e697ef8c57d92c3b9d838b8:
|
||||
title: 'drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var'
|
||||
mainline: 1935f0deb6116dd785ea64d8035eab0ff441255b
|
||||
upstream: 0975670c14287183571d01858e8020114a14d76a
|
||||
304
.elts/meta/4.14.355.yaml
Normal file
304
.elts/meta/4.14.355.yaml
Normal file
@@ -0,0 +1,304 @@
|
||||
a1474ea9b7ab89dba81a2449bf4a4173115b06a7:
|
||||
title: 'net: usb: qmi_wwan: add MeiG Smart SRM825L'
|
||||
mainline: 1ca645a2f74a4290527ae27130c8611391b07dbf
|
||||
upstream: 226a6773a78d4fd27c03cfdf1f811dbf278fb3d0
|
||||
107fdbcb323ac570bf914e6f547a8d923b82c087:
|
||||
title: 'usb: dwc3: st: Add of_node_put() before return in probe function'
|
||||
mainline: e36721b90144bb46e1b6477be3ab63439c7fb79b
|
||||
upstream: 82dde26c330f14cee56ea30bb1044f4b514c67b5
|
||||
1dfc1828c8cfae2b2e8023a4a4eab6734214d2f9:
|
||||
title: 'usb: dwc3: st: add missing depopulate in probe error path'
|
||||
mainline: cd4897bfd14f6a5388b21ba45a066541a0425199
|
||||
upstream: a3718c676adb9dbc24dc7b9b293020c9a20f3fdb
|
||||
a1a53372278da6b1ddd71cdbfdae497c4dba7140:
|
||||
title: 'drm/amdgpu: Fix uninitialized variable warning in amdgpu_afmt_acr'
|
||||
mainline: c0d6bd3cd209419cc46ac49562bef1db65d90e70
|
||||
upstream: f00ce6b3344b744af491d1edda9905b188f590a7
|
||||
f8501ae9f302ddb01fd9011ac99b01c2c0f3a8b9:
|
||||
title: 'drm/amdgpu: fix overflowed array index read warning'
|
||||
mainline: ebbc2ada5c636a6a63d8316a3408753768f5aa9f
|
||||
upstream: d1ab22df511cbe4a358421876153f4e1212132e2
|
||||
4012cee5397a8c2a5f2caf45957ab78b2309f300:
|
||||
title: 'drm/amdgpu: fix ucode out-of-bounds read warning'
|
||||
mainline: 8944acd0f9db33e17f387fdc75d33bb473d7936f
|
||||
upstream: 82ac8f1d02886b5d8aeb9e058989d3bd6fc581e2
|
||||
ff8f82a22c6faf27e9feb0c9b241d2fdd8c02584:
|
||||
title: 'drm/amdgpu: fix mc_data out-of-bounds read warning'
|
||||
mainline: 51dfc0a4d609fe700750a62f41447f01b8c9ea50
|
||||
upstream: 5fa4df25ecfc7b6c9006f5b871c46cfe25ea8826
|
||||
2b98e85d650c2c302dd61cf66485f99db7cfd9d9:
|
||||
title: 'apparmor: fix possible NULL pointer dereference'
|
||||
mainline: 3dd384108d53834002be5630132ad5c3f32166ad
|
||||
upstream: 8d9da10a392a32368392f7a16775e1f36e2a5346
|
||||
570892930fbd745b1d6cf987586c4eddbe200732:
|
||||
title: 'usbip: Don''t submit special requests twice'
|
||||
mainline: 8b6b386f9aa936ed0c190446c71cf59d4a507690
|
||||
upstream: ebc88484fc780068bce82e9a593513f7f9ed947c
|
||||
4a9d23f110f9514fc28a67c5614565252b52965d:
|
||||
title: 'smack: tcp: ipv4, fix incorrect labeling'
|
||||
mainline: 2fe209d0ad2e2729f7e22b9b31a86cc3ff0db550
|
||||
upstream: d3f56c653c65f170b172d3c23120bc64ada645d8
|
||||
b0fb4622839090361ca56ed8b7d38780aca24f55:
|
||||
title: 'media: uvcvideo: Enforce alignment of frame and interval'
|
||||
mainline: c8931ef55bd325052ec496f242aea7f6de47dc9c
|
||||
upstream: d1a4c613dd3ef57978fc366b4e3d72cd5083a1f9
|
||||
18c1fde63128e9b0344b428cb18d2fb4b96b1399:
|
||||
title: 'block: initialize integrity buffer to zero before writing it to media'
|
||||
mainline: 899ee2c3829c5ac14bfc7d3c4a5846c0b709b78f
|
||||
upstream: 9f4af4cf08f9a0329ade3d938f55d2220c40d0a6
|
||||
a47099495b459b9993552d22ae3f76829108947b:
|
||||
title: 'udf: Limit file size to 4TB'
|
||||
mainline: c2efd13a2ed4f29bf9ef14ac2fbb7474084655f8
|
||||
upstream: a6211d4d3df3a5f90d8bcd11acd91baf7a3c2b5d
|
||||
a4a8eb20e62affb4b4ca51bcf8ea0861546acf22:
|
||||
title: 'ALSA: usb-audio: add boot quirk for Axe-Fx III'
|
||||
52e9edf6bcb1f0423742ad0ddf4baa5c2ffdf4db:
|
||||
title: 'ALSA: usb-audio: Sanity checks for each pipe and EP types'
|
||||
mainline: 801ebf1043ae7b182588554cc9b9ad3c14bc2ab5
|
||||
upstream: 218f0478064e246c557d0319623eeb56f0827a8e
|
||||
787a4aa45f59ee42152a1775f54050dbc6b13a06:
|
||||
title: 'ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check'
|
||||
mainline: 5d78e1c2b7f4be00bbe62141603a631dc7812f35
|
||||
upstream: 5c4b0a778419d9deab8557265f4b3fd6f0e97e11
|
||||
458dd5f94d634c30594a935563c1e2c8accd0656:
|
||||
title: 'sch/netem: fix use after free in netem_dequeue'
|
||||
mainline: 3b3a2a9c6349e25a025d2330f479bc33a6ccb54a
|
||||
upstream: f0bddb4de043399f16d1969dad5ee5b984a64e7b
|
||||
140cbd4f60beb751e66e7414f08df77f7f0d645b:
|
||||
title: 'ALSA: hda/conexant: Add pincfg quirk to enable top speakers on Sirius devices'
|
||||
mainline: 4178d78cd7a86510ba68d203f26fc01113c7f126
|
||||
upstream: 94e0cace44fe2b888cffc1c6905d1a9bfcf57c7a
|
||||
196ea167c8411ea8dbd90668b9fe48bf953bd474:
|
||||
title: 'mmc: dw_mmc: Fix IDMAC operation with pages bigger than 4K'
|
||||
mainline: 8396c793ffdf28bb8aee7cfe0891080f8cab7890
|
||||
upstream: 32bd402f6760d57127d58a9888553b2db574bba6
|
||||
a5a11287ead5951b4549f86b5d2abcc44a5efd6b:
|
||||
title: 'fuse: use unsigned type for getxattr/listxattr size truncation'
|
||||
mainline: b18915248a15eae7d901262f108d6ff0ffb4ffc1
|
||||
upstream: 13d787bb4f21b6dbc8d8291bf179d36568893c25
|
||||
812eaaab959885afdf5739337e7180e633b26734:
|
||||
title: 'nilfs2: fix missing cleanup on rollforward recovery error'
|
||||
mainline: 5787fcaab9eb5930f5378d6a1dd03d916d146622
|
||||
upstream: 35a9a7a7d94662146396199b0cfd95f9517cdd14
|
||||
faf0987376cc48fb3896f0f3298ebfeda8f1a515:
|
||||
title: 'nilfs2: fix state management in error path of log writing function'
|
||||
mainline: 6576dd6695f2afca3f4954029ac4a64f82ba60ab
|
||||
upstream: 40a2757de2c376ef8a08d9ee9c81e77f3c750adf
|
||||
19ece5b382d38b440e13d24e951cf79ec593ae68:
|
||||
title: 'ALSA: hda: Add input value sanity checks to HDMI channel map controls'
|
||||
mainline: 6278056e42d953e207e2afd416be39d09ed2d496
|
||||
upstream: c6d593c2c931762848389d621e8e657367f62190
|
||||
d92a8bb1955ce159fbbe0c309a1d17ffea5c043a:
|
||||
title: 'smack: unix sockets: fix accept()ed socket label'
|
||||
mainline: e86cac0acdb1a74f608bacefe702f2034133a047
|
||||
upstream: 81e45ff912bbc43526d6f21c7a79cc5a7159a5f5
|
||||
90e83f2f8444a176d359ff9bc4a40590427a3bc4:
|
||||
title: 'irqchip/armada-370-xp: Do not allow mapping IRQ 0 and 1'
|
||||
mainline: 3cef738208e5c3cb7084e208caf9bbf684f24feb
|
||||
upstream: 1d755d4fb238315c3b3e50e6f3117a0d79f72c29
|
||||
3652428ca171b8aed1217a4162dedccd3dde1b5a:
|
||||
title: 'af_unix: Remove put_pid()/put_cred() in copy_peercred().'
|
||||
mainline: e4bd881d987121dbf1a288641491955a53d9f8f7
|
||||
upstream: 406fb2bc6548bbd61489637d1443606feaa7037a
|
||||
26e28ffe556d6cd2f2fd43a8707e6b3d8dca24f3:
|
||||
title: 'wifi: brcmsmac: advertise MFP_CAPABLE to enable WPA3'
|
||||
mainline: dbb5265a5d7cca1cdba7736dba313ab7d07bc19d
|
||||
upstream: c7167cbb59f0525f6726a621b37f2596ee1bbf83
|
||||
e0cb5088960d975715d2731a706914498e7cb018:
|
||||
title: 'media: qcom: camss: Add check for v4l2_fwnode_endpoint_parse'
|
||||
mainline: 4caf6d93d9f2c11d6441c64e1c549c445fa322ed
|
||||
upstream: 75f8136cd4e74fca5d115c35954ed598fc771a8f
|
||||
b9fb4137c73f884e41edb16dfbec9ec490efb4d6:
|
||||
title: 'pcmcia: Use resource_size function on resource object'
|
||||
mainline: 24a025497e7e883bd2adef5d0ece1e9b9268009f
|
||||
upstream: d51b471ec7bd3dd9649dea1d77635512e61eaad5
|
||||
f9ab8f03569d4406fc0adf3c667bc0c450280181:
|
||||
title: 'can: bcm: Remove proc entry when dev is unregistered.'
|
||||
mainline: 76fe372ccb81b0c89b6cd2fec26e2f38c958be85
|
||||
upstream: 5c680022c4e28ba18ea500f3e29f0428271afa92
|
||||
7e95e0c1c4750d584a8dacaefa62f506af3e510d:
|
||||
title: 'igb: Fix not clearing TimeSync interrupts for 82580'
|
||||
mainline: ba8cf80724dbc09825b52498e4efacb563935408
|
||||
upstream: 79c460784fc55ccf272fbe89290ff84d3e17341c
|
||||
3f63ef4d3a6164cf90d31f26cb37976cbc32b5a9:
|
||||
title: 'cx82310_eth: re-enable ethernet mode after router reboot'
|
||||
mainline: ca139d76b0d9e59d18f2d2ec8f0d81b82acd6808
|
||||
upstream: 5adf7fbdfa3e9e425b04771e1d64c4e184ad8fdb
|
||||
ef1cdbe7efb9d4f237238f3a58b115ccae662a8f:
|
||||
title: 'drivers/net/usb: Remove all strcpy() uses'
|
||||
mainline: 493c3ca6bd754d8587604496eb814f72e933075d
|
||||
upstream: 3f255eda1818c6f2b4fb446c488339c66173dc6d
|
||||
70135ce17759946d0f4ccdbed51c21caccf22445:
|
||||
title: 'net: usb: don''t write directly to netdev->dev_addr'
|
||||
mainline: 2674e7ea22ba0e22a2d1603bd51e0b8f6442a267
|
||||
upstream: 40373e2bdf967ba982309ff06e3b8c7c79c4de0e
|
||||
5fb805c245cf8daf1568247ba755e3164c361d96:
|
||||
title: 'usbnet: modern method to get random MAC'
|
||||
mainline: bab8eb0dd4cb995caa4a0529d5655531c2ec5e8e
|
||||
upstream: c9c76962b49ff37ed8dcf880eabeb74df3e0686e
|
||||
1c1073bf747c47629304662bd4e4acc3c347d499:
|
||||
title: 'rfkill: fix spelling mistake contidion to condition'
|
||||
mainline: f404c3ecc401b3617c454c06a3d36a43a01f1aaf
|
||||
upstream: 2579dc71bfa05f908c13decb27989c18be775e2d
|
||||
b3774dcec0995f6d31fa86bbfaeb74a5c6cda069:
|
||||
title: 'iommu/vt-d: Handle volatile descriptor status read'
|
||||
mainline: b5e86a95541cea737394a1da967df4cd4d8f7182
|
||||
upstream: 75a34515eb1be431819ec00cd09fe3a3eb369cdb
|
||||
9d86ad71865dd3a67f27923da2d87891801d26f2:
|
||||
title: 'cgroup: Protect css->cgroup write under css_set_lock'
|
||||
mainline: 57b56d16800e8961278ecff0dc755d46c4575092
|
||||
upstream: 6760357063f593a17613e015aed2051cfd4197c6
|
||||
def0afb4a7e7e30bc08b1b4699dfe6802b2cbde1:
|
||||
title: 'um: line: always fill *error_out in setup_one_line()'
|
||||
mainline: 824ac4a5edd3f7494ab1996826c4f47f8ef0f63d
|
||||
upstream: 3bedb7ce080690d0d6172db790790c1219bcbdd5
|
||||
463af1bdfe4037d2d5c274ae3df6a1bda26cd3aa:
|
||||
title: 'devres: Initialize an uninitialized struct member'
|
||||
mainline: 56a20ad349b5c51909cf8810f7c79b288864ad33
|
||||
upstream: c57834f37dc73410ed2eb11e1cc3fecad169b065
|
||||
33259e025b9efd8c18acbeaf5db24ff06db58459:
|
||||
title: 'pci/hotplug/pnv_php: Fix hotplug driver crash on Powernv'
|
||||
mainline: 335e35b748527f0c06ded9eebb65387f60647fda
|
||||
upstream: 4eb4085c1346d19d4a05c55246eb93e74e671048
|
||||
c0cc4bee13a524d7aceb27690ac6be7ed8e61b70:
|
||||
title: 'hwmon: (adc128d818) Fix underflows seen when writing limit attributes'
|
||||
mainline: 8cad724c8537fe3e0da8004646abc00290adae40
|
||||
upstream: 05419d0056dcf7088687e561bb583cc06deba777
|
||||
d93e9ac35391aef72db4a0aa274d27944dd0d673:
|
||||
title: 'hwmon: (lm95234) Fix underflows seen when writing limit attributes'
|
||||
mainline: af64e3e1537896337405f880c1e9ac1f8c0c6198
|
||||
upstream: 93f0f5721d0cca45dac50af1ae6f9a9826c699fd
|
||||
676ca195a7e32432c84de0516609c98560dcf66f:
|
||||
title: 'hwmon: (nct6775-core) Fix underflows seen when writing limit attributes'
|
||||
mainline: 0403e10bf0824bf0ec2bb135d4cf1c0cc3bf4bf0
|
||||
upstream: 298a55f11edd811f2189b74eb8f53dee34d4f14c
|
||||
9c01d650e13a9098fd147c080994be18cb0689c9:
|
||||
title: 'hwmon: (w83627ehf) Fix underflows seen when writing limit attributes'
|
||||
mainline: 5c1de37969b7bc0abcb20b86e91e70caebbd4f89
|
||||
upstream: 93cf73a7bfdce683bde3a7bb65f270d3bd24497b
|
||||
6d47528d1743bbefff3fc7928d1e45e3faf03cd8:
|
||||
title: 'wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id()'
|
||||
mainline: c145eea2f75ff7949392aebecf7ef0a81c1f6c14
|
||||
upstream: a12cf97cbefa139ef8d95081f2ea047cbbd74b7a
|
||||
86ed63497a70309bcc68c61bf706e65e305318e9:
|
||||
title: 'smp: Add missing destroy_work_on_stack() call in smp_call_on_cpu()'
|
||||
mainline: 77aeb1b685f9db73d276bad4bb30d48505a6fd23
|
||||
upstream: 2d6a7a1ee3862d129c0e0fbd3cc147e185a379dc
|
||||
8f9488fe41599c4aed2820b66097ab09f2bcfec8:
|
||||
title: 'btrfs: replace BUG_ON with ASSERT in walk_down_proc()'
|
||||
mainline: 1f9d44c0a12730a24f8bb75c5e1102207413cc9b
|
||||
upstream: 2df0e48615f438cdf93f1469ed9f289f71440d2d
|
||||
b6a6c52de6de81961175e7d2814f6d0193697a4c:
|
||||
title: 'btrfs: clean up our handling of refs == 0 in snapshot delete'
|
||||
mainline: b8ccef048354074a548f108e51d0557d6adfd3a3
|
||||
upstream: c847b28a799733b04574060ab9d00f215970627d
|
||||
dc087747546322a6d53d450c92456fcd0055a257:
|
||||
title: 'PCI: Add missing bridge lock to pci_bus_lock()'
|
||||
mainline: a4e772898f8bf2e7e1cf661a12c60a5612c4afab
|
||||
upstream: 0790b89c7e911003b8c50ae50e3ac7645de1fae9
|
||||
8f68d6f65ec245d7f7641b540ef6ffed262df9cf:
|
||||
title: 'btrfs: initialize location to fix -Wmaybe-uninitialized in btrfs_lookup_dentry()'
|
||||
mainline: b8e947e9f64cac9df85a07672b658df5b2bcff07
|
||||
upstream: d09f1bf3d7f029558704f077097dbcd4dc5db8da
|
||||
f406ab8753404479a45b87c930fed326b4db0f04:
|
||||
title: 'Input: uinput - reject requests with unreasonable number of slots'
|
||||
mainline: 206f533a0a7c683982af473079c4111f4a0f9f5e
|
||||
upstream: 9c6d189f0c1c59ba9a32326ec82a0b367a3cd47b
|
||||
b1981479ebd7e8d67c23753437a4282ef363b0a0:
|
||||
title: 'usbnet: ipheth: race between ipheth_close and error handling'
|
||||
mainline: e5876b088ba03a62124266fa20d00e65533c7269
|
||||
upstream: 487f140d366f9b12edb11b97819c135676090bd2
|
||||
a909f13b25b358d7f4683648b5166214c609668f:
|
||||
title: 'Squashfs: sanity check symbolic link size'
|
||||
mainline: 810ee43d9cd245d138a2733d87a24858a23f577d
|
||||
upstream: f82cb7f24032ed023fc67d26ea9bf322d8431a90
|
||||
8b67befd1d8e89bce21196d288327ef375731328:
|
||||
title: 'of/irq: Prevent device address out-of-bounds read in interrupt map walk'
|
||||
mainline: b739dffa5d570b411d4bdf4bb9b8dfd6b7d72305
|
||||
upstream: d2a79494d8a5262949736fb2c3ac44d20a51b0d8
|
||||
265da992cd6d9a6ae82917b3f0bd343f5754b4b9:
|
||||
title: 'ata: pata_macio: Use WARN instead of BUG'
|
||||
mainline: d4bc0a264fb482b019c84fbc7202dd3cab059087
|
||||
upstream: cff08d637389f4bf4a49a08ff0474bd6c2b27b97
|
||||
1753cb7f5cd1bf2bdecd6126d4670ae4c5ea31d5:
|
||||
title: 'iio: buffer-dmaengine: fix releasing dma channel on error'
|
||||
mainline: 84c65d8008764a8fb4e627ff02de01ec4245f2c4
|
||||
upstream: 0edd1eac01afe0c2104bddd7d1cae985b0a4552c
|
||||
0c91f6e9cee80725ead1a4db722a1b7a0b575162:
|
||||
title: 'iio: fix scale application in iio_convert_raw_to_processed_unlocked'
|
||||
mainline: 8a3dcc970dc57b358c8db2702447bf0af4e0d83a
|
||||
upstream: a1cad4f0340c50037bd3211bd43deff662d5287e
|
||||
1c8fea7bc7b888039874f237abf53f28264f3d42:
|
||||
title: 'nvmem: Fix return type of devm_nvmem_device_get() in kerneldoc'
|
||||
mainline: c69f37f6559a8948d70badd2b179db7714dedd62
|
||||
upstream: 5e0a746e798cd962e478b54f50f6f39384f735bc
|
||||
12663f3dcfaa591275c2b086a840edc9e86dc736:
|
||||
title: 'VMCI: Fix use-after-free when removing resource in vmci_resource_remove()'
|
||||
mainline: 48b9a8dabcc3cf5f961b2ebcd8933bf9204babb7
|
||||
upstream: f6365931bf7c07b2b397dbb06a4f6573cc9fae73
|
||||
3ed0ce0836c07ea1c3e635370ce04f5ab065ee90:
|
||||
title: 'clocksource/drivers/imx-tpm: Fix return -ETIME when delta exceeds INT_MAX'
|
||||
mainline: 5b8843fcd49827813da80c0f590a17ae4ce93c5d
|
||||
upstream: eeec87f317abb8b1ebb04b5d6823e941649d8293
|
||||
79b3fd21dd528f14d3d7f4f380db5a742f5903d4:
|
||||
title: 'clocksource/drivers/imx-tpm: Fix next event not taking effect sometime'
|
||||
mainline: 3d5c2f8e75a55cfb11a85086c71996af0354a1fb
|
||||
upstream: 143674856ebffeb785759892b1a11a7f5ecbd1f5
|
||||
967a7ce0d7d61c1256391a197e81ba2a400ecf07:
|
||||
title: 'uprobes: Use kzalloc to allocate xol area'
|
||||
mainline: e240b0fde52f33670d1336697c22d90a4fe33c84
|
||||
upstream: 32bb3588ccf08406931c7f061f0ef7a37cd38414
|
||||
ae2112e6a08779c541bc4b9b88ff58914f4ecf32:
|
||||
title: 'ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()'
|
||||
mainline: bc1a72afdc4a91844928831cac85731566e03bc6
|
||||
upstream: ac8ffa21dde0c1edcd9dd98b5555a0aa4eea3b1f
|
||||
fdfd1ef491f5e5445d130169394ae68a45d1adcf:
|
||||
title: 'tracing: Avoid possible softlockup in tracing_iter_reset()'
|
||||
mainline: 49aa8a1f4d6800721c7971ed383078257f12e8f9
|
||||
upstream: 84bd537aaefb210218b5e1d982411fa6ae8429a1
|
||||
3b10ade515f59695e110647a1c4046df1f2ae228:
|
||||
title: 'nilfs2: use time64_t internally'
|
||||
c77787e1b99270f880dae53e1c8e9f7d8ec8f5a1:
|
||||
title: 'nilfs2: replace snprintf in show functions with sysfs_emit'
|
||||
mainline: 3bcd6c5bd483287f4a09d3d59a012d47677b6edc
|
||||
upstream: 51af9b589ab68a94485ee55811d1243c6bf665b4
|
||||
2d65330b265ca1170d35cd861a82b35536f57c4e:
|
||||
title: 'nilfs2: protect references to superblock parameters exposed in sysfs'
|
||||
mainline: 683408258917541bdb294cd717c210a04381931e
|
||||
upstream: b90beafac05931cbfcb6b1bd4f67c1923f47040e
|
||||
9e0063de11fca0d749169844cd3cd8cbe9061466:
|
||||
title: 'net: Add comment about pernet_operations methods and synchronization'
|
||||
9541fb132b07ee39fa0c6d07655684f7d961c171:
|
||||
title: 'netns: add pre_exit method to struct pernet_operations'
|
||||
mainline: d7d99872c144a2c2f5d9c9d83627fa833836cba5
|
||||
upstream: bc596c2026c7f52dc12a784403ccfc3b152844e6
|
||||
9e65e5135c7d8451ee68b36d44f674429df4271a:
|
||||
title: 'ACPI: processor: Return an error if acpi_processor_get_info() fails in processor_add()'
|
||||
mainline: fadf231f0a06a6748a7fc4a2c29ac9ef7bca6bfd
|
||||
upstream: a30476afbaac69face9537cd8d0694d46d5d1ef5
|
||||
89bbd019927a862339cb11beeb98a95c0269b25c:
|
||||
title: 'ACPI: processor: Fix memory leaks in error paths of processor_add()'
|
||||
mainline: 47ec9b417ed9b6b8ec2a941cd84d9de62adc358a
|
||||
upstream: 00259ae5206a713234e3ac12a8a0f731e86b754b
|
||||
c292e581abf5c0dfaf783e3ad2bda3502b5ab4be:
|
||||
title: 'drm/i915/fence: Mark debug_fence_free() with __maybe_unused'
|
||||
mainline: f99999536128b14b5d765a9982763b5134efdd79
|
||||
upstream: 76b1dda1598fc151610d3f372e24be1fcc8b396e
|
||||
5635c800bb018568edf984a2bc3df894c7f1d8b4:
|
||||
title: 'locking/rtmutex: Handle non enqueued waiters gracefully in remove_waiter()'
|
||||
11ae525157eb075f44f3c6460fdd9a5642ada728:
|
||||
title: 'rtmutex: Drop rt_mutex::wait_lock before scheduling'
|
||||
mainline: d33d26036a0274b472299d7dcdaa5fb34329f91b
|
||||
upstream: 432efdbe7da5ecfcbc0c2180cfdbab1441752a38
|
||||
8b8a84237a675ff0a73827b2ba05745765a97f13:
|
||||
title: 'cx82310_eth: fix error return code in cx82310_bind()'
|
||||
mainline: cfbaa8b33e022aca62a3f2815ffbc02874d4cb8b
|
||||
upstream: e70c0b7e280415e1511fb258f4b72733d765b80e
|
||||
61da5c1d99b77bb28d2579a64a05bfbf9447e43d:
|
||||
title: 'netns: restore ops before calling ops_exit_list'
|
||||
mainline: b272a0ad730103e84fb735fd0a8cc050cdf7f77c
|
||||
upstream: 15605b333ddaa3e5e21dfebb65546c70bb167925
|
||||
a66198e30ea76c75761c3f0323b31ba6be641824:
|
||||
title: 'Revert "parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367"'
|
||||
mainline: 73cb4a2d8d7e0259f94046116727084f21e4599f
|
||||
upstream: 324954a057b3ab21a7be5c91e148c15c401332f0
|
||||
394
.elts/upstream/4.19.321.yaml
Normal file
394
.elts/upstream/4.19.321.yaml
Normal file
@@ -0,0 +1,394 @@
|
||||
49934861514d36d0995be8e81bb3312a499d8d9a:
|
||||
title: 'fuse: Initialize beyond-EOF page contents before setting uptodate'
|
||||
mainline: 3c0da3d163eb32f1f91891efaade027fa9b245b9
|
||||
backport: fcb5aec66ce07e8329a51583b152150aa659236a
|
||||
05c60b306979935e5e4f2339a0ceece783893813:
|
||||
title: 'ALSA: usb-audio: Support Yamaha P-125 quirk entry'
|
||||
mainline: c286f204ce6ba7b48e3dcba53eda7df8eaa64dd9
|
||||
backport: 3d810347c95892c8f2ad7524a9dfac7643a838d2
|
||||
ef0a0e616b2789bb804a0ce5e161db03170a85b6:
|
||||
title: 'xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration'
|
||||
mainline: af8e119f52e9c13e556be9e03f27957554a84656
|
||||
skipped: fixes patch not in branch
|
||||
2fbc3c6736cb0a1c2738664bf9381d0c96fb7a06:
|
||||
title: 'arm64: ACPI: NUMA: initialize all values of acpi_early_node_map to NUMA_NO_NODE'
|
||||
mainline: a21dcf0ea8566ebbe011c79d6ed08cdfea771de3
|
||||
skipped: fixes patch not in branch
|
||||
a809f6d8b10ce6d42e205a49c8855def77e1d452:
|
||||
title: 'dm resume: don''t return EINVAL when signalled'
|
||||
mainline: 7a636b4f03af9d541205f69e373672e7b2b60a8a
|
||||
backport: ceb3e3f9e1dc2aabfbe3ad010e400a085270ea3b
|
||||
90a6b797e95d0f4bef30fbab423759f4e9999506:
|
||||
title: 'dm persistent data: fix memory allocation failure'
|
||||
mainline: faada2174c08662ae98b439c69efe3e79382c538
|
||||
backport: 058be20653b9ce45b758e8e9f41c91f4fd51eebc
|
||||
188729977a0cfac6e04a59bf75f85ccd19ad4b4d:
|
||||
title: 'bitmap: introduce generic optimized bitmap_size()'
|
||||
mainline: a37fbe666c016fd89e4460d0ebfcea05baba46dc
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
ee501f827f3db02d4e599afbbc1a7f8b792d05d7:
|
||||
title: fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE
|
||||
mainline: 9a2fa1472083580b6c66bdaf291f591e1170123a
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
5d93f05ed258c92a8925b74bc36101af36c22732:
|
||||
title: 'selinux: fix potential counting error in avc_add_xperms_decision()'
|
||||
mainline: 379d9af3f3da2da1bbfa67baf1820c72a080d1f1
|
||||
backport: e12d520dc158be6dc4177147186a5ae53ebc2aaa
|
||||
c5e2c86aef97d4b17ccb52879ab524a36a93566d:
|
||||
title: 'drm/amdgpu: Actually check flags for all context ops.'
|
||||
mainline: 0573a1e2ea7e35bff08944a40f1adf2bb35cea61
|
||||
backport: 854d4d53234aa5ebf5ec8dc947cb5a8e3288bf9d
|
||||
fa5bfdf6cb5846a00e712d630a43e3cf55ccb411:
|
||||
title: 'memcg_write_event_control(): fix a user-triggerable oops'
|
||||
mainline: 046667c4d3196938e992fba0dfcde570aa85cd0e
|
||||
backport: 6f2b82ee5ceb2de5411a2742b352030f08ae183b
|
||||
537201a9c9d82d3809de8e692465671b98d7cf77:
|
||||
title: 's390/cio: rename bitmap_size() -> idset_bitmap_size()'
|
||||
mainline: c1023f5634b9bfcbfff0dc200245309e3cde9b54
|
||||
backport: 0671b47894f55a65eee7907574ae9a4e6a681be8
|
||||
81bec94f5d864318fa4fccfd06e5449c501885b7:
|
||||
title: 'overflow.h: Add flex_array_size() helper'
|
||||
mainline: b19d57d0f3cc6f1022edf94daf1d70506a09e3c2
|
||||
backport: ebb9622683941bdd58ebee5b744d9dd27d2cbe92
|
||||
1f5cbd78177975aece64bb132948f611af2359c0:
|
||||
title: 'overflow: Implement size_t saturating arithmetic helpers'
|
||||
mainline: e1be43d9b5d0d1310dbd90185a8e5c7145dde40f
|
||||
backport: c698c6c7ce9f267ce483b4276c10daedfae14295
|
||||
eeca0881c04b07e053cd24b455012b6abd164328:
|
||||
title: 'btrfs: rename bitmap_set_bits() -> btrfs_bitmap_set_bits()'
|
||||
mainline: 4ca532d64648d4776d15512caed3efea05ca7195
|
||||
backport: 5e78e68997f6e81f5ea7b7d7adcb0299f6cbe0eb
|
||||
fe8dfead9acd674715c993094280f0b3990ff359:
|
||||
title: 'net/mlx5e: Correctly report errors for ethtool rx flows'
|
||||
mainline: cbc796be1779c4dbc9a482c7233995e2a8b6bfb3
|
||||
skipped: fixes patch not in branch
|
||||
628ea82190a678a56d2ec38cda3addf3b3a6248d:
|
||||
title: 'atm: idt77252: prevent use after free in dequeue_rx()'
|
||||
mainline: a9a18e8f770c9b0703dab93580d0b02e199a4c79
|
||||
backport: 9c791f3833511ef47bd93f0069b3f216dc800843
|
||||
bf845a2bcc6c8e373108b8fa940bfa9aac3ff9dd:
|
||||
title: 'net: dsa: vsc73xx: pass value in phy_write operation'
|
||||
mainline: 5b9eebc2c7a5f0cc7950d918c1e8a4ad4bed5010
|
||||
skipped: fixes patch not in branch
|
||||
b0862789cc11a214d31b6ff9c74bfede90dfb68d:
|
||||
title: 'ssb: Fix division by zero issue in ssb_calc_clock_rate'
|
||||
mainline: e0b5127fa134fe0284d58877b6b3133939c8b3ce
|
||||
backport: cb51898f8eec5dd8524115da29d9414c6a117f67
|
||||
2d109cefa3a51a6d826914f441a40d9efb1143b6:
|
||||
title: 'wifi: cw1200: Avoid processing an invalid TIM IE'
|
||||
mainline: b7bcea9c27b3d87b54075735c870500123582145
|
||||
backport: f4d17cd8acb0d59a0c6e16c00d411e4047ce4af9
|
||||
ce13105a492c91dce263198708b86773569ce370:
|
||||
title: 'i2c: riic: avoid potential division by zero'
|
||||
mainline: 7890fce6201aed46d3576e3d641f9ee5c1f0e16f
|
||||
skipped: fixes non-present commit d982d66514192cdbe74eababa63d0a69be4b0ce1
|
||||
936a24249747e0d995fc2d66524b043a3d158705:
|
||||
title: 'staging: ks7010: disable bh on tx_dev_lock'
|
||||
mainline: 058cbee52ccd7be77e373d31a4f14670cfd32018
|
||||
backport: f22c4b1e57a22b1e5b6a0754286c8136ed290c14
|
||||
263bcebf5c2ab1fe949517225157f34015124620:
|
||||
title: 'binfmt_misc: cleanup on filesystem umount'
|
||||
mainline: 1c5976ef0f7ad76319df748ccb99a4c7ba2ba464
|
||||
backport: 0f4437492406977e2f14c77e67956facd888765d
|
||||
5fe4af45db7988a0df3533d45aba085771654811:
|
||||
title: 'scsi: spi: Fix sshdr use'
|
||||
mainline: 0b149cee836aa53989ea089af1cb9d90d7c6ac9e
|
||||
backport: 5e532c67718aa680857ff1bf76bf470f93dbf92d
|
||||
686ef69ca191dcba8d325334c65a04a2589383e6:
|
||||
title: 'gfs2: setattr_chown: Add missing initialization'
|
||||
mainline: 2d8d7990619878a848b1d916c2f936d3012ee17d
|
||||
backport: 431cbbd124292f497b4862a88ac60015765adb49
|
||||
6b344eb86f3b47e18d8fc2b0ae3e8e927f098994:
|
||||
title: 'wifi: iwlwifi: abort scan when rfkill on but device enabled'
|
||||
mainline: 3c6a0b1f0add72e7f522bc9145222b86d0a7712a
|
||||
backport: e0961317d13c9d29d8901ab4053bf102b9595b6e
|
||||
479a0cffcca7e3672a7db5f9e23b147fb6cfba39:
|
||||
title: 'powerpc/xics: Check return value of kasprintf in icp_native_map_one_cpu'
|
||||
mainline: 45b1ba7e5d1f6881050d558baf9bc74a2ae13930
|
||||
backport: 4297287b1132064e10b140991aa9d465d1926c24
|
||||
cac7c9fcd15e92184c8e621b1f33d97d99505366:
|
||||
title: 'ext4: do not trim the group with corrupted block bitmap'
|
||||
mainline: 172202152a125955367393956acf5f4ffd092e0d
|
||||
backport: 0c2fd9f775685c502a30310255f91b826b979cbf
|
||||
c08d02053b9e98dffea9b9b378dc90547e4621e8:
|
||||
title: 'quota: Remove BUG_ON from dqget()'
|
||||
mainline: 249f374eb9b6b969c64212dd860cc1439674c4a8
|
||||
backport: df321d5b02416398d284e7af74bf4dfce4879e83
|
||||
8e31b096e2e1949bc8f0be019c9ae70d414404c6:
|
||||
title: 'media: pci: cx23885: check cx23885_vdev_init() return'
|
||||
mainline: 15126b916e39b0cb67026b0af3c014bfeb1f76b3
|
||||
backport: 4e2660eb12ff478bc6604d3b6d34d5052a2e5a3e
|
||||
8ca5b21fa9b2c13aad93a97992b92f9360988fe9:
|
||||
title: 'fs: binfmt_elf_efpic: don''t use missing interpreter''s properties'
|
||||
mainline: 15fd1dc3dadb4268207fa6797e753541aca09a2a
|
||||
backport: eba1af4c431230bd41b1018f1000f95e02f2ef92
|
||||
50568ec1402e601125845835c326310031c65c81:
|
||||
title: 'scsi: lpfc: Initialize status local variable in lpfc_sli4_repost_sgl_list()'
|
||||
mainline: 3d0f9342ae200aa1ddc4d6e7a573c6f8f068d994
|
||||
backport: 7cb20343fea9c616687a8ba6feb41a543f94e57e
|
||||
7783533f788e59691102bae6e2df03f2109624de:
|
||||
title: 'net/sun3_82586: Avoid reading past buffer in debug output'
|
||||
mainline: 4bea747f3fbec33c16d369b2f51e55981d7c78d0
|
||||
backport: 8ab663cd2711e234d222565fc86632a09319263a
|
||||
5c11581df1f58c43ce8b2e9c14184ab1f75c883f:
|
||||
title: 'md: clean up invalid BUG_ON in md_ioctl'
|
||||
mainline: 9dd8702e7cd28ebf076ff838933f29cf671165ec
|
||||
backport: 7ce64ccc2ff813b5cccd19298f889c464cab3f4d
|
||||
fea29d479eb470102cd025d9279503a2bfd28c60:
|
||||
title: 'parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367'
|
||||
mainline: 73cb4a2d8d7e0259f94046116727084f21e4599f
|
||||
backport: 172e698211ff81d1c66161b4591efc8c21c350dc
|
||||
cd146e31691187ec22b404a2771db199d370d59d:
|
||||
title: 'powerpc/boot: Handle allocation failure in simple_realloc()'
|
||||
mainline: 69b0194ccec033c208b071e019032c1919c2822d
|
||||
backport: d8893f4de9af18d7878cef063d94387d122e9901
|
||||
1180feef209487d2a95ba8fede71ec6add2e8e52:
|
||||
title: 'powerpc/boot: Only free if realloc() succeeds'
|
||||
mainline: f2d5bccaca3e8c09c9b9c8485375f7bdbb2631d2
|
||||
backport: 8d63c5821851b1b13fe34eb0d41189cc05b498a9
|
||||
be9ce497c7cb293f93cf98ef563b6456bac75686:
|
||||
title: 'btrfs: change BUG_ON to assertion when checking for delayed_node root'
|
||||
mainline: be73f4448b607e6b7ce41cd8ef2214fdf6e7986f
|
||||
backport: b52a80ebbf8e6be987ee8e40a7a1d7e550cafe3f
|
||||
ebce7d482d1a08392362ddf936ffdd9244fb1ece:
|
||||
title: 'btrfs: handle invalid root reference found in may_destroy_subvol()'
|
||||
mainline: 6fbc6f4ac1f4907da4fc674251527e7dc79ffbf6
|
||||
backport: 4ae1ece59eff262456026a20164702f8ecfa2875
|
||||
f0b54836bf2ff59b866a6db481f9ad46fa30b642:
|
||||
title: 'btrfs: send: handle unexpected data in header buffer in begin_cmd()'
|
||||
mainline: e80e3f732cf53c64b0d811e1581470d67f6c3228
|
||||
backport: b1410389811d63127bd09bd1f21adba03e686b23
|
||||
5ae1493c5eac1a7a7ced34970a24cb3a5680a63b:
|
||||
title: 'btrfs: delete pointless BUG_ON check on quota root in btrfs_qgroup_account_extent()'
|
||||
mainline: f40a3ea94881f668084f68f6b9931486b1606db0
|
||||
backport: 0a7ed5945f5b2fb92877188e2ebc78067937f7cc
|
||||
3c2c864f19490da6e892290441ba7dcc7bae2576:
|
||||
title: 'f2fs: fix to do sanity check in update_sit_entry'
|
||||
mainline: 36959d18c3cf09b3c12157c6950e18652067de77
|
||||
backport: 00705650825973da3c2fceae82def9e4eda121e4
|
||||
29d8f0e05a33200db97d4b38c995c843a70f71e5:
|
||||
title: 'usb: gadget: fsl: Increase size of name buffer for endpoints'
|
||||
mainline: 87850f6cc20911e35eafcbc1d56b0d649ae9162d
|
||||
backport: 7bc6f5f8bbb72993c108fa3f26283bd9c1406cc0
|
||||
01ed379cb5ddc0049a348786b971fe53a31e6255:
|
||||
title: 'Bluetooth: bnep: Fix out-of-bound access'
|
||||
mainline: 0f0639b4d6f649338ce29c62da3ec0787fa08cd1
|
||||
backport: 4eb6b4890ed3c23303144f9a5cd341b7b22a1612
|
||||
4980d45cca2b1135a1ab3dea101425cf44da72cd:
|
||||
title: 'NFS: avoid infinite loop in pnfs_update_layout.'
|
||||
mainline: 2fdbc20036acda9e5694db74a032d3c605323005
|
||||
backport: cfe972295c3312e0a91aa910d94770ecd44179ac
|
||||
3979298b8033989f86d74ab47745e5fbe84a4ebb:
|
||||
title: 'openrisc: Call setup_memory() earlier in the init sequence'
|
||||
mainline: 7b432bf376c9c198a7ff48f1ed14a14c0ffbe1fe
|
||||
backport: ca6e68d71ece21decaa46ff8b3694570e712b738
|
||||
da6cc71ff6c8e6b5076e80550b4e79a3d8f111be:
|
||||
title: 's390/iucv: fix receive buffer virtual vs physical address confusion'
|
||||
mainline: 4e8477aeb46dfe74e829c06ea588dd00ba20c8cc
|
||||
backport: 4832811162db2d2312cb89ee37849338312e6590
|
||||
320bb9a5a6b79ba123d1e1f746edb52b41c7c1fb:
|
||||
title: 'usb: dwc3: core: Skip setting event buffers for host only controllers'
|
||||
mainline: 89d7f962994604a3e3d480832788d06179abefc5
|
||||
backport: a4dc7b3a5f855afff980b9dcb0e2ceb24f7868d2
|
||||
139510ec274c7cc8739bb8f63aed70e425c2f0d8:
|
||||
title: 'irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc'
|
||||
mainline: 382d2ffe86efb1e2fa803d2cf17e5bfc34e574f3
|
||||
backport: 2236d13af575a3658cee60e8db880740509d5b66
|
||||
2f64ae32831e5a2bfd0e404c6e63b399eb180a0a:
|
||||
title: 'ext4: set the type of max_zeroout to unsigned int to avoid overflow'
|
||||
mainline: 261341a932d9244cbcd372a3659428c8723e5a49
|
||||
backport: 90ef0457118eaeab238228f223059b1f93389d73
|
||||
66fce1c83e2def702dd6a7fb77e986c062b20972:
|
||||
title: 'nvmet-rdma: fix possible bad dereference when freeing rsps'
|
||||
mainline: 73964c1d07c054376f1b32a62548571795159148
|
||||
backport: 2e31c2b032e1c2868c06b57b319907c83004eddc
|
||||
ccef3adcb84816a30b8e535c8c4fcb167904e7b1:
|
||||
title: 'hrtimer: Prevent queuing of hrtimer without a function callback'
|
||||
mainline: 5a830bbce3af16833fe0092dec47b6dd30279825
|
||||
backport: b02d82c6edb6abc9c87d281af2b3050e618f2fa1
|
||||
3d89d0c4a1c6d4d2a755e826351b0a101dbc86f3:
|
||||
title: 'gtp: pull network headers in gtp_dev_xmit()'
|
||||
mainline: 3a3be7ff9224f424e485287b54be00d2c6bd9c40
|
||||
backport: 8e448b4536e8b8cc387052bdb058ca595627bf1f
|
||||
ee12aa483f6c8cecbd5a4c794867fee0e068b822:
|
||||
title: 'block: use "unsigned long" for blk_validate_block_size().'
|
||||
mainline: 37ae5a0f5287a52cf51242e76ccf198d02ffe495
|
||||
backport: 30a1325eab21676ba9c453de44e70fe598a6b8e0
|
||||
67cddb2a1b256941952ebf501f8fc4936b704c8b:
|
||||
title: 'Bluetooth: Make use of __check_timeout on hci_sched_le'
|
||||
mainline: 1b1d29e5149990e44634b2e681de71effd463591
|
||||
backport: 52e5665bbc50c235e1498d2f40d1004c817a7895
|
||||
edb7dbcf8c1e95dc18ada839526ff86df3258d11:
|
||||
title: 'Bluetooth: hci_core: Fix not handling link timeouts propertly'
|
||||
mainline: 116523c8fac05d1d26f748fee7919a4ec5df67ea
|
||||
backport: 874a31d69b75d57b7e017d7418a5e4ab4e537dc0
|
||||
08829a8ff1303b1a903d1417dc0a06ffc7d17044:
|
||||
title: 'Bluetooth: hci_core: Fix LE quote calculation'
|
||||
mainline: 932021a11805b9da4bd6abf66fe233cccd59fe0e
|
||||
backport: ac7a5e553fe290082863eac89a4c79ec941a947c
|
||||
8c9cdbf600143bd6835c8b8351e5ac956da79aec:
|
||||
title: 'kcm: Serialise kcm_sendmsg() for the same socket.'
|
||||
mainline: 807067bf014d4a3ae2cc55bd3de16f22a01eb580
|
||||
backport: 6bff278ca0373109466e5e16c2b5b7feb2d275cc
|
||||
31c28919a99f5c491e3cce4fa7293b12e330e247:
|
||||
title: 'netfilter: nft_counter: Synchronize nft_counter_reset() against reader.'
|
||||
mainline: a0b39e2dc7017ac667b70bdeee5293e410fab2fb
|
||||
backport: 7308cdf114aa3e10b931d967f9c6224bea4da005
|
||||
571567e0277008459750f0728f246086b2659429:
|
||||
title: 'ipv6: prevent UAF in ip6_send_skb()'
|
||||
mainline: faa389b2fbaaec7fd27a390b4896139f9da662e3
|
||||
backport: 9011fa8f8e5bc75aa260d56c3c0f6fbfbd4f55d1
|
||||
e15ae5f903e1e54594a55146973d1e615519ae97:
|
||||
title: 'net: xilinx: axienet: Always disable promiscuous mode'
|
||||
mainline: 4ae738dfef2c0323752ab81786e2d298c9939321
|
||||
backport: 019fc01257a13f075f7bd93a6fa8e02d822dacbd
|
||||
2eb83c10a7a5df6ba6f03bb50a22bf5b1145b050:
|
||||
title: 'drm/msm: use drm_debug_enabled() to check for debug categories'
|
||||
mainline: d8db0b36d888b6a5eb392f112dc156e694de2369
|
||||
skipped: missing comming 25fdd5933e4c0f5fe2ea5cd59994f8ac5fbe90ef
|
||||
a996a9abce790d5bd417fac336117f0436b9f87c:
|
||||
title: 'drm/msm/dpu: don''t play tricks with debug macros'
|
||||
mainline: df24373435f5899a2a98b7d377479c8d4376613b
|
||||
skipped: fixes patch not in branch
|
||||
e97be13a9f51284da450dd2a592e3fa87b49cdc9:
|
||||
title: 'mmc: mmc_test: Fix NULL dereference on allocation failure'
|
||||
mainline: a1e627af32ed60713941cbfc8075d44cad07f6dd
|
||||
backport: a2b9cfe9687c3389a4cbc8b8e665baad4ef6087f
|
||||
11b4b0e63f2621b33b2e107407a7d67a65994ca1:
|
||||
title: 'Bluetooth: MGMT: Add error handling to pair_device()'
|
||||
mainline: 538fd3921afac97158d4177139a0ad39f056dbb2
|
||||
backport: ff165baf4bce33ecf7d628676ff606401ceb317f
|
||||
10ddadfab0272f37c9c73095c089970e65b38824:
|
||||
title: 'HID: wacom: Defer calculation of resolution until resolution_code is known'
|
||||
mainline: 1b8f9c1fb464968a5b18d3acc1da8c00bad24fad
|
||||
backport: 0ab5b59ccee3b6a0b46021458d60a8a7d3497bcc
|
||||
4ffb49d818131d1243b85e19cae23bbc27f4a409:
|
||||
title: 'cxgb4: add forgotten u64 ivlan cast before shift'
|
||||
mainline: 80a1e7b83bb1834b5568a3872e64c05795d88f31
|
||||
skipped: fixes patch not in branch
|
||||
714ac96c0d6e594b50d89d79e07ae76d22040b73:
|
||||
title: 'mmc: dw_mmc: allow biu and ciu clocks to defer'
|
||||
mainline: 6275c7bc8dd07644ea8142a1773d826800f0f3f7
|
||||
backport: 9d1b2b527ab3dd13c18c3460b50f474ede01cacf
|
||||
bfe0ba951567d9e4a2c60424d12067000ee27158:
|
||||
title: 'ALSA: timer: Relax start tick time check for slave timer elements'
|
||||
mainline: ccbfcac05866ebe6eb3bc6d07b51d4ed4fcde436
|
||||
backport: 408390db2ed1d018b5f958bec4dc86cf1d27fe77
|
||||
aea24ef5e9b2bbc5d5d05e39b10573971b91241c:
|
||||
title: 'Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO'
|
||||
mainline: 9c33663af9ad115f90c076a1828129a3fbadea98
|
||||
backport: 2ec8267b2741c4c576ec568dbfb4802d2880345f
|
||||
2829c80614890624456337e47320289112785f3e:
|
||||
title: 'Input: MT - limit max slots'
|
||||
mainline: 99d3bf5f7377d42f8be60a6b9cb60fb0be34dceb
|
||||
backport: f0ca8ebc5b58f920ed33dd6bd7d7e515744eb362
|
||||
bef72d1acb7fadfc7a9d896da5004dfa5beb106c:
|
||||
title: 'tools: move alignment-related macros to new <linux/align.h>'
|
||||
mainline: 10a04ff09bcc39e0044190ffe9f00f998f13647c
|
||||
skipped: (unknown reason)
|
||||
d35cf41c8eb5d9fe95b21ae6ee2910f9ba4878e8:
|
||||
title: 'drm/amdgpu: Using uninitialized value *size when calling amdgpu_vce_cs_reloc'
|
||||
mainline: 88a9a467c548d0b3c7761b4fd54a68e70f9c0944
|
||||
backport: c3429e72b0b782a2bbaafb19d69018b65d0bd26f
|
||||
0a2bab5ed161318f57134716accba0a30f3af191:
|
||||
title: 'pinctrl: single: fix potential NULL dereference in pcs_get_function()'
|
||||
mainline: 1c38a62f15e595346a1106025722869e87ffe044
|
||||
backport: 88f275a1e9972573add8003dc920818f17e8750a
|
||||
42a15750b777edcb9be4eeea16ea04c0c4869cdc:
|
||||
title: 'wifi: mwifiex: duplicate static structs used in driver instances'
|
||||
mainline: 27ec3c57fcadb43c79ed05b2ea31bc18c72d798a
|
||||
backport: 202eaab237a3cc7da4b688a77234744f62f31ccf
|
||||
ac7f3b1e424f2f38e81d27d7e1ecb30dcd9dd651:
|
||||
title: 'dm suspend: return -ERESTARTSYS instead of -EINTR'
|
||||
mainline: 1e1fd567d32fcf7544c6e09e0e5bc6c650da6e23
|
||||
backport: 17fc0471635d9dca0781f8c90dbbd4161950b9fc
|
||||
868e60c28c2e838a005b41d2f69e923a07080a48:
|
||||
title: 'scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES'
|
||||
mainline: 82dbb57ac8d06dfe8227ba9ab11a49de2b475ae5
|
||||
backport: 2df5bdcc5b24b465d66f322073a523ba9ed852f3
|
||||
a1177ea83da87a87cc352aa41f24d61c08c80b5d:
|
||||
title: 'filelock: Correct the filelock owner in fcntl_setlk/fcntl_setlk64'
|
||||
34666cab862a8154013713aaee0cc5da1241dd75:
|
||||
title: 'media: uvcvideo: Fix integer overflow calculating timestamp'
|
||||
mainline: 8676a5e796fa18f55897ca36a94b2adf7f73ebd1
|
||||
backport: 16913ef7e6317548e59036f4ee331d6f2f7f8913
|
||||
d9c4df80b1b009de1eb77c07e3bb4d45bd212aa5:
|
||||
title: 'ata: libata-core: Fix null pointer dereference on error'
|
||||
mainline: 5d92c7c566dc76d96e0e19e481d926bbe6631c1e
|
||||
skipped: fixes commit 2623c7a5f2799569d8bb05eb211da524a8144cb3 not in 4.14
|
||||
27d6dbdc6485d68075a0ebf8544d6425c1ed84bb:
|
||||
title: 'cgroup/cpuset: Prevent UAF in proc_cpuset_show()'
|
||||
mainline: 1be59c97c83ccd67a519d8a49486b3a8a73ca28a
|
||||
backport: 4284ad6ee12894faa3fdfcc584a32aa4ce2a4fbc
|
||||
9e235ce6facfef2cbde3e2a5f1ccce28d341880f:
|
||||
title: 'memcg: enable accounting of ipc resources'
|
||||
mainline: 18319498fdd4cdf8c1c2c48cd432863b1f915d6f
|
||||
backport: f477af54dbe386b3ab323b5b765910e0e7851180
|
||||
54eaaac622d4547b4abae7e44763b29fa0687132:
|
||||
title: 'fbcon: Prevent that screen size is smaller than font size'
|
||||
mainline: e64242caef18b4a5840b0e7a9bff37abd4f4f933
|
||||
backport: cb4213b43b1c11a9c6a01ab412a48a78f372ec69
|
||||
f453f32f13320137f2317c0ad7ae1c20508effca:
|
||||
title: 'fbmem: Check virtual screen sizes in fb_set_var()'
|
||||
mainline: 6c11df58fd1ac0aefcb3b227f72769272b939e56
|
||||
backport: fc15b7d69dd3b6418c8de3a3ff52a2d380d76d92
|
||||
6a967835748472229da405bdb7780f98084c6ebc:
|
||||
title: 'net:rds: Fix possible deadlock in rds_message_put'
|
||||
mainline: f1acf1ac84d2ae97b7889b87223c1064df850069
|
||||
backport: ae877b9999278eedaf73d6e0e2797d3ed613d802
|
||||
89db5346acb5a15e670c4fb3b8f3c30fa30ebc15:
|
||||
title: 'ida: Fix crash in ida_free when the bitmap is empty'
|
||||
mainline: af73483f4e8b6f5c68c9aa63257bdd929a9c194a
|
||||
backport: 2cd2e32fc40226fe651a178ec13c343b18a58ba5
|
||||
0d3ffbbf8631d6db0552f46250015648991c856f:
|
||||
title: 'net: prevent mss overflow in skb_segment()'
|
||||
mainline: 23d05d563b7e7b0314e65c8e882bc27eac2da8e7
|
||||
backport: b9b5914ae919e100f936acf89c40564438eea7ca
|
||||
2d63d5363dea478efd3ea37274332e399f4e5447:
|
||||
title: 'soundwire: stream: fix programming slave ports for non-continous port maps'
|
||||
mainline: ab8d66d132bc8f1992d3eb6cab8d32dda6733c84
|
||||
skipped: fixes patch not in branch
|
||||
620fe9809752fae91b4190e897b81ed9976dfb39:
|
||||
title: 'gtp: fix a potential NULL pointer dereference'
|
||||
mainline: defd8b3c37b0f9cb3e0f60f47d3d78d459d57fda
|
||||
backport: 05748e7d5793a9b4006096221f8c991a7eaf3849
|
||||
1b1f0890fb51fc50bf990a800106a133f9036f32:
|
||||
title: 'net: busy-poll: use ktime_get_ns() instead of local_clock()'
|
||||
mainline: 0870b0d8b393dde53106678a1e2cec9dfa52f9b7
|
||||
backport: 843fa098a51e412907dcd804d8e7cc3c28945edd
|
||||
43f8d47eaa36c16eb0beafdedbfba51220b4fe69:
|
||||
title: 'cdc-acm: Add DISABLE_ECHO quirk for GE HealthCare UI Controller'
|
||||
mainline: 0b00583ecacb0b51712a5ecd34cf7e6684307c67
|
||||
backport: 0089d92552aa7a94e2edb2441fe9017e20c4f63d
|
||||
50f98b68051d01216bd59df5d0673d7a442d17cd:
|
||||
title: 'USB: serial: option: add MeiG Smart SRM825L'
|
||||
mainline: 9a471de516c35219d1722c13367191ce1f120fe9
|
||||
backport: f44a24bcd5833a5b5d32a0bab95bed37a86cbf55
|
||||
9c80a94d388528add073955108a1eeeed4c1c5ea:
|
||||
title: 'usb: dwc3: omap: add missing depopulate in probe error path'
|
||||
mainline: 2aa765a43817ec8add990f83c8e54a9a5d87aa9c
|
||||
backport: c180e1013eb6b4db7ddf220491a2e325b7fcf06e
|
||||
eca3f543f817da87c00d1a5697b473efb548204f:
|
||||
title: 'usb: dwc3: core: Prevent USB core invalid event buffer address access'
|
||||
mainline: 14e497183df28c006603cc67fd3797a537eef7b9
|
||||
backport: 347ecd5288aaff7fcc0828d8e2bbd122cce42a43
|
||||
b0979a885b9d4df2a25b88e9d444ccaa5f9f495c:
|
||||
title: 'usb: dwc3: st: fix probed platform device ref count on probe error path'
|
||||
mainline: ddfcfeba891064b88bb844208b43bef2ef970f0c
|
||||
backport: f86e58bf1c74fcdfcfb78baecf156127409442be
|
||||
0e9d60d0da23b5c344aaad9cb2088684f8548f9f:
|
||||
title: 'usb: core: sysfs: Unmerge @usb3_hardware_lpm_attr_group in remove_power_attributes()'
|
||||
mainline: 3a8839bbb86da7968a792123ed2296d063871a52
|
||||
backport: 2a00c7c9045d6b359ab6b51e71ab4be6f4dac461
|
||||
d237c7d06ffddcdb5d36948c527dc01284388218:
|
||||
title: 'scsi: aacraid: Fix double-free on probe failure'
|
||||
mainline: 919ddf8336f0b84c0453bac583808c9f165a85c2
|
||||
backport: caebf7249fb7bd0cb68e7b6f8a88f033d82ac221
|
||||
72793f5cc9e41f9ee33353d4594036817529b766:
|
||||
title: 'ipc: remove memcg accounting for sops objects in do_semtimedop()'
|
||||
mainline: 6a4746ba06191e23d30230738e94334b26590a8a
|
||||
backport: 30eb6ce857111743822a317414a1f183319a105a
|
||||
0975670c14287183571d01858e8020114a14d76a:
|
||||
title: 'drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var'
|
||||
mainline: 1935f0deb6116dd785ea64d8035eab0ff441255b
|
||||
backport: 6c3aa8fda82fedf05e697ef8c57d92c3b9d838b8
|
||||
384
.elts/upstream/4.19.322.yaml
Normal file
384
.elts/upstream/4.19.322.yaml
Normal file
@@ -0,0 +1,384 @@
|
||||
226a6773a78d4fd27c03cfdf1f811dbf278fb3d0:
|
||||
title: 'net: usb: qmi_wwan: add MeiG Smart SRM825L'
|
||||
mainline: 1ca645a2f74a4290527ae27130c8611391b07dbf
|
||||
backport: a1474ea9b7ab89dba81a2449bf4a4173115b06a7
|
||||
82dde26c330f14cee56ea30bb1044f4b514c67b5:
|
||||
title: 'usb: dwc3: st: Add of_node_put() before return in probe function'
|
||||
mainline: e36721b90144bb46e1b6477be3ab63439c7fb79b
|
||||
backport: 107fdbcb323ac570bf914e6f547a8d923b82c087
|
||||
a3718c676adb9dbc24dc7b9b293020c9a20f3fdb:
|
||||
title: 'usb: dwc3: st: add missing depopulate in probe error path'
|
||||
mainline: cd4897bfd14f6a5388b21ba45a066541a0425199
|
||||
backport: 1dfc1828c8cfae2b2e8023a4a4eab6734214d2f9
|
||||
f00ce6b3344b744af491d1edda9905b188f590a7:
|
||||
title: 'drm/amdgpu: Fix uninitialized variable warning in amdgpu_afmt_acr'
|
||||
mainline: c0d6bd3cd209419cc46ac49562bef1db65d90e70
|
||||
backport: a1a53372278da6b1ddd71cdbfdae497c4dba7140
|
||||
d1ab22df511cbe4a358421876153f4e1212132e2:
|
||||
title: 'drm/amdgpu: fix overflowed array index read warning'
|
||||
mainline: ebbc2ada5c636a6a63d8316a3408753768f5aa9f
|
||||
backport: f8501ae9f302ddb01fd9011ac99b01c2c0f3a8b9
|
||||
82ac8f1d02886b5d8aeb9e058989d3bd6fc581e2:
|
||||
title: 'drm/amdgpu: fix ucode out-of-bounds read warning'
|
||||
mainline: 8944acd0f9db33e17f387fdc75d33bb473d7936f
|
||||
backport: 4012cee5397a8c2a5f2caf45957ab78b2309f300
|
||||
5fa4df25ecfc7b6c9006f5b871c46cfe25ea8826:
|
||||
title: 'drm/amdgpu: fix mc_data out-of-bounds read warning'
|
||||
mainline: 51dfc0a4d609fe700750a62f41447f01b8c9ea50
|
||||
backport: ff8f82a22c6faf27e9feb0c9b241d2fdd8c02584
|
||||
456eb7de5747bcb505ce326dcaf9938f94735d16:
|
||||
title: 'drm/amdkfd: Reconcile the definition and use of oem_id in struct kfd_topology_device'
|
||||
mainline: 10f624ef239bd136cdcc5bbc626157a57b938a31
|
||||
skipped: missing commit 520b8fb755ccfb07d8d743da5753cff1fcb74b9f
|
||||
8d9da10a392a32368392f7a16775e1f36e2a5346:
|
||||
title: 'apparmor: fix possible NULL pointer dereference'
|
||||
mainline: 3dd384108d53834002be5630132ad5c3f32166ad
|
||||
backport: 2b98e85d650c2c302dd61cf66485f99db7cfd9d9
|
||||
ebc88484fc780068bce82e9a593513f7f9ed947c:
|
||||
title: 'usbip: Don''t submit special requests twice'
|
||||
mainline: 8b6b386f9aa936ed0c190446c71cf59d4a507690
|
||||
backport: 570892930fbd745b1d6cf987586c4eddbe200732
|
||||
d3f56c653c65f170b172d3c23120bc64ada645d8:
|
||||
title: 'smack: tcp: ipv4, fix incorrect labeling'
|
||||
mainline: 2fe209d0ad2e2729f7e22b9b31a86cc3ff0db550
|
||||
backport: 4a9d23f110f9514fc28a67c5614565252b52965d
|
||||
d1a4c613dd3ef57978fc366b4e3d72cd5083a1f9:
|
||||
title: 'media: uvcvideo: Enforce alignment of frame and interval'
|
||||
mainline: c8931ef55bd325052ec496f242aea7f6de47dc9c
|
||||
backport: b0fb4622839090361ca56ed8b7d38780aca24f55
|
||||
9f4af4cf08f9a0329ade3d938f55d2220c40d0a6:
|
||||
title: 'block: initialize integrity buffer to zero before writing it to media'
|
||||
mainline: 899ee2c3829c5ac14bfc7d3c4a5846c0b709b78f
|
||||
backport: 18c1fde63128e9b0344b428cb18d2fb4b96b1399
|
||||
19ac6f29bf64304ef04630c8ab56ecd2059d7aa1:
|
||||
title: 'virtio_net: Fix napi_skb_cache_put warning'
|
||||
mainline: f8321fa75102246d7415a6af441872f6637c93ab
|
||||
skipped: fixes patch not in branch
|
||||
a6211d4d3df3a5f90d8bcd11acd91baf7a3c2b5d:
|
||||
title: 'udf: Limit file size to 4TB'
|
||||
mainline: c2efd13a2ed4f29bf9ef14ac2fbb7474084655f8
|
||||
backport: a47099495b459b9993552d22ae3f76829108947b
|
||||
218f0478064e246c557d0319623eeb56f0827a8e:
|
||||
title: 'ALSA: usb-audio: Sanity checks for each pipe and EP types'
|
||||
mainline: 801ebf1043ae7b182588554cc9b9ad3c14bc2ab5
|
||||
backport: 52e9edf6bcb1f0423742ad0ddf4baa5c2ffdf4db
|
||||
5c4b0a778419d9deab8557265f4b3fd6f0e97e11:
|
||||
title: 'ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check'
|
||||
mainline: 5d78e1c2b7f4be00bbe62141603a631dc7812f35
|
||||
backport: 787a4aa45f59ee42152a1775f54050dbc6b13a06
|
||||
f0bddb4de043399f16d1969dad5ee5b984a64e7b:
|
||||
title: 'sch/netem: fix use after free in netem_dequeue'
|
||||
mainline: 3b3a2a9c6349e25a025d2330f479bc33a6ccb54a
|
||||
backport: 458dd5f94d634c30594a935563c1e2c8accd0656
|
||||
94e0cace44fe2b888cffc1c6905d1a9bfcf57c7a:
|
||||
title: 'ALSA: hda/conexant: Add pincfg quirk to enable top speakers on Sirius devices'
|
||||
mainline: 4178d78cd7a86510ba68d203f26fc01113c7f126
|
||||
backport: 140cbd4f60beb751e66e7414f08df77f7f0d645b
|
||||
f7827b47e9b2c72de0fa7cde388fdd407797be1b:
|
||||
title: 'ata: libata: Fix memory leak for error path in ata_host_alloc()'
|
||||
mainline: 284b75a3d83c7631586d98f6dede1d90f128f0db
|
||||
skipped: fixes patch not in branch
|
||||
32bd402f6760d57127d58a9888553b2db574bba6:
|
||||
title: 'mmc: dw_mmc: Fix IDMAC operation with pages bigger than 4K'
|
||||
mainline: 8396c793ffdf28bb8aee7cfe0891080f8cab7890
|
||||
backport: 196ea167c8411ea8dbd90668b9fe48bf953bd474
|
||||
13d787bb4f21b6dbc8d8291bf179d36568893c25:
|
||||
title: 'fuse: use unsigned type for getxattr/listxattr size truncation'
|
||||
mainline: b18915248a15eae7d901262f108d6ff0ffb4ffc1
|
||||
backport: a5a11287ead5951b4549f86b5d2abcc44a5efd6b
|
||||
30f9f759d7ed96735d5fe70330aab3a65456ba5f:
|
||||
title: 'clk: qcom: clk-alpha-pll: Fix the pll post div mask'
|
||||
mainline: 2c4553e6c485a96b5d86989eb9654bf20e51e6dd
|
||||
skipped: fixes patch not in branch
|
||||
35a9a7a7d94662146396199b0cfd95f9517cdd14:
|
||||
title: 'nilfs2: fix missing cleanup on rollforward recovery error'
|
||||
mainline: 5787fcaab9eb5930f5378d6a1dd03d916d146622
|
||||
backport: 812eaaab959885afdf5739337e7180e633b26734
|
||||
40a2757de2c376ef8a08d9ee9c81e77f3c750adf:
|
||||
title: 'nilfs2: fix state management in error path of log writing function'
|
||||
mainline: 6576dd6695f2afca3f4954029ac4a64f82ba60ab
|
||||
backport: faf0987376cc48fb3896f0f3298ebfeda8f1a515
|
||||
c6d593c2c931762848389d621e8e657367f62190:
|
||||
title: 'ALSA: hda: Add input value sanity checks to HDMI channel map controls'
|
||||
mainline: 6278056e42d953e207e2afd416be39d09ed2d496
|
||||
backport: 19ece5b382d38b440e13d24e951cf79ec593ae68
|
||||
81e45ff912bbc43526d6f21c7a79cc5a7159a5f5:
|
||||
title: 'smack: unix sockets: fix accept()ed socket label'
|
||||
mainline: e86cac0acdb1a74f608bacefe702f2034133a047
|
||||
backport: d92a8bb1955ce159fbbe0c309a1d17ffea5c043a
|
||||
1d755d4fb238315c3b3e50e6f3117a0d79f72c29:
|
||||
title: 'irqchip/armada-370-xp: Do not allow mapping IRQ 0 and 1'
|
||||
mainline: 3cef738208e5c3cb7084e208caf9bbf684f24feb
|
||||
backport: 90e83f2f8444a176d359ff9bc4a40590427a3bc4
|
||||
406fb2bc6548bbd61489637d1443606feaa7037a:
|
||||
title: 'af_unix: Remove put_pid()/put_cred() in copy_peercred().'
|
||||
mainline: e4bd881d987121dbf1a288641491955a53d9f8f7
|
||||
backport: 3652428ca171b8aed1217a4162dedccd3dde1b5a
|
||||
471b1417b35eb52913a48ca97492f06ab918569d:
|
||||
title: 'netfilter: nf_conncount: fix wrong variable type'
|
||||
mainline: 0b88d1654d556264bcd24a9cb6383f0888e30131
|
||||
skipped: missing commit 625c556118f3c2fd28bb8ef6da18c53bd4037be4
|
||||
c0c23130d38e8bc28e9ef581443de9b1fc749966:
|
||||
title: 'udf: Avoid excessive partition lengths'
|
||||
mainline: ebbe26fd54a9621994bc16b14f2ba8f84c089693
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
c7167cbb59f0525f6726a621b37f2596ee1bbf83:
|
||||
title: 'wifi: brcmsmac: advertise MFP_CAPABLE to enable WPA3'
|
||||
mainline: dbb5265a5d7cca1cdba7736dba313ab7d07bc19d
|
||||
backport: 26e28ffe556d6cd2f2fd43a8707e6b3d8dca24f3
|
||||
75f8136cd4e74fca5d115c35954ed598fc771a8f:
|
||||
title: 'media: qcom: camss: Add check for v4l2_fwnode_endpoint_parse'
|
||||
mainline: 4caf6d93d9f2c11d6441c64e1c549c445fa322ed
|
||||
backport: e0cb5088960d975715d2731a706914498e7cb018
|
||||
d51b471ec7bd3dd9649dea1d77635512e61eaad5:
|
||||
title: 'pcmcia: Use resource_size function on resource object'
|
||||
mainline: 24a025497e7e883bd2adef5d0ece1e9b9268009f
|
||||
backport: b9fb4137c73f884e41edb16dfbec9ec490efb4d6
|
||||
5c680022c4e28ba18ea500f3e29f0428271afa92:
|
||||
title: 'can: bcm: Remove proc entry when dev is unregistered.'
|
||||
mainline: 76fe372ccb81b0c89b6cd2fec26e2f38c958be85
|
||||
backport: f9ab8f03569d4406fc0adf3c667bc0c450280181
|
||||
79c460784fc55ccf272fbe89290ff84d3e17341c:
|
||||
title: 'igb: Fix not clearing TimeSync interrupts for 82580'
|
||||
mainline: ba8cf80724dbc09825b52498e4efacb563935408
|
||||
backport: 7e95e0c1c4750d584a8dacaefa62f506af3e510d
|
||||
5f3806adb62e1360a561cbac0c15f9310740608b:
|
||||
title: 'platform/x86: dell-smbios: Fix error path in dell_smbios_init()'
|
||||
mainline: ffc17e1479e8e9459b7afa80e5d9d40d0dd78abb
|
||||
skipped: fixes patch not in branch
|
||||
5adf7fbdfa3e9e425b04771e1d64c4e184ad8fdb:
|
||||
title: 'cx82310_eth: re-enable ethernet mode after router reboot'
|
||||
mainline: ca139d76b0d9e59d18f2d2ec8f0d81b82acd6808
|
||||
backport: 3f63ef4d3a6164cf90d31f26cb37976cbc32b5a9
|
||||
3f255eda1818c6f2b4fb446c488339c66173dc6d:
|
||||
title: 'drivers/net/usb: Remove all strcpy() uses'
|
||||
mainline: 493c3ca6bd754d8587604496eb814f72e933075d
|
||||
backport: ef1cdbe7efb9d4f237238f3a58b115ccae662a8f
|
||||
40373e2bdf967ba982309ff06e3b8c7c79c4de0e:
|
||||
title: 'net: usb: don''t write directly to netdev->dev_addr'
|
||||
mainline: 2674e7ea22ba0e22a2d1603bd51e0b8f6442a267
|
||||
backport: 70135ce17759946d0f4ccdbed51c21caccf22445
|
||||
c9c76962b49ff37ed8dcf880eabeb74df3e0686e:
|
||||
title: 'usbnet: modern method to get random MAC'
|
||||
mainline: bab8eb0dd4cb995caa4a0529d5655531c2ec5e8e
|
||||
backport: 5fb805c245cf8daf1568247ba755e3164c361d96
|
||||
2579dc71bfa05f908c13decb27989c18be775e2d:
|
||||
title: 'rfkill: fix spelling mistake contidion to condition'
|
||||
mainline: f404c3ecc401b3617c454c06a3d36a43a01f1aaf
|
||||
backport: 1c1073bf747c47629304662bd4e4acc3c347d499
|
||||
c5a0142c4d33b5948879cd5ec0af50eb92109465:
|
||||
title: 'net: bridge: add support for sticky fdb entries'
|
||||
mainline: 435f2e7cc0b783615d7fbcf08f5f00d289f9caeb
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
76c1d0d1cbedf122ed90cb64a05c440eedd39664:
|
||||
title: 'bridge: switchdev: Allow clearing FDB entry offload indication'
|
||||
mainline: e9ba0fbc7dd23a74e77960c98c988f59a1ff75aa
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
9969873b374eac5b5ddd2948fbac886b50d850a8:
|
||||
title: 'net: bridge: fdb: convert is_local to bitops'
|
||||
mainline: 6869c3b02b596eba931a754f56875d2e2ac612db
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
806d9b874077deb1b8a8c1cc1a600576603f03bb:
|
||||
title: 'net: bridge: fdb: convert is_static to bitops'
|
||||
mainline: 29e63fffd666f1945756882d4b02bc7bec132101
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
f210d06825042341c7de635898115cb5e840023e:
|
||||
title: 'net: bridge: fdb: convert is_sticky to bitops'
|
||||
mainline: e0458d9a733ba71a2821d0c3fc0745baac697db0
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
4b1bf0ea37f0a21fa948e364c623676730657795:
|
||||
title: 'net: bridge: fdb: convert added_by_user to bitops'
|
||||
mainline: ac3ca6af443aa495c7907e5010ac77fbd2450eaa
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
d3bc290bdd518e056f5cfe82accb93d5ad8643c2:
|
||||
title: 'net: bridge: fdb: convert added_by_external_learn to use bitops'
|
||||
mainline: b5cd9f7c42480ede119a390607a9dbe6263f6795
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
7d9933cb9990b8300075a853f5b2a5d3e4349629:
|
||||
title: 'net: bridge: br_fdb_external_learn_add(): always set EXT_LEARN'
|
||||
mainline: bee2ef946d3184e99077be526567d791c473036f
|
||||
skipped: fixes patch not in branch
|
||||
4c709ad8feaff418ded4561c6a87bcf4078f4a03:
|
||||
title: 'net: dsa: vsc73xx: fix possible subblocks range of CAPT block'
|
||||
mainline: 8e69c96df771ab469cec278edb47009351de4da6
|
||||
skipped: fixes patch not in branch
|
||||
75a34515eb1be431819ec00cd09fe3a3eb369cdb:
|
||||
title: 'iommu/vt-d: Handle volatile descriptor status read'
|
||||
mainline: b5e86a95541cea737394a1da967df4cd4d8f7182
|
||||
backport: b3774dcec0995f6d31fa86bbfaeb74a5c6cda069
|
||||
6760357063f593a17613e015aed2051cfd4197c6:
|
||||
title: 'cgroup: Protect css->cgroup write under css_set_lock'
|
||||
mainline: 57b56d16800e8961278ecff0dc755d46c4575092
|
||||
backport: 9d86ad71865dd3a67f27923da2d87891801d26f2
|
||||
3bedb7ce080690d0d6172db790790c1219bcbdd5:
|
||||
title: 'um: line: always fill *error_out in setup_one_line()'
|
||||
mainline: 824ac4a5edd3f7494ab1996826c4f47f8ef0f63d
|
||||
backport: def0afb4a7e7e30bc08b1b4699dfe6802b2cbde1
|
||||
c57834f37dc73410ed2eb11e1cc3fecad169b065:
|
||||
title: 'devres: Initialize an uninitialized struct member'
|
||||
mainline: 56a20ad349b5c51909cf8810f7c79b288864ad33
|
||||
backport: 463af1bdfe4037d2d5c274ae3df6a1bda26cd3aa
|
||||
4eb4085c1346d19d4a05c55246eb93e74e671048:
|
||||
title: 'pci/hotplug/pnv_php: Fix hotplug driver crash on Powernv'
|
||||
mainline: 335e35b748527f0c06ded9eebb65387f60647fda
|
||||
backport: 33259e025b9efd8c18acbeaf5db24ff06db58459
|
||||
05419d0056dcf7088687e561bb583cc06deba777:
|
||||
title: 'hwmon: (adc128d818) Fix underflows seen when writing limit attributes'
|
||||
mainline: 8cad724c8537fe3e0da8004646abc00290adae40
|
||||
backport: c0cc4bee13a524d7aceb27690ac6be7ed8e61b70
|
||||
93f0f5721d0cca45dac50af1ae6f9a9826c699fd:
|
||||
title: 'hwmon: (lm95234) Fix underflows seen when writing limit attributes'
|
||||
mainline: af64e3e1537896337405f880c1e9ac1f8c0c6198
|
||||
backport: d93e9ac35391aef72db4a0aa274d27944dd0d673
|
||||
298a55f11edd811f2189b74eb8f53dee34d4f14c:
|
||||
title: 'hwmon: (nct6775-core) Fix underflows seen when writing limit attributes'
|
||||
mainline: 0403e10bf0824bf0ec2bb135d4cf1c0cc3bf4bf0
|
||||
backport: 676ca195a7e32432c84de0516609c98560dcf66f
|
||||
93cf73a7bfdce683bde3a7bb65f270d3bd24497b:
|
||||
title: 'hwmon: (w83627ehf) Fix underflows seen when writing limit attributes'
|
||||
mainline: 5c1de37969b7bc0abcb20b86e91e70caebbd4f89
|
||||
backport: 9c01d650e13a9098fd147c080994be18cb0689c9
|
||||
a12cf97cbefa139ef8d95081f2ea047cbbd74b7a:
|
||||
title: 'wifi: mwifiex: Do not return unused priv in mwifiex_get_priv_by_id()'
|
||||
mainline: c145eea2f75ff7949392aebecf7ef0a81c1f6c14
|
||||
backport: 6d47528d1743bbefff3fc7928d1e45e3faf03cd8
|
||||
2d6a7a1ee3862d129c0e0fbd3cc147e185a379dc:
|
||||
title: 'smp: Add missing destroy_work_on_stack() call in smp_call_on_cpu()'
|
||||
mainline: 77aeb1b685f9db73d276bad4bb30d48505a6fd23
|
||||
backport: 86ed63497a70309bcc68c61bf706e65e305318e9
|
||||
2df0e48615f438cdf93f1469ed9f289f71440d2d:
|
||||
title: 'btrfs: replace BUG_ON with ASSERT in walk_down_proc()'
|
||||
mainline: 1f9d44c0a12730a24f8bb75c5e1102207413cc9b
|
||||
backport: 8f9488fe41599c4aed2820b66097ab09f2bcfec8
|
||||
c847b28a799733b04574060ab9d00f215970627d:
|
||||
title: 'btrfs: clean up our handling of refs == 0 in snapshot delete'
|
||||
mainline: b8ccef048354074a548f108e51d0557d6adfd3a3
|
||||
backport: b6a6c52de6de81961175e7d2814f6d0193697a4c
|
||||
0790b89c7e911003b8c50ae50e3ac7645de1fae9:
|
||||
title: 'PCI: Add missing bridge lock to pci_bus_lock()'
|
||||
mainline: a4e772898f8bf2e7e1cf661a12c60a5612c4afab
|
||||
backport: dc087747546322a6d53d450c92456fcd0055a257
|
||||
d09f1bf3d7f029558704f077097dbcd4dc5db8da:
|
||||
title: 'btrfs: initialize location to fix -Wmaybe-uninitialized in btrfs_lookup_dentry()'
|
||||
mainline: b8e947e9f64cac9df85a07672b658df5b2bcff07
|
||||
backport: 8f68d6f65ec245d7f7641b540ef6ffed262df9cf
|
||||
e239e44dcd419b13cf840e2a3a833204e4329714:
|
||||
title: 'HID: cougar: fix slab-out-of-bounds Read in cougar_report_fixup'
|
||||
mainline: a6e9c391d45b5865b61e569146304cff72821a5d
|
||||
skipped: missing commit b8e759b8f6dab1c473c30ac12709095d0b81078e
|
||||
9c6d189f0c1c59ba9a32326ec82a0b367a3cd47b:
|
||||
title: 'Input: uinput - reject requests with unreasonable number of slots'
|
||||
mainline: 206f533a0a7c683982af473079c4111f4a0f9f5e
|
||||
backport: f406ab8753404479a45b87c930fed326b4db0f04
|
||||
487f140d366f9b12edb11b97819c135676090bd2:
|
||||
title: 'usbnet: ipheth: race between ipheth_close and error handling'
|
||||
mainline: e5876b088ba03a62124266fa20d00e65533c7269
|
||||
backport: b1981479ebd7e8d67c23753437a4282ef363b0a0
|
||||
f82cb7f24032ed023fc67d26ea9bf322d8431a90:
|
||||
title: 'Squashfs: sanity check symbolic link size'
|
||||
mainline: 810ee43d9cd245d138a2733d87a24858a23f577d
|
||||
backport: a909f13b25b358d7f4683648b5166214c609668f
|
||||
d2a79494d8a5262949736fb2c3ac44d20a51b0d8:
|
||||
title: 'of/irq: Prevent device address out-of-bounds read in interrupt map walk'
|
||||
mainline: b739dffa5d570b411d4bdf4bb9b8dfd6b7d72305
|
||||
backport: 8b67befd1d8e89bce21196d288327ef375731328
|
||||
cff08d637389f4bf4a49a08ff0474bd6c2b27b97:
|
||||
title: 'ata: pata_macio: Use WARN instead of BUG'
|
||||
mainline: d4bc0a264fb482b019c84fbc7202dd3cab059087
|
||||
backport: 265da992cd6d9a6ae82917b3f0bd343f5754b4b9
|
||||
0edd1eac01afe0c2104bddd7d1cae985b0a4552c:
|
||||
title: 'iio: buffer-dmaengine: fix releasing dma channel on error'
|
||||
mainline: 84c65d8008764a8fb4e627ff02de01ec4245f2c4
|
||||
backport: 1753cb7f5cd1bf2bdecd6126d4670ae4c5ea31d5
|
||||
a1cad4f0340c50037bd3211bd43deff662d5287e:
|
||||
title: 'iio: fix scale application in iio_convert_raw_to_processed_unlocked'
|
||||
mainline: 8a3dcc970dc57b358c8db2702447bf0af4e0d83a
|
||||
backport: 0c91f6e9cee80725ead1a4db722a1b7a0b575162
|
||||
5e0a746e798cd962e478b54f50f6f39384f735bc:
|
||||
title: 'nvmem: Fix return type of devm_nvmem_device_get() in kerneldoc'
|
||||
mainline: c69f37f6559a8948d70badd2b179db7714dedd62
|
||||
backport: 1c8fea7bc7b888039874f237abf53f28264f3d42
|
||||
3d414b64ecf6fd717d7510ffb893c6f23acbf50e:
|
||||
title: 'uio_hv_generic: Fix kernel NULL pointer dereference in hv_uio_rescind'
|
||||
mainline: fb1adbd7e50f3d2de56d0a2bb0700e2e819a329e
|
||||
skipped: fixes patch not in branch
|
||||
45ab92b650f4ec42528b8c199b0a3ae04a71ea8b:
|
||||
title: 'Drivers: hv: vmbus: Fix rescind handling in uio_hv_generic'
|
||||
mainline: 6fd28941447bf2c8ca0f26fda612a1cabc41663f
|
||||
skipped: fixes patch not in branch
|
||||
f6365931bf7c07b2b397dbb06a4f6573cc9fae73:
|
||||
title: 'VMCI: Fix use-after-free when removing resource in vmci_resource_remove()'
|
||||
mainline: 48b9a8dabcc3cf5f961b2ebcd8933bf9204babb7
|
||||
backport: 12663f3dcfaa591275c2b086a840edc9e86dc736
|
||||
eeec87f317abb8b1ebb04b5d6823e941649d8293:
|
||||
title: 'clocksource/drivers/imx-tpm: Fix return -ETIME when delta exceeds INT_MAX'
|
||||
mainline: 5b8843fcd49827813da80c0f590a17ae4ce93c5d
|
||||
backport: 3ed0ce0836c07ea1c3e635370ce04f5ab065ee90
|
||||
143674856ebffeb785759892b1a11a7f5ecbd1f5:
|
||||
title: 'clocksource/drivers/imx-tpm: Fix next event not taking effect sometime'
|
||||
mainline: 3d5c2f8e75a55cfb11a85086c71996af0354a1fb
|
||||
backport: 79b3fd21dd528f14d3d7f4f380db5a742f5903d4
|
||||
32bb3588ccf08406931c7f061f0ef7a37cd38414:
|
||||
title: 'uprobes: Use kzalloc to allocate xol area'
|
||||
mainline: e240b0fde52f33670d1336697c22d90a4fe33c84
|
||||
backport: 967a7ce0d7d61c1256391a197e81ba2a400ecf07
|
||||
ac8ffa21dde0c1edcd9dd98b5555a0aa4eea3b1f:
|
||||
title: 'ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()'
|
||||
mainline: bc1a72afdc4a91844928831cac85731566e03bc6
|
||||
backport: ae2112e6a08779c541bc4b9b88ff58914f4ecf32
|
||||
84bd537aaefb210218b5e1d982411fa6ae8429a1:
|
||||
title: 'tracing: Avoid possible softlockup in tracing_iter_reset()'
|
||||
mainline: 49aa8a1f4d6800721c7971ed383078257f12e8f9
|
||||
backport: fdfd1ef491f5e5445d130169394ae68a45d1adcf
|
||||
51af9b589ab68a94485ee55811d1243c6bf665b4:
|
||||
title: 'nilfs2: replace snprintf in show functions with sysfs_emit'
|
||||
mainline: 3bcd6c5bd483287f4a09d3d59a012d47677b6edc
|
||||
backport: c77787e1b99270f880dae53e1c8e9f7d8ec8f5a1
|
||||
b90beafac05931cbfcb6b1bd4f67c1923f47040e:
|
||||
title: 'nilfs2: protect references to superblock parameters exposed in sysfs'
|
||||
mainline: 683408258917541bdb294cd717c210a04381931e
|
||||
backport: 2d65330b265ca1170d35cd861a82b35536f57c4e
|
||||
bc596c2026c7f52dc12a784403ccfc3b152844e6:
|
||||
title: 'netns: add pre_exit method to struct pernet_operations'
|
||||
mainline: d7d99872c144a2c2f5d9c9d83627fa833836cba5
|
||||
backport: 9541fb132b07ee39fa0c6d07655684f7d961c171
|
||||
43d34110882b97ba1ec66cc8234b18983efb9abf:
|
||||
title: 'ila: call nf_unregister_net_hooks() sooner'
|
||||
mainline: 031ae72825cef43e4650140b800ad58bf7a6a466
|
||||
skipped: commit did not cherry-pick cleanly
|
||||
a30476afbaac69face9537cd8d0694d46d5d1ef5:
|
||||
title: 'ACPI: processor: Return an error if acpi_processor_get_info() fails in processor_add()'
|
||||
mainline: fadf231f0a06a6748a7fc4a2c29ac9ef7bca6bfd
|
||||
backport: 9e65e5135c7d8451ee68b36d44f674429df4271a
|
||||
00259ae5206a713234e3ac12a8a0f731e86b754b:
|
||||
title: 'ACPI: processor: Fix memory leaks in error paths of processor_add()'
|
||||
mainline: 47ec9b417ed9b6b8ec2a941cd84d9de62adc358a
|
||||
backport: 89bbd019927a862339cb11beeb98a95c0269b25c
|
||||
60e02cb604a8e2c755a9f0407d63539b586d3310:
|
||||
title: 'drm/i915/fence: Mark debug_fence_init_onstack() with __maybe_unused'
|
||||
mainline: fcd9e8afd546f6ced378d078345a89bf346d065e
|
||||
skipped: fixes patch not in branch
|
||||
76b1dda1598fc151610d3f372e24be1fcc8b396e:
|
||||
title: 'drm/i915/fence: Mark debug_fence_free() with __maybe_unused'
|
||||
mainline: f99999536128b14b5d765a9982763b5134efdd79
|
||||
backport: c292e581abf5c0dfaf783e3ad2bda3502b5ab4be
|
||||
432efdbe7da5ecfcbc0c2180cfdbab1441752a38:
|
||||
title: 'rtmutex: Drop rt_mutex::wait_lock before scheduling'
|
||||
mainline: d33d26036a0274b472299d7dcdaa5fb34329f91b
|
||||
backport: 11ae525157eb075f44f3c6460fdd9a5642ada728
|
||||
bc790261218952635f846aaf90bcc0974f6f62c6:
|
||||
title: 'net, sunrpc: Remap EPERM in case of connection failure in xs_tcp_setup_socket'
|
||||
mainline: 626dfed5fa3bfb41e0dffd796032b555b69f9cde
|
||||
skipped: fixes patch not in branch
|
||||
e70c0b7e280415e1511fb258f4b72733d765b80e:
|
||||
title: 'cx82310_eth: fix error return code in cx82310_bind()'
|
||||
mainline: cfbaa8b33e022aca62a3f2815ffbc02874d4cb8b
|
||||
backport: 8b8a84237a675ff0a73827b2ba05745765a97f13
|
||||
15605b333ddaa3e5e21dfebb65546c70bb167925:
|
||||
title: 'netns: restore ops before calling ops_exit_list'
|
||||
mainline: b272a0ad730103e84fb735fd0a8cc050cdf7f77c
|
||||
backport: 61da5c1d99b77bb28d2579a64a05bfbf9447e43d
|
||||
324954a057b3ab21a7be5c91e148c15c401332f0:
|
||||
title: 'Revert "parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367"'
|
||||
mainline: 73cb4a2d8d7e0259f94046116727084f21e4599f
|
||||
backport: a66198e30ea76c75761c3f0323b31ba6be641824
|
||||
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 14
|
||||
SUBLEVEL = 353
|
||||
SUBLEVEL = 355
|
||||
EXTRAVERSION = -openela
|
||||
NAME = Petit Gorille
|
||||
|
||||
|
||||
@@ -266,6 +266,9 @@ void calibrate_delay(void)
|
||||
|
||||
void __init setup_arch(char **cmdline_p)
|
||||
{
|
||||
/* setup memblock allocator */
|
||||
setup_memory();
|
||||
|
||||
unflatten_and_copy_device_tree();
|
||||
|
||||
setup_cpuinfo();
|
||||
@@ -286,9 +289,6 @@ void __init setup_arch(char **cmdline_p)
|
||||
initrd_below_start_ok = 1;
|
||||
#endif
|
||||
|
||||
/* setup memblock allocator */
|
||||
setup_memory();
|
||||
|
||||
/* paging_init() sets up the MMU and marks all pages as reserved */
|
||||
paging_init();
|
||||
|
||||
|
||||
@@ -114,8 +114,11 @@ static void *simple_realloc(void *ptr, unsigned long size)
|
||||
return ptr;
|
||||
|
||||
new = simple_malloc(size);
|
||||
if (new) {
|
||||
memcpy(new, ptr, p->size);
|
||||
simple_free(ptr);
|
||||
}
|
||||
|
||||
return new;
|
||||
}
|
||||
|
||||
|
||||
@@ -240,6 +240,8 @@ static int __init icp_native_map_one_cpu(int hw_id, unsigned long addr,
|
||||
rname = kasprintf(GFP_KERNEL, "CPU %d [0x%x] Interrupt Presentation",
|
||||
cpu, hw_id);
|
||||
|
||||
if (!rname)
|
||||
return -ENOMEM;
|
||||
if (!request_mem_region(addr, size, rname)) {
|
||||
pr_warning("icp_native: Could not reserve ICP MMIO"
|
||||
" for CPU %d, interrupt server #0x%x\n",
|
||||
|
||||
@@ -391,6 +391,7 @@ int setup_one_line(struct line *lines, int n, char *init,
|
||||
parse_chan_pair(NULL, line, n, opts, error_out);
|
||||
err = 0;
|
||||
}
|
||||
*error_out = "configured as 'none'";
|
||||
} else {
|
||||
char *new = kstrdup(init, GFP_KERNEL);
|
||||
if (!new) {
|
||||
@@ -414,6 +415,7 @@ int setup_one_line(struct line *lines, int n, char *init,
|
||||
}
|
||||
}
|
||||
if (err) {
|
||||
*error_out = "failed to parse channel pair";
|
||||
line->init_str = NULL;
|
||||
line->valid = 0;
|
||||
kfree(new);
|
||||
|
||||
@@ -244,6 +244,7 @@ bool bio_integrity_prep(struct bio *bio)
|
||||
unsigned int bytes, offset, i;
|
||||
unsigned int intervals;
|
||||
blk_status_t status;
|
||||
gfp_t gfp = GFP_NOIO;
|
||||
|
||||
if (!bi)
|
||||
return true;
|
||||
@@ -266,12 +267,20 @@ bool bio_integrity_prep(struct bio *bio)
|
||||
if (!bi->profile->generate_fn ||
|
||||
!(bi->flags & BLK_INTEGRITY_GENERATE))
|
||||
return true;
|
||||
|
||||
/*
|
||||
* Zero the memory allocated to not leak uninitialized kernel
|
||||
* memory to disk. For PI this only affects the app tag, but
|
||||
* for non-integrity metadata it affects the entire metadata
|
||||
* buffer.
|
||||
*/
|
||||
gfp |= __GFP_ZERO;
|
||||
}
|
||||
intervals = bio_integrity_intervals(bi, bio_sectors(bio));
|
||||
|
||||
/* Allocate kernel buffer for protection data */
|
||||
len = intervals * bi->tuple_size;
|
||||
buf = kmalloc(len, GFP_NOIO | q->bounce_gfp);
|
||||
buf = kmalloc(len, gfp | q->bounce_gfp);
|
||||
status = BLK_STS_RESOURCE;
|
||||
if (unlikely(buf == NULL)) {
|
||||
printk(KERN_ERR "could not allocate integrity buffer\n");
|
||||
|
||||
@@ -390,7 +390,7 @@ static int acpi_processor_add(struct acpi_device *device,
|
||||
|
||||
result = acpi_processor_get_info(device);
|
||||
if (result) /* Processor is not physically present or unavailable */
|
||||
return 0;
|
||||
goto err_clear_driver_data;
|
||||
|
||||
BUG_ON(pr->id >= nr_cpu_ids);
|
||||
|
||||
@@ -405,7 +405,7 @@ static int acpi_processor_add(struct acpi_device *device,
|
||||
"BIOS reported wrong ACPI id %d for the processor\n",
|
||||
pr->id);
|
||||
/* Give up, but do not abort the namespace scan. */
|
||||
goto err;
|
||||
goto err_clear_driver_data;
|
||||
}
|
||||
/*
|
||||
* processor_device_array is not cleared on errors to allow buggy BIOS
|
||||
@@ -417,12 +417,12 @@ static int acpi_processor_add(struct acpi_device *device,
|
||||
dev = get_cpu_device(pr->id);
|
||||
if (!dev) {
|
||||
result = -ENODEV;
|
||||
goto err;
|
||||
goto err_clear_per_cpu;
|
||||
}
|
||||
|
||||
result = acpi_bind_one(dev, device);
|
||||
if (result)
|
||||
goto err;
|
||||
goto err_clear_per_cpu;
|
||||
|
||||
pr->dev = dev;
|
||||
|
||||
@@ -433,10 +433,11 @@ static int acpi_processor_add(struct acpi_device *device,
|
||||
dev_err(dev, "Processor driver could not be attached\n");
|
||||
acpi_unbind_one(dev);
|
||||
|
||||
err:
|
||||
free_cpumask_var(pr->throttling.shared_cpu_map);
|
||||
device->driver_data = NULL;
|
||||
err_clear_per_cpu:
|
||||
per_cpu(processors, pr->id) = NULL;
|
||||
err_clear_driver_data:
|
||||
device->driver_data = NULL;
|
||||
free_cpumask_var(pr->throttling.shared_cpu_map);
|
||||
err_free_pr:
|
||||
kfree(pr);
|
||||
return result;
|
||||
|
||||
@@ -537,7 +537,8 @@ static enum ata_completion_errors pata_macio_qc_prep(struct ata_queued_cmd *qc)
|
||||
|
||||
while (sg_len) {
|
||||
/* table overflow should never happen */
|
||||
BUG_ON (pi++ >= MAX_DCMDS);
|
||||
if (WARN_ON_ONCE(pi >= MAX_DCMDS))
|
||||
return AC_ERR_SYSTEM;
|
||||
|
||||
len = (sg_len < MAX_DBDMA_SEG) ? sg_len : MAX_DBDMA_SEG;
|
||||
table->command = cpu_to_le16(write ? OUTPUT_MORE: INPUT_MORE);
|
||||
@@ -549,11 +550,13 @@ static enum ata_completion_errors pata_macio_qc_prep(struct ata_queued_cmd *qc)
|
||||
addr += len;
|
||||
sg_len -= len;
|
||||
++table;
|
||||
++pi;
|
||||
}
|
||||
}
|
||||
|
||||
/* Should never happen according to Tejun */
|
||||
BUG_ON(!pi);
|
||||
if (WARN_ON_ONCE(!pi))
|
||||
return AC_ERR_SYSTEM;
|
||||
|
||||
/* Convert the last command to an input/output */
|
||||
table--;
|
||||
|
||||
@@ -1117,8 +1117,8 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
|
||||
rpp->len += skb->len;
|
||||
|
||||
if (stat & SAR_RSQE_EPDU) {
|
||||
unsigned int len, truesize;
|
||||
unsigned char *l1l2;
|
||||
unsigned int len;
|
||||
|
||||
l1l2 = (unsigned char *) ((unsigned long) skb->data + skb->len - 6);
|
||||
|
||||
@@ -1188,14 +1188,15 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
|
||||
ATM_SKB(skb)->vcc = vcc;
|
||||
__net_timestamp(skb);
|
||||
|
||||
truesize = skb->truesize;
|
||||
vcc->push(vcc, skb);
|
||||
atomic_inc(&vcc->stats->rx);
|
||||
|
||||
if (skb->truesize > SAR_FB_SIZE_3)
|
||||
if (truesize > SAR_FB_SIZE_3)
|
||||
add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
|
||||
else if (skb->truesize > SAR_FB_SIZE_2)
|
||||
else if (truesize > SAR_FB_SIZE_2)
|
||||
add_rx_skb(card, 2, SAR_FB_SIZE_2, 1);
|
||||
else if (skb->truesize > SAR_FB_SIZE_1)
|
||||
else if (truesize > SAR_FB_SIZE_1)
|
||||
add_rx_skb(card, 1, SAR_FB_SIZE_1, 1);
|
||||
else
|
||||
add_rx_skb(card, 0, SAR_FB_SIZE_0, 1);
|
||||
|
||||
@@ -555,6 +555,7 @@ void * devres_open_group(struct device *dev, void *id, gfp_t gfp)
|
||||
grp->id = grp;
|
||||
if (id)
|
||||
grp->id = id;
|
||||
grp->color = 0;
|
||||
|
||||
spin_lock_irqsave(&dev->devres_lock, flags);
|
||||
add_dr(dev, &grp->node[0]);
|
||||
|
||||
@@ -769,7 +769,8 @@ static int hci_uart_tty_ioctl(struct tty_struct *tty, struct file *file,
|
||||
break;
|
||||
|
||||
case HCIUARTGETPROTO:
|
||||
if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
|
||||
if (test_bit(HCI_UART_PROTO_SET, &hu->flags) &&
|
||||
test_bit(HCI_UART_PROTO_READY, &hu->flags))
|
||||
err = hu->proto->id;
|
||||
else
|
||||
err = -EUNATCH;
|
||||
|
||||
@@ -94,20 +94,28 @@ static int __init tpm_clocksource_init(unsigned long rate)
|
||||
static int tpm_set_next_event(unsigned long delta,
|
||||
struct clock_event_device *evt)
|
||||
{
|
||||
unsigned long next, now;
|
||||
unsigned long next, prev, now;
|
||||
|
||||
next = tpm_read_counter();
|
||||
next += delta;
|
||||
prev = tpm_read_counter();
|
||||
next = prev + delta;
|
||||
writel(next, timer_base + TPM_C0V);
|
||||
now = tpm_read_counter();
|
||||
|
||||
/*
|
||||
* Need to wait CNT increase at least 1 cycle to make sure
|
||||
* the C0V has been updated into HW.
|
||||
*/
|
||||
if ((next & 0xffffffff) != readl(timer_base + TPM_C0V))
|
||||
while (now == tpm_read_counter())
|
||||
;
|
||||
|
||||
/*
|
||||
* NOTE: We observed in a very small probability, the bus fabric
|
||||
* contention between GPU and A7 may results a few cycles delay
|
||||
* of writing CNT registers which may cause the min_delta event got
|
||||
* missed, so we need add a ETIME check here in case it happened.
|
||||
*/
|
||||
return (int)(next - now) <= 0 ? -ETIME : 0;
|
||||
return (now - prev) >= delta ? -ETIME : 0;
|
||||
}
|
||||
|
||||
static int tpm_set_state_oneshot(struct clock_event_device *evt)
|
||||
|
||||
@@ -100,6 +100,7 @@ struct amdgpu_afmt_acr amdgpu_afmt_acr(uint32_t clock)
|
||||
amdgpu_afmt_calc_cts(clock, &res.cts_32khz, &res.n_32khz, 32000);
|
||||
amdgpu_afmt_calc_cts(clock, &res.cts_44_1khz, &res.n_44_1khz, 44100);
|
||||
amdgpu_afmt_calc_cts(clock, &res.cts_48khz, &res.n_48khz, 48000);
|
||||
res.clock = clock;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -1624,6 +1624,8 @@ int amdgpu_atombios_init_mc_reg_table(struct amdgpu_device *adev,
|
||||
(u32)le32_to_cpu(*((u32 *)reg_data + j));
|
||||
j++;
|
||||
} else if ((reg_table->mc_reg_address[i].pre_reg_data & LOW_NIBBLE_MASK) == DATA_EQU_PREV) {
|
||||
if (i == 0)
|
||||
continue;
|
||||
reg_table->mc_reg_table_entry[num_ranges].mc_data[i] =
|
||||
reg_table->mc_reg_table_entry[num_ranges].mc_data[i - 1];
|
||||
}
|
||||
|
||||
@@ -639,6 +639,9 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
|
||||
struct amdgpu_firmware_info *ucode;
|
||||
|
||||
id = fw_type_convert(cgs_device, type);
|
||||
if (id >= AMDGPU_UCODE_ID_MAXIMUM)
|
||||
return -EINVAL;
|
||||
|
||||
ucode = &adev->firmware.ucode[id];
|
||||
if (ucode->fw == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -203,13 +203,19 @@ int amdgpu_ctx_ioctl(struct drm_device *dev, void *data,
|
||||
|
||||
switch (args->in.op) {
|
||||
case AMDGPU_CTX_OP_ALLOC_CTX:
|
||||
if (args->in.flags)
|
||||
return -EINVAL;
|
||||
r = amdgpu_ctx_alloc(adev, fpriv, &id);
|
||||
args->out.alloc.ctx_id = id;
|
||||
break;
|
||||
case AMDGPU_CTX_OP_FREE_CTX:
|
||||
if (args->in.flags)
|
||||
return -EINVAL;
|
||||
r = amdgpu_ctx_free(fpriv, id);
|
||||
break;
|
||||
case AMDGPU_CTX_OP_QUERY_STATE:
|
||||
if (args->in.flags)
|
||||
return -EINVAL;
|
||||
r = amdgpu_ctx_query(adev, fpriv, id, &args->out);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -383,8 +383,9 @@ static ssize_t amdgpu_debugfs_ring_read(struct file *f, char __user *buf,
|
||||
size_t size, loff_t *pos)
|
||||
{
|
||||
struct amdgpu_ring *ring = file_inode(f)->i_private;
|
||||
int r, i;
|
||||
uint32_t value, result, early[3];
|
||||
loff_t i;
|
||||
int r;
|
||||
|
||||
if (*pos & 3 || size & 3)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -647,7 +647,8 @@ int amdgpu_vce_ring_parse_cs(struct amdgpu_cs_parser *p, uint32_t ib_idx)
|
||||
uint32_t created = 0;
|
||||
uint32_t allocated = 0;
|
||||
uint32_t tmp, handle = 0;
|
||||
uint32_t *size = &tmp;
|
||||
uint32_t dummy = 0xffffffff;
|
||||
uint32_t *size = &dummy;
|
||||
int i, r = 0, idx = 0;
|
||||
|
||||
p->job->vm = NULL;
|
||||
|
||||
@@ -1601,6 +1601,9 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
var->xres_virtual = fb->width;
|
||||
var->yres_virtual = fb->height;
|
||||
|
||||
/*
|
||||
* Workaround for SDL 1.2, which is known to be setting all pixel format
|
||||
* fields values to zero in some cases. We treat this situation as a
|
||||
|
||||
@@ -61,7 +61,7 @@ static inline void debug_fence_destroy(struct i915_sw_fence *fence)
|
||||
debug_object_destroy(fence, &i915_sw_fence_debug_descr);
|
||||
}
|
||||
|
||||
static inline void debug_fence_free(struct i915_sw_fence *fence)
|
||||
static inline __maybe_unused void debug_fence_free(struct i915_sw_fence *fence)
|
||||
{
|
||||
debug_object_free(fence, &i915_sw_fence_debug_descr);
|
||||
smp_wmb(); /* flush the change in state before reallocation */
|
||||
@@ -95,7 +95,7 @@ static inline void debug_fence_destroy(struct i915_sw_fence *fence)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void debug_fence_free(struct i915_sw_fence *fence)
|
||||
static inline __maybe_unused void debug_fence_free(struct i915_sw_fence *fence)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1735,12 +1735,14 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,
|
||||
int fmax = field->logical_maximum;
|
||||
unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
|
||||
int resolution_code = code;
|
||||
int resolution = hidinput_calc_abs_res(field, resolution_code);
|
||||
int resolution;
|
||||
|
||||
if (equivalent_usage == HID_DG_TWIST) {
|
||||
resolution_code = ABS_RZ;
|
||||
}
|
||||
|
||||
resolution = hidinput_calc_abs_res(field, resolution_code);
|
||||
|
||||
if (equivalent_usage == HID_GD_X) {
|
||||
fmin += features->offset_left;
|
||||
fmax -= features->offset_right;
|
||||
|
||||
@@ -184,7 +184,7 @@ static ssize_t adc128_set_in(struct device *dev, struct device_attribute *attr,
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
/* 10 mV LSB on limit registers */
|
||||
regval = clamp_val(DIV_ROUND_CLOSEST(val, 10), 0, 255);
|
||||
regval = DIV_ROUND_CLOSEST(clamp_val(val, 0, 2550), 10);
|
||||
data->in[index][nr] = regval << 4;
|
||||
reg = index == 1 ? ADC128_REG_IN_MIN(nr) : ADC128_REG_IN_MAX(nr);
|
||||
i2c_smbus_write_byte_data(data->client, reg, regval);
|
||||
@@ -222,7 +222,7 @@ static ssize_t adc128_set_temp(struct device *dev,
|
||||
return err;
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
regval = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -128, 127);
|
||||
regval = DIV_ROUND_CLOSEST(clamp_val(val, -128000, 127000), 1000);
|
||||
data->temp[index] = regval << 1;
|
||||
i2c_smbus_write_byte_data(data->client,
|
||||
index == 1 ? ADC128_REG_TEMP_MAX
|
||||
|
||||
@@ -310,7 +310,8 @@ static ssize_t set_tcrit2(struct device *dev, struct device_attribute *attr,
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), 0, index ? 255 : 127);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, 0, (index ? 255 : 127) * 1000),
|
||||
1000);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
data->tcrit2[index] = val;
|
||||
@@ -359,7 +360,7 @@ static ssize_t set_tcrit1(struct device *dev, struct device_attribute *attr,
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), 0, 255);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, 0, 255000), 1000);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
data->tcrit1[index] = val;
|
||||
@@ -400,7 +401,7 @@ static ssize_t set_tcrit1_hyst(struct device *dev,
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
val = DIV_ROUND_CLOSEST(val, 1000);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, -255000, 255000), 1000);
|
||||
val = clamp_val((int)data->tcrit1[index] - val, 0, 31);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
@@ -440,7 +441,7 @@ static ssize_t set_offset(struct device *dev, struct device_attribute *attr,
|
||||
return ret;
|
||||
|
||||
/* Accuracy is 1/2 degrees C */
|
||||
val = clamp_val(DIV_ROUND_CLOSEST(val, 500), -128, 127);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, -64000, 63500), 500);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
data->toffset[index] = val;
|
||||
|
||||
@@ -2200,7 +2200,7 @@ store_temp_offset(struct device *dev, struct device_attribute *attr,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -128, 127);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, -128000, 127000), 1000);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
data->temp_offset[nr] = val;
|
||||
|
||||
@@ -1519,7 +1519,7 @@ store_target_temp(struct device *dev, struct device_attribute *attr,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), 0, 127);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, 0, 127000), 1000);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
data->target_temp[nr] = val;
|
||||
@@ -1545,7 +1545,7 @@ store_tolerance(struct device *dev, struct device_attribute *attr,
|
||||
return err;
|
||||
|
||||
/* Limit the temp to 0C - 15C */
|
||||
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), 0, 15);
|
||||
val = DIV_ROUND_CLOSEST(clamp_val(val, 0, 15000), 1000);
|
||||
|
||||
mutex_lock(&data->update_lock);
|
||||
if (sio_data->kind == nct6775 || sio_data->kind == nct6776) {
|
||||
|
||||
@@ -159,7 +159,7 @@ struct iio_buffer *iio_dmaengine_buffer_alloc(struct device *dev,
|
||||
|
||||
ret = dma_get_slave_caps(chan, &caps);
|
||||
if (ret < 0)
|
||||
goto err_free;
|
||||
goto err_release;
|
||||
|
||||
/* Needs to be aligned to the maximum of the minimums */
|
||||
if (caps.src_addr_widths)
|
||||
@@ -184,6 +184,8 @@ struct iio_buffer *iio_dmaengine_buffer_alloc(struct device *dev,
|
||||
|
||||
return &dmaengine_buffer->queue.buffer;
|
||||
|
||||
err_release:
|
||||
dma_release_channel(chan);
|
||||
err_free:
|
||||
kfree(dmaengine_buffer);
|
||||
return ERR_PTR(ret);
|
||||
|
||||
@@ -640,17 +640,17 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
|
||||
break;
|
||||
case IIO_VAL_INT_PLUS_MICRO:
|
||||
if (scale_val2 < 0)
|
||||
*processed = -raw64 * scale_val;
|
||||
*processed = -raw64 * scale_val * scale;
|
||||
else
|
||||
*processed = raw64 * scale_val;
|
||||
*processed = raw64 * scale_val * scale;
|
||||
*processed += div_s64(raw64 * (s64)scale_val2 * scale,
|
||||
1000000LL);
|
||||
break;
|
||||
case IIO_VAL_INT_PLUS_NANO:
|
||||
if (scale_val2 < 0)
|
||||
*processed = -raw64 * scale_val;
|
||||
*processed = -raw64 * scale_val * scale;
|
||||
else
|
||||
*processed = raw64 * scale_val;
|
||||
*processed = raw64 * scale_val * scale;
|
||||
*processed += div_s64(raw64 * (s64)scale_val2 * scale,
|
||||
1000000000LL);
|
||||
break;
|
||||
|
||||
@@ -48,6 +48,9 @@ int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots,
|
||||
return 0;
|
||||
if (mt)
|
||||
return mt->num_slots != num_slots ? -EINVAL : 0;
|
||||
/* Arbitrary limit for avoiding too large memory allocation. */
|
||||
if (num_slots > 1024)
|
||||
return -EINVAL;
|
||||
|
||||
mt = kzalloc(sizeof(*mt) + num_slots * sizeof(*mt->slots), GFP_KERNEL);
|
||||
if (!mt)
|
||||
|
||||
@@ -378,6 +378,20 @@ static int uinput_validate_absinfo(struct input_dev *dev, unsigned int code,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Limit number of contacts to a reasonable value (100). This
|
||||
* ensures that we need less than 2 pages for struct input_mt
|
||||
* (we are not using in-kernel slot assignment so not going to
|
||||
* allocate memory for the "red" table), and we should have no
|
||||
* trouble getting this much memory.
|
||||
*/
|
||||
if (code == ABS_MT_SLOT && max > 99) {
|
||||
printk(KERN_DEBUG
|
||||
"%s: unreasonably large number of slots requested: %d\n",
|
||||
UINPUT_NAME, max);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1289,7 +1289,7 @@ restart:
|
||||
*/
|
||||
writel(qi->free_head << DMAR_IQ_SHIFT, iommu->reg + DMAR_IQT_REG);
|
||||
|
||||
while (qi->desc_status[wait_index] != QI_DONE) {
|
||||
while (READ_ONCE(qi->desc_status[wait_index]) != QI_DONE) {
|
||||
/*
|
||||
* We will leave the interrupts disabled, to prevent interrupt
|
||||
* context to queue another cmd while a cmd is already submitted
|
||||
|
||||
@@ -346,6 +346,10 @@ static struct irq_chip armada_370_xp_irq_chip = {
|
||||
static int armada_370_xp_mpic_irq_map(struct irq_domain *h,
|
||||
unsigned int virq, irq_hw_number_t hw)
|
||||
{
|
||||
/* IRQs 0 and 1 cannot be mapped, they are handled internally */
|
||||
if (hw <= 1)
|
||||
return -EINVAL;
|
||||
|
||||
armada_370_xp_irq_mask(irq_get_irq_data(virq));
|
||||
if (!is_percpu_irq(hw))
|
||||
writel(hw, per_cpu_int_base +
|
||||
|
||||
@@ -2692,8 +2692,6 @@ static int its_vpe_irq_domain_alloc(struct irq_domain *domain, unsigned int virq
|
||||
struct page *vprop_page;
|
||||
int base, nr_ids, i, err = 0;
|
||||
|
||||
BUG_ON(!vm);
|
||||
|
||||
bitmap = its_lpi_alloc_chunks(nr_irqs, &base, &nr_ids);
|
||||
if (!bitmap)
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -1039,8 +1039,26 @@ static int do_resume(struct dm_ioctl *param)
|
||||
suspend_flags &= ~DM_SUSPEND_LOCKFS_FLAG;
|
||||
if (param->flags & DM_NOFLUSH_FLAG)
|
||||
suspend_flags |= DM_SUSPEND_NOFLUSH_FLAG;
|
||||
if (!dm_suspended_md(md))
|
||||
dm_suspend(md, suspend_flags);
|
||||
if (!dm_suspended_md(md)) {
|
||||
r = dm_suspend(md, suspend_flags);
|
||||
if (r) {
|
||||
down_write(&_hash_lock);
|
||||
hc = dm_get_mdptr(md);
|
||||
if (hc && !hc->new_map) {
|
||||
hc->new_map = new_map;
|
||||
new_map = NULL;
|
||||
} else {
|
||||
r = -ENXIO;
|
||||
}
|
||||
up_write(&_hash_lock);
|
||||
if (new_map) {
|
||||
dm_sync_table(md);
|
||||
dm_table_destroy(new_map);
|
||||
}
|
||||
dm_put(md);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
old_map = dm_swap_table(md, new_map);
|
||||
if (IS_ERR(old_map)) {
|
||||
|
||||
@@ -2396,7 +2396,7 @@ static int dm_wait_for_completion(struct mapped_device *md, long task_state)
|
||||
break;
|
||||
|
||||
if (signal_pending_state(task_state, current)) {
|
||||
r = -EINTR;
|
||||
r = -ERESTARTSYS;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -7215,11 +7215,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
|
||||
mddev = bdev->bd_disk->private_data;
|
||||
|
||||
if (!mddev) {
|
||||
BUG();
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Some actions do not requires the mutex */
|
||||
switch (cmd) {
|
||||
case GET_ARRAY_INFO:
|
||||
|
||||
@@ -274,7 +274,7 @@ static void sm_metadata_destroy(struct dm_space_map *sm)
|
||||
{
|
||||
struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm);
|
||||
|
||||
kfree(smm);
|
||||
kvfree(smm);
|
||||
}
|
||||
|
||||
static int sm_metadata_get_nr_blocks(struct dm_space_map *sm, dm_block_t *count)
|
||||
@@ -758,7 +758,7 @@ struct dm_space_map *dm_sm_metadata_init(void)
|
||||
{
|
||||
struct sm_metadata *smm;
|
||||
|
||||
smm = kmalloc(sizeof(*smm), GFP_KERNEL);
|
||||
smm = kvmalloc(sizeof(*smm), GFP_KERNEL);
|
||||
if (!smm)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
||||
@@ -1293,6 +1293,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
|
||||
/* register Video device */
|
||||
dev->video_dev = cx23885_vdev_init(dev, dev->pci,
|
||||
&cx23885_video_template, "video");
|
||||
if (!dev->video_dev) {
|
||||
err = -ENOMEM;
|
||||
goto fail_unreg;
|
||||
}
|
||||
dev->video_dev->queue = &dev->vb2_vidq;
|
||||
err = video_register_device(dev->video_dev, VFL_TYPE_GRABBER,
|
||||
video_nr[dev->nr]);
|
||||
@@ -1307,6 +1311,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
|
||||
/* register VBI device */
|
||||
dev->vbi_dev = cx23885_vdev_init(dev, dev->pci,
|
||||
&cx23885_vbi_template, "vbi");
|
||||
if (!dev->vbi_dev) {
|
||||
err = -ENOMEM;
|
||||
goto fail_unreg;
|
||||
}
|
||||
dev->vbi_dev->queue = &dev->vb2_vbiq;
|
||||
err = video_register_device(dev->vbi_dev, VFL_TYPE_VBI,
|
||||
vbi_nr[dev->nr]);
|
||||
|
||||
@@ -261,8 +261,11 @@ static int camss_of_parse_endpoint_node(struct device *dev,
|
||||
struct v4l2_fwnode_bus_mipi_csi2 *mipi_csi2;
|
||||
struct v4l2_fwnode_endpoint vep = { { 0 } };
|
||||
unsigned int i;
|
||||
int ret;
|
||||
|
||||
v4l2_fwnode_endpoint_parse(of_fwnode_handle(node), &vep);
|
||||
ret = v4l2_fwnode_endpoint_parse(of_fwnode_handle(node), &vep);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
csd->interface.csiphy_id = vep.base.port;
|
||||
|
||||
|
||||
@@ -821,16 +821,26 @@ static int uvc_parse_streaming(struct uvc_device *dev,
|
||||
goto error;
|
||||
}
|
||||
|
||||
size = nformats * sizeof *format + nframes * sizeof *frame
|
||||
+ nintervals * sizeof *interval;
|
||||
/*
|
||||
* Allocate memory for the formats, the frames and the intervals,
|
||||
* plus any required padding to guarantee that everything has the
|
||||
* correct alignment.
|
||||
*/
|
||||
size = nformats * sizeof(*format);
|
||||
size = ALIGN(size, __alignof__(*frame)) + nframes * sizeof(*frame);
|
||||
size = ALIGN(size, __alignof__(*interval))
|
||||
+ nintervals * sizeof(*interval);
|
||||
|
||||
format = kzalloc(size, GFP_KERNEL);
|
||||
if (format == NULL) {
|
||||
if (!format) {
|
||||
ret = -ENOMEM;
|
||||
goto error;
|
||||
}
|
||||
|
||||
frame = (struct uvc_frame *)&format[nformats];
|
||||
interval = (__u32 *)&frame[nframes];
|
||||
frame = (void *)format + nformats * sizeof(*format);
|
||||
frame = PTR_ALIGN(frame, __alignof__(*frame));
|
||||
interval = (void *)frame + nframes * sizeof(*frame);
|
||||
interval = PTR_ALIGN(interval, __alignof__(*interval));
|
||||
|
||||
streaming->format = format;
|
||||
streaming->nformats = nformats;
|
||||
|
||||
@@ -408,12 +408,12 @@ static int uvc_commit_video(struct uvc_streaming *stream,
|
||||
* Clocks and timestamps
|
||||
*/
|
||||
|
||||
static inline void uvc_video_get_ts(struct timespec *ts)
|
||||
static inline ktime_t uvc_video_get_time(void)
|
||||
{
|
||||
if (uvc_clock_param == CLOCK_MONOTONIC)
|
||||
ktime_get_ts(ts);
|
||||
return ktime_get();
|
||||
else
|
||||
ktime_get_real_ts(ts);
|
||||
return ktime_get_real();
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -425,7 +425,7 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
|
||||
bool has_pts = false;
|
||||
bool has_scr = false;
|
||||
unsigned long flags;
|
||||
struct timespec ts;
|
||||
ktime_t time;
|
||||
u16 host_sof;
|
||||
u16 dev_sof;
|
||||
u32 dev_stc;
|
||||
@@ -504,7 +504,7 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
|
||||
stream->clock.last_sof = dev_sof;
|
||||
|
||||
host_sof = usb_get_current_frame_number(stream->dev->udev);
|
||||
uvc_video_get_ts(&ts);
|
||||
time = uvc_video_get_time();
|
||||
|
||||
/* The UVC specification allows device implementations that can't obtain
|
||||
* the USB frame number to keep their own frame counters as long as they
|
||||
@@ -541,7 +541,7 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
|
||||
sample->dev_stc = dev_stc;
|
||||
sample->dev_sof = dev_sof;
|
||||
sample->host_sof = host_sof;
|
||||
sample->host_ts = ts;
|
||||
sample->host_time = time;
|
||||
|
||||
/* Update the sliding window head and count. */
|
||||
stream->clock.head = (stream->clock.head + 1) % stream->clock.size;
|
||||
@@ -681,15 +681,13 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
|
||||
struct uvc_clock_sample *first;
|
||||
struct uvc_clock_sample *last;
|
||||
unsigned long flags;
|
||||
struct timespec ts;
|
||||
u64 timestamp;
|
||||
u32 delta_stc;
|
||||
u32 y1, y2;
|
||||
u32 y1;
|
||||
u32 x1, x2;
|
||||
u32 mean;
|
||||
u32 sof;
|
||||
u32 div;
|
||||
u32 rem;
|
||||
u64 y;
|
||||
u64 y, y2;
|
||||
|
||||
if (!uvc_hw_timestamps_param)
|
||||
return;
|
||||
@@ -729,7 +727,7 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
|
||||
sof = y;
|
||||
|
||||
uvc_trace(UVC_TRACE_CLOCK, "%s: PTS %u y %llu.%06llu SOF %u.%06llu "
|
||||
"(x1 %u x2 %u y1 %u y2 %u SOF offset %u)\n",
|
||||
"(x1 %u x2 %u y1 %u y2 %llu SOF offset %u)\n",
|
||||
stream->dev->name, buf->pts,
|
||||
y >> 16, div_u64((y & 0xffff) * 1000000, 65536),
|
||||
sof >> 16, div_u64(((u64)sof & 0xffff) * 1000000LLU, 65536),
|
||||
@@ -743,9 +741,8 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
|
||||
if (x1 == x2)
|
||||
goto done;
|
||||
|
||||
ts = timespec_sub(last->host_ts, first->host_ts);
|
||||
y1 = NSEC_PER_SEC;
|
||||
y2 = (ts.tv_sec + 1) * NSEC_PER_SEC + ts.tv_nsec;
|
||||
y2 = ktime_to_ns(ktime_sub(last->host_time, first->host_time)) + y1;
|
||||
|
||||
/* Interpolated and host SOF timestamps can wrap around at slightly
|
||||
* different times. Handle this by adding or removing 2048 to or from
|
||||
@@ -762,24 +759,18 @@ void uvc_video_clock_update(struct uvc_streaming *stream,
|
||||
- (u64)y2 * (u64)x1;
|
||||
y = div_u64(y, x2 - x1);
|
||||
|
||||
div = div_u64_rem(y, NSEC_PER_SEC, &rem);
|
||||
ts.tv_sec = first->host_ts.tv_sec - 1 + div;
|
||||
ts.tv_nsec = first->host_ts.tv_nsec + rem;
|
||||
if (ts.tv_nsec >= NSEC_PER_SEC) {
|
||||
ts.tv_sec++;
|
||||
ts.tv_nsec -= NSEC_PER_SEC;
|
||||
}
|
||||
timestamp = ktime_to_ns(first->host_time) + y - y1;
|
||||
|
||||
uvc_trace(UVC_TRACE_CLOCK, "%s: SOF %u.%06llu y %llu ts %llu "
|
||||
"buf ts %llu (x1 %u/%u/%u x2 %u/%u/%u y1 %u y2 %u)\n",
|
||||
"buf ts %llu (x1 %u/%u/%u x2 %u/%u/%u y1 %u y2 %llu)\n",
|
||||
stream->dev->name,
|
||||
sof >> 16, div_u64(((u64)sof & 0xffff) * 1000000LLU, 65536),
|
||||
y, timespec_to_ns(&ts), vbuf->vb2_buf.timestamp,
|
||||
y, timestamp, vbuf->vb2_buf.timestamp,
|
||||
x1, first->host_sof, first->dev_sof,
|
||||
x2, last->host_sof, last->dev_sof, y1, y2);
|
||||
|
||||
/* Update the V4L2 buffer. */
|
||||
vbuf->vb2_buf.timestamp = timespec_to_ns(&ts);
|
||||
vbuf->vb2_buf.timestamp = timestamp;
|
||||
|
||||
done:
|
||||
spin_unlock_irqrestore(&clock->lock, flags);
|
||||
@@ -1086,8 +1077,6 @@ static int uvc_video_decode_start(struct uvc_streaming *stream,
|
||||
* when the EOF bit is set to force synchronisation on the next packet.
|
||||
*/
|
||||
if (buf->state != UVC_BUF_STATE_ACTIVE) {
|
||||
struct timespec ts;
|
||||
|
||||
if (fid == stream->last_fid) {
|
||||
uvc_trace(UVC_TRACE_FRAME, "Dropping payload (out of "
|
||||
"sync).\n");
|
||||
@@ -1097,11 +1086,9 @@ static int uvc_video_decode_start(struct uvc_streaming *stream,
|
||||
return -ENODATA;
|
||||
}
|
||||
|
||||
uvc_video_get_ts(&ts);
|
||||
|
||||
buf->buf.field = V4L2_FIELD_NONE;
|
||||
buf->buf.sequence = stream->sequence;
|
||||
buf->buf.vb2_buf.timestamp = timespec_to_ns(&ts);
|
||||
buf->buf.vb2_buf.timestamp = uvc_video_get_time();
|
||||
|
||||
/* TODO: Handle PTS and SCR. */
|
||||
buf->state = UVC_BUF_STATE_ACTIVE;
|
||||
|
||||
@@ -536,8 +536,8 @@ struct uvc_streaming {
|
||||
struct uvc_clock_sample {
|
||||
u32 dev_stc;
|
||||
u16 dev_sof;
|
||||
struct timespec host_ts;
|
||||
u16 host_sof;
|
||||
ktime_t host_time;
|
||||
} *samples;
|
||||
|
||||
unsigned int head;
|
||||
|
||||
@@ -152,7 +152,8 @@ void vmci_resource_remove(struct vmci_resource *resource)
|
||||
spin_lock(&vmci_resource_table.lock);
|
||||
|
||||
hlist_for_each_entry(r, &vmci_resource_table.entries[idx], node) {
|
||||
if (vmci_handle_is_equal(r->handle, resource->handle)) {
|
||||
if (vmci_handle_is_equal(r->handle, resource->handle) &&
|
||||
resource->type == r->type) {
|
||||
hlist_del_init_rcu(&r->node);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3119,21 +3119,21 @@ static ssize_t mtf_test_write(struct file *file, const char __user *buf,
|
||||
test->buffer = kzalloc(BUFFER_SIZE, GFP_KERNEL);
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
test->highmem = alloc_pages(GFP_KERNEL | __GFP_HIGHMEM, BUFFER_ORDER);
|
||||
if (!test->highmem) {
|
||||
count = -ENOMEM;
|
||||
goto free_test_buffer;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
if (test->buffer && test->highmem) {
|
||||
#else
|
||||
if (test->buffer) {
|
||||
#endif
|
||||
mutex_lock(&mmc_test_lock);
|
||||
mmc_test_run(test, testcase);
|
||||
mutex_unlock(&mmc_test_lock);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
if (test->highmem)
|
||||
__free_pages(test->highmem, BUFFER_ORDER);
|
||||
free_test_buffer:
|
||||
#endif
|
||||
kfree(test->buffer);
|
||||
kfree(test);
|
||||
|
||||
@@ -2869,8 +2869,8 @@ static int dw_mci_init_slot(struct dw_mci *host)
|
||||
if (host->use_dma == TRANS_MODE_IDMAC) {
|
||||
mmc->max_segs = host->ring_size;
|
||||
mmc->max_blk_size = 65535;
|
||||
mmc->max_seg_size = 0x1000;
|
||||
mmc->max_req_size = mmc->max_seg_size * host->ring_size;
|
||||
mmc->max_req_size = DW_MCI_DESC_DATA_LENGTH * host->ring_size;
|
||||
mmc->max_seg_size = mmc->max_req_size;
|
||||
mmc->max_blk_count = mmc->max_req_size / 512;
|
||||
} else if (host->use_dma == TRANS_MODE_EDMAC) {
|
||||
mmc->max_segs = 64;
|
||||
@@ -3192,6 +3192,10 @@ int dw_mci_probe(struct dw_mci *host)
|
||||
host->biu_clk = devm_clk_get(host->dev, "biu");
|
||||
if (IS_ERR(host->biu_clk)) {
|
||||
dev_dbg(host->dev, "biu clock not available\n");
|
||||
ret = PTR_ERR(host->biu_clk);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
return ret;
|
||||
|
||||
} else {
|
||||
ret = clk_prepare_enable(host->biu_clk);
|
||||
if (ret) {
|
||||
@@ -3203,6 +3207,10 @@ int dw_mci_probe(struct dw_mci *host)
|
||||
host->ciu_clk = devm_clk_get(host->dev, "ciu");
|
||||
if (IS_ERR(host->ciu_clk)) {
|
||||
dev_dbg(host->dev, "ciu clock not available\n");
|
||||
ret = PTR_ERR(host->ciu_clk);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
goto err_clk_biu;
|
||||
|
||||
host->bus_hz = host->pdata->bus_hz;
|
||||
} else {
|
||||
ret = clk_prepare_enable(host->ciu_clk);
|
||||
|
||||
@@ -989,7 +989,7 @@ static void sun3_82586_timeout(struct net_device *dev)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printk("%s: xmitter timed out, try to restart! stat: %02x\n",dev->name,p->scb->cus);
|
||||
printk("%s: command-stats: %04x %04x\n",dev->name,swab16(p->xmit_cmds[0]->cmd_status),swab16(p->xmit_cmds[1]->cmd_status));
|
||||
printk("%s: command-stats: %04x\n", dev->name, swab16(p->xmit_cmds[0]->cmd_status));
|
||||
printk("%s: check, whether you set the right interrupt number!\n",dev->name);
|
||||
#endif
|
||||
sun3_82586_close(dev);
|
||||
|
||||
@@ -5814,10 +5814,20 @@ static void igb_extts(struct igb_adapter *adapter, int tsintr_tt)
|
||||
|
||||
static void igb_tsync_interrupt(struct igb_adapter *adapter)
|
||||
{
|
||||
const u32 mask = (TSINTR_SYS_WRAP | E1000_TSICR_TXTS |
|
||||
TSINTR_TT0 | TSINTR_TT1 |
|
||||
TSINTR_AUTT0 | TSINTR_AUTT1);
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
u32 tsicr = rd32(E1000_TSICR);
|
||||
struct ptp_clock_event event;
|
||||
|
||||
if (hw->mac.type == e1000_82580) {
|
||||
/* 82580 has a hardware bug that requires an explicit
|
||||
* write to clear the TimeSync interrupt cause.
|
||||
*/
|
||||
wr32(E1000_TSICR, tsicr & mask);
|
||||
}
|
||||
|
||||
if (tsicr & TSINTR_SYS_WRAP) {
|
||||
event.type = PTP_CLOCK_PPS;
|
||||
if (adapter->ptp_caps.pps)
|
||||
|
||||
@@ -365,6 +365,10 @@ static void axienet_set_multicast_list(struct net_device *ndev)
|
||||
} else if (!netdev_mc_empty(ndev)) {
|
||||
struct netdev_hw_addr *ha;
|
||||
|
||||
reg = axienet_ior(lp, XAE_FMI_OFFSET);
|
||||
reg &= ~XAE_FMI_PM_MASK;
|
||||
axienet_iow(lp, XAE_FMI_OFFSET, reg);
|
||||
|
||||
i = 0;
|
||||
netdev_for_each_mc_addr(ha, ndev) {
|
||||
if (i >= XAE_MULTICAST_CAM_TABLE_NUM)
|
||||
|
||||
@@ -576,6 +576,9 @@ static netdev_tx_t gtp_dev_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
if (skb_cow_head(skb, dev->needed_headroom))
|
||||
goto tx_err;
|
||||
|
||||
if (!pskb_inet_may_pull(skb))
|
||||
goto tx_err;
|
||||
|
||||
skb_reset_inner_headers(skb);
|
||||
|
||||
/* PDP context lookups in gtp_build_skb_*() need rcu read-side lock. */
|
||||
@@ -808,7 +811,7 @@ static struct sock *gtp_encap_enable_socket(int fd, int type,
|
||||
sock = sockfd_lookup(fd, &err);
|
||||
if (!sock) {
|
||||
pr_debug("gtp socket fd=%d not found\n", fd);
|
||||
return NULL;
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
sk = sock->sk;
|
||||
|
||||
@@ -338,6 +338,7 @@ static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
{
|
||||
int retval = 0;
|
||||
unsigned char data[2];
|
||||
u8 addr[ETH_ALEN];
|
||||
|
||||
retval = usbnet_get_endpoints(dev, intf);
|
||||
if (retval)
|
||||
@@ -385,7 +386,8 @@ static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
retval = control_write(dev, REQUEST_WRITE, 0, MAC_REG_CTRL, data, 0x02,
|
||||
CONTROL_TIMEOUT_MS);
|
||||
|
||||
retval = get_mac_address(dev, dev->net->dev_addr);
|
||||
retval = get_mac_address(dev, addr);
|
||||
eth_hw_addr_set(dev->net, addr);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,11 @@ enum cx82310_status {
|
||||
#define CX82310_MTU 1514
|
||||
#define CMD_EP 0x01
|
||||
|
||||
struct cx82310_priv {
|
||||
struct work_struct reenable_work;
|
||||
struct usbnet *dev;
|
||||
};
|
||||
|
||||
/*
|
||||
* execute control command
|
||||
* - optionally send some data (command parameters)
|
||||
@@ -127,6 +132,23 @@ end:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cx82310_enable_ethernet(struct usbnet *dev)
|
||||
{
|
||||
int ret = cx82310_cmd(dev, CMD_ETHERNET_MODE, true, "\x01", 1, NULL, 0);
|
||||
|
||||
if (ret)
|
||||
netdev_err(dev->net, "unable to enable ethernet mode: %d\n",
|
||||
ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void cx82310_reenable_work(struct work_struct *work)
|
||||
{
|
||||
struct cx82310_priv *priv = container_of(work, struct cx82310_priv,
|
||||
reenable_work);
|
||||
cx82310_enable_ethernet(priv->dev);
|
||||
}
|
||||
|
||||
#define partial_len data[0] /* length of partial packet data */
|
||||
#define partial_rem data[1] /* remaining (missing) data length */
|
||||
#define partial_data data[2] /* partial packet data */
|
||||
@@ -138,6 +160,8 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
struct usb_device *udev = dev->udev;
|
||||
u8 link[3];
|
||||
int timeout = 50;
|
||||
struct cx82310_priv *priv;
|
||||
u8 addr[ETH_ALEN];
|
||||
|
||||
/* avoid ADSL modems - continue only if iProduct is "USB NET CARD" */
|
||||
if (usb_string(udev, udev->descriptor.iProduct, buf, sizeof(buf)) > 0
|
||||
@@ -164,6 +188,15 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
if (!dev->partial_data)
|
||||
return -ENOMEM;
|
||||
|
||||
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv) {
|
||||
ret = -ENOMEM;
|
||||
goto err_partial;
|
||||
}
|
||||
dev->driver_priv = priv;
|
||||
INIT_WORK(&priv->reenable_work, cx82310_reenable_work);
|
||||
priv->dev = dev;
|
||||
|
||||
/* wait for firmware to become ready (indicated by the link being up) */
|
||||
while (--timeout) {
|
||||
ret = cx82310_cmd(dev, CMD_GET_LINK_STATUS, true, NULL, 0,
|
||||
@@ -180,20 +213,17 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
}
|
||||
|
||||
/* enable ethernet mode (?) */
|
||||
ret = cx82310_cmd(dev, CMD_ETHERNET_MODE, true, "\x01", 1, NULL, 0);
|
||||
if (ret) {
|
||||
dev_err(&udev->dev, "unable to enable ethernet mode: %d\n",
|
||||
ret);
|
||||
ret = cx82310_enable_ethernet(dev);
|
||||
if (ret)
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* get the MAC address */
|
||||
ret = cx82310_cmd(dev, CMD_GET_MAC_ADDR, true, NULL, 0,
|
||||
dev->net->dev_addr, ETH_ALEN);
|
||||
ret = cx82310_cmd(dev, CMD_GET_MAC_ADDR, true, NULL, 0, addr, ETH_ALEN);
|
||||
if (ret) {
|
||||
dev_err(&udev->dev, "unable to read MAC address: %d\n", ret);
|
||||
goto err;
|
||||
}
|
||||
eth_hw_addr_set(dev->net, addr);
|
||||
|
||||
/* start (does not seem to have any effect?) */
|
||||
ret = cx82310_cmd(dev, CMD_START, false, NULL, 0, NULL, 0);
|
||||
@@ -202,13 +232,19 @@ static int cx82310_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
|
||||
return 0;
|
||||
err:
|
||||
kfree(dev->driver_priv);
|
||||
err_partial:
|
||||
kfree((void *)dev->partial_data);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void cx82310_unbind(struct usbnet *dev, struct usb_interface *intf)
|
||||
{
|
||||
struct cx82310_priv *priv = dev->driver_priv;
|
||||
|
||||
kfree((void *)dev->partial_data);
|
||||
cancel_work_sync(&priv->reenable_work);
|
||||
kfree(dev->driver_priv);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -223,6 +259,7 @@ static int cx82310_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
|
||||
{
|
||||
int len;
|
||||
struct sk_buff *skb2;
|
||||
struct cx82310_priv *priv = dev->driver_priv;
|
||||
|
||||
/*
|
||||
* If the last skb ended with an incomplete packet, this skb contains
|
||||
@@ -257,7 +294,10 @@ static int cx82310_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
|
||||
break;
|
||||
}
|
||||
|
||||
if (len > CX82310_MTU) {
|
||||
if (len == 0xffff) {
|
||||
netdev_info(dev->net, "router was rebooted, re-enabling ethernet mode");
|
||||
schedule_work(&priv->reenable_work);
|
||||
} else if (len > CX82310_MTU) {
|
||||
dev_err(&dev->udev->dev, "RX packet too long: %d B\n",
|
||||
len);
|
||||
return 0;
|
||||
|
||||
@@ -407,8 +407,8 @@ static int ipheth_close(struct net_device *net)
|
||||
{
|
||||
struct ipheth_device *dev = netdev_priv(net);
|
||||
|
||||
cancel_delayed_work_sync(&dev->carrier_work);
|
||||
netif_stop_queue(net);
|
||||
cancel_delayed_work_sync(&dev->carrier_work);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -497,7 +497,7 @@ static int ipheth_probe(struct usb_interface *intf,
|
||||
|
||||
netdev->netdev_ops = &ipheth_netdev_ops;
|
||||
netdev->watchdog_timeo = IPHETH_TX_TIMEOUT;
|
||||
strcpy(netdev->name, "eth%d");
|
||||
strscpy(netdev->name, "eth%d", sizeof(netdev->name));
|
||||
|
||||
dev = netdev_priv(netdev);
|
||||
dev->udev = udev;
|
||||
|
||||
@@ -1139,8 +1139,7 @@ err_fw:
|
||||
goto err_all_but_rxbuf;
|
||||
|
||||
memcpy(netdev->broadcast, &bcast_addr, sizeof(bcast_addr));
|
||||
memcpy(netdev->dev_addr, &kaweth->configuration.hw_addr,
|
||||
sizeof(kaweth->configuration.hw_addr));
|
||||
eth_hw_addr_set(netdev, (u8 *)&kaweth->configuration.hw_addr);
|
||||
|
||||
netdev->netdev_ops = &kaweth_netdev_ops;
|
||||
netdev->watchdog_timeo = KAWETH_TX_TIMEOUT;
|
||||
|
||||
@@ -493,17 +493,19 @@ static const struct net_device_ops mcs7830_netdev_ops = {
|
||||
static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev)
|
||||
{
|
||||
struct net_device *net = dev->net;
|
||||
u8 addr[ETH_ALEN];
|
||||
int ret;
|
||||
int retry;
|
||||
|
||||
/* Initial startup: Gather MAC address setting from EEPROM */
|
||||
ret = -EINVAL;
|
||||
for (retry = 0; retry < 5 && ret; retry++)
|
||||
ret = mcs7830_hif_get_mac_address(dev, net->dev_addr);
|
||||
ret = mcs7830_hif_get_mac_address(dev, addr);
|
||||
if (ret) {
|
||||
dev_warn(&dev->udev->dev, "Cannot read MAC address\n");
|
||||
goto out;
|
||||
}
|
||||
eth_hw_addr_set(net, addr);
|
||||
|
||||
mcs7830_data_set_multicast(net);
|
||||
|
||||
|
||||
@@ -1379,6 +1379,7 @@ static const struct usb_device_id products[] = {
|
||||
{QMI_FIXED_INTF(0x2692, 0x9025, 4)}, /* Cellient MPL200 (rebranded Qualcomm 05c6:9025) */
|
||||
{QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */
|
||||
{QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
|
||||
{QMI_FIXED_INTF(0x2dee, 0x4d22, 5)}, /* MeiG Smart SRM825L */
|
||||
|
||||
/* 4. Gobi 1000 devices */
|
||||
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
|
||||
|
||||
@@ -690,6 +690,7 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
0x00, 0x00, SIERRA_NET_HIP_MSYNC_ID, 0x00};
|
||||
static const u8 shdwn_tmplate[sizeof(priv->shdwn_msg)] = {
|
||||
0x00, 0x00, SIERRA_NET_HIP_SHUTD_ID, 0x00};
|
||||
u8 mod[2];
|
||||
|
||||
dev_dbg(&dev->udev->dev, "%s", __func__);
|
||||
|
||||
@@ -719,8 +720,9 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
dev->net->netdev_ops = &sierra_net_device_ops;
|
||||
|
||||
/* change MAC addr to include, ifacenum, and to be unique */
|
||||
dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
|
||||
dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
|
||||
mod[0] = atomic_inc_return(&iface_counter);
|
||||
mod[1] = ifacenum;
|
||||
dev_addr_mod(dev->net, ETH_ALEN - 2, mod, 2);
|
||||
|
||||
/* prepare shutdown message template */
|
||||
memcpy(priv->shdwn_msg, shdwn_tmplate, sizeof(priv->shdwn_msg));
|
||||
|
||||
@@ -326,6 +326,7 @@ static int sr9700_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
{
|
||||
struct net_device *netdev;
|
||||
struct mii_if_info *mii;
|
||||
u8 addr[ETH_ALEN];
|
||||
int ret;
|
||||
|
||||
ret = usbnet_get_endpoints(dev, intf);
|
||||
@@ -356,11 +357,12 @@ static int sr9700_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
* EEPROM automatically to PAR. In case there is no EEPROM externally,
|
||||
* a default MAC address is stored in PAR for making chip work properly.
|
||||
*/
|
||||
if (sr_read(dev, SR_PAR, ETH_ALEN, netdev->dev_addr) < 0) {
|
||||
if (sr_read(dev, SR_PAR, ETH_ALEN, addr) < 0) {
|
||||
netdev_err(netdev, "Error reading MAC address\n");
|
||||
ret = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
eth_hw_addr_set(netdev, addr);
|
||||
|
||||
/* power up and reset phy */
|
||||
sr_write_reg(dev, SR_PRR, PRR_PHY_RST);
|
||||
|
||||
@@ -732,6 +732,7 @@ static int sr9800_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
struct sr_data *data = (struct sr_data *)&dev->data;
|
||||
u16 led01_mux, led23_mux;
|
||||
int ret, embd_phy;
|
||||
u8 addr[ETH_ALEN];
|
||||
u32 phyid;
|
||||
u16 rx_ctl;
|
||||
|
||||
@@ -757,12 +758,12 @@ static int sr9800_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
}
|
||||
|
||||
/* Get the MAC address */
|
||||
ret = sr_read_cmd(dev, SR_CMD_READ_NODE_ID, 0, 0, ETH_ALEN,
|
||||
dev->net->dev_addr);
|
||||
ret = sr_read_cmd(dev, SR_CMD_READ_NODE_ID, 0, 0, ETH_ALEN, addr);
|
||||
if (ret < 0) {
|
||||
netdev_dbg(dev->net, "Failed to read MAC address: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
eth_hw_addr_set(dev->net, addr);
|
||||
netdev_dbg(dev->net, "mac addr : %pM\n", dev->net->dev_addr);
|
||||
|
||||
/* Initialize MII structure */
|
||||
|
||||
@@ -79,9 +79,6 @@
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
// randomly generated ethernet address
|
||||
static u8 node_id [ETH_ALEN];
|
||||
|
||||
/* use ethtool to change the level for any given device */
|
||||
static int msg_level = -1;
|
||||
module_param (msg_level, int, 0);
|
||||
@@ -205,12 +202,13 @@ EXPORT_SYMBOL_GPL(usbnet_get_endpoints);
|
||||
|
||||
int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress)
|
||||
{
|
||||
u8 addr[ETH_ALEN];
|
||||
int tmp = -1, ret;
|
||||
unsigned char buf [13];
|
||||
|
||||
ret = usb_string(dev->udev, iMACAddress, buf, sizeof buf);
|
||||
if (ret == 12)
|
||||
tmp = hex2bin(dev->net->dev_addr, buf, 6);
|
||||
tmp = hex2bin(addr, buf, 6);
|
||||
if (tmp < 0) {
|
||||
dev_dbg(&dev->udev->dev,
|
||||
"bad MAC string %d fetch, %d\n", iMACAddress, tmp);
|
||||
@@ -218,6 +216,7 @@ int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress)
|
||||
ret = -EINVAL;
|
||||
return ret;
|
||||
}
|
||||
eth_hw_addr_set(dev->net, addr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr);
|
||||
@@ -1812,8 +1811,7 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
|
||||
dev->interrupt_count = 0;
|
||||
|
||||
dev->net = net;
|
||||
strcpy (net->name, "usb%d");
|
||||
memcpy (net->dev_addr, node_id, sizeof node_id);
|
||||
strscpy(net->name, "usb%d", sizeof(net->name));
|
||||
|
||||
/* rx and tx sides can use different message sizes;
|
||||
* bind() should set rx_urb_size in that case.
|
||||
@@ -1839,13 +1837,13 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
|
||||
if ((dev->driver_info->flags & FLAG_ETHER) != 0 &&
|
||||
((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 ||
|
||||
(net->dev_addr [0] & 0x02) == 0))
|
||||
strcpy (net->name, "eth%d");
|
||||
strscpy(net->name, "eth%d", sizeof(net->name));
|
||||
/* WLAN devices should always be named "wlan%d" */
|
||||
if ((dev->driver_info->flags & FLAG_WLAN) != 0)
|
||||
strcpy(net->name, "wlan%d");
|
||||
strscpy(net->name, "wlan%d", sizeof(net->name));
|
||||
/* WWAN devices should always be named "wwan%d" */
|
||||
if ((dev->driver_info->flags & FLAG_WWAN) != 0)
|
||||
strcpy(net->name, "wwan%d");
|
||||
strscpy(net->name, "wwan%d", sizeof(net->name));
|
||||
|
||||
/* devices that cannot do ARP */
|
||||
if ((dev->driver_info->flags & FLAG_NOARP) != 0)
|
||||
@@ -1887,9 +1885,9 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
|
||||
goto out4;
|
||||
}
|
||||
|
||||
/* let userspace know we have a random address */
|
||||
if (ether_addr_equal(net->dev_addr, node_id))
|
||||
net->addr_assign_type = NET_ADDR_RANDOM;
|
||||
/* this flags the device for user space */
|
||||
if (!is_valid_ether_addr(net->dev_addr))
|
||||
eth_hw_addr_random(net);
|
||||
|
||||
if ((dev->driver_info->flags & FLAG_WLAN) != 0)
|
||||
SET_NETDEV_DEVTYPE(net, &wlan_type);
|
||||
@@ -2305,7 +2303,6 @@ static int __init usbnet_init(void)
|
||||
BUILD_BUG_ON(
|
||||
FIELD_SIZEOF(struct sk_buff, cb) < sizeof(struct skb_data));
|
||||
|
||||
eth_random_addr(node_id);
|
||||
for (i = 0; i < NUM_USBNET_IDS; i++) {
|
||||
usbnet_ipc_log_ctxt[i] =
|
||||
ipc_log_context_create(IPC_LOG_NUM_PAGES,
|
||||
|
||||
@@ -1091,6 +1091,7 @@ static int ieee_hw_init(struct ieee80211_hw *hw)
|
||||
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
||||
ieee80211_hw_set(hw, SIGNAL_DBM);
|
||||
ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
|
||||
ieee80211_hw_set(hw, MFP_CAPABLE);
|
||||
|
||||
hw->extra_tx_headroom = brcms_c_get_header_len();
|
||||
hw->queues = N_TX_QUEUES;
|
||||
|
||||
@@ -1783,7 +1783,7 @@ int iwl_mvm_scan_stop(struct iwl_mvm *mvm, int type, bool notify)
|
||||
if (!(mvm->scan_status & type))
|
||||
return 0;
|
||||
|
||||
if (iwl_mvm_is_radio_killed(mvm)) {
|
||||
if (!test_bit(STATUS_DEVICE_ENABLED, &mvm->trans->status)) {
|
||||
ret = 0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -4258,11 +4258,27 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)
|
||||
BIT(NL80211_IFTYPE_P2P_GO) |
|
||||
BIT(NL80211_IFTYPE_AP);
|
||||
|
||||
wiphy->bands[NL80211_BAND_2GHZ] = &mwifiex_band_2ghz;
|
||||
if (adapter->config_bands & BAND_A)
|
||||
wiphy->bands[NL80211_BAND_5GHZ] = &mwifiex_band_5ghz;
|
||||
else
|
||||
wiphy->bands[NL80211_BAND_2GHZ] = devm_kmemdup(adapter->dev,
|
||||
&mwifiex_band_2ghz,
|
||||
sizeof(mwifiex_band_2ghz),
|
||||
GFP_KERNEL);
|
||||
if (!wiphy->bands[NL80211_BAND_2GHZ]) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (adapter->config_bands & BAND_A) {
|
||||
wiphy->bands[NL80211_BAND_5GHZ] = devm_kmemdup(adapter->dev,
|
||||
&mwifiex_band_5ghz,
|
||||
sizeof(mwifiex_band_5ghz),
|
||||
GFP_KERNEL);
|
||||
if (!wiphy->bands[NL80211_BAND_5GHZ]) {
|
||||
ret = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
} else {
|
||||
wiphy->bands[NL80211_BAND_5GHZ] = NULL;
|
||||
}
|
||||
|
||||
if (adapter->drcs_enabled && ISSUPP_DRCS_ENABLED(adapter->fw_cap_info))
|
||||
wiphy->iface_combinations = &mwifiex_iface_comb_ap_sta_drcs;
|
||||
@@ -4343,8 +4359,7 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)
|
||||
if (ret < 0) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
"%s: wiphy_register failed: %d\n", __func__, ret);
|
||||
wiphy_free(wiphy);
|
||||
return ret;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (!adapter->regd) {
|
||||
@@ -4386,4 +4401,9 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)
|
||||
|
||||
adapter->wiphy = wiphy;
|
||||
return ret;
|
||||
|
||||
err:
|
||||
wiphy_free(wiphy);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1288,6 +1288,9 @@ mwifiex_get_priv_by_id(struct mwifiex_adapter *adapter,
|
||||
|
||||
for (i = 0; i < adapter->priv_num; i++) {
|
||||
if (adapter->priv[i]) {
|
||||
if (adapter->priv[i]->bss_mode == NL80211_IFTYPE_UNSPECIFIED)
|
||||
continue;
|
||||
|
||||
if ((adapter->priv[i]->bss_num == bss_num) &&
|
||||
(adapter->priv[i]->bss_type == bss_type))
|
||||
break;
|
||||
|
||||
@@ -1173,7 +1173,7 @@ void cw1200_rx_cb(struct cw1200_common *priv,
|
||||
size_t ies_len = skb->len - (ies - (u8 *)(skb->data));
|
||||
|
||||
tim_ie = cfg80211_find_ie(WLAN_EID_TIM, ies, ies_len);
|
||||
if (tim_ie) {
|
||||
if (tim_ie && tim_ie[1] >= sizeof(struct ieee80211_tim_ie)) {
|
||||
struct ieee80211_tim_ie *tim =
|
||||
(struct ieee80211_tim_ie *)&tim_ie[2];
|
||||
|
||||
|
||||
@@ -435,12 +435,8 @@ nvmet_rdma_alloc_rsps(struct nvmet_rdma_queue *queue)
|
||||
return 0;
|
||||
|
||||
out_free:
|
||||
while (--i >= 0) {
|
||||
struct nvmet_rdma_rsp *rsp = &queue->rsps[i];
|
||||
|
||||
list_del(&rsp->free_list);
|
||||
nvmet_rdma_free_rsp(ndev, rsp);
|
||||
}
|
||||
while (--i >= 0)
|
||||
nvmet_rdma_free_rsp(ndev, &queue->rsps[i]);
|
||||
kfree(queue->rsps);
|
||||
out:
|
||||
return ret;
|
||||
@@ -451,12 +447,8 @@ static void nvmet_rdma_free_rsps(struct nvmet_rdma_queue *queue)
|
||||
struct nvmet_rdma_device *ndev = queue->dev;
|
||||
int i, nr_rsps = queue->recv_queue_size * 2;
|
||||
|
||||
for (i = 0; i < nr_rsps; i++) {
|
||||
struct nvmet_rdma_rsp *rsp = &queue->rsps[i];
|
||||
|
||||
list_del(&rsp->free_list);
|
||||
nvmet_rdma_free_rsp(ndev, rsp);
|
||||
}
|
||||
for (i = 0; i < nr_rsps; i++)
|
||||
nvmet_rdma_free_rsp(ndev, &queue->rsps[i]);
|
||||
kfree(queue->rsps);
|
||||
}
|
||||
|
||||
|
||||
@@ -719,13 +719,13 @@ void nvmem_device_put(struct nvmem_device *nvmem)
|
||||
EXPORT_SYMBOL_GPL(nvmem_device_put);
|
||||
|
||||
/**
|
||||
* devm_nvmem_device_get() - Get nvmem cell of device form a given id
|
||||
* devm_nvmem_device_get() - Get nvmem device of device form a given id
|
||||
*
|
||||
* @dev: Device that requests the nvmem device.
|
||||
* @id: name id for the requested nvmem device.
|
||||
*
|
||||
* Return: ERR_PTR() on error or a valid pointer to a struct nvmem_cell
|
||||
* on success. The nvmem_cell will be freed by the automatically once the
|
||||
* Return: ERR_PTR() on error or a valid pointer to a struct nvmem_device
|
||||
* on success. The nvmem_device will be freed by the automatically once the
|
||||
* device is freed.
|
||||
*/
|
||||
struct nvmem_device *devm_nvmem_device_get(struct device *dev, const char *id)
|
||||
|
||||
@@ -294,7 +294,8 @@ int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_ar
|
||||
struct device_node *p;
|
||||
const __be32 *addr;
|
||||
u32 intsize;
|
||||
int i, res;
|
||||
int i, res, addr_len;
|
||||
__be32 addr_buf[3] = { 0 };
|
||||
|
||||
pr_debug("of_irq_parse_one: dev=%pOF, index=%d\n", device, index);
|
||||
|
||||
@@ -303,13 +304,19 @@ int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_ar
|
||||
return of_irq_parse_oldworld(device, index, out_irq);
|
||||
|
||||
/* Get the reg property (if any) */
|
||||
addr = of_get_property(device, "reg", NULL);
|
||||
addr = of_get_property(device, "reg", &addr_len);
|
||||
|
||||
/* Prevent out-of-bounds read in case of longer interrupt parent address size */
|
||||
if (addr_len > (3 * sizeof(__be32)))
|
||||
addr_len = 3 * sizeof(__be32);
|
||||
if (addr)
|
||||
memcpy(addr_buf, addr, addr_len);
|
||||
|
||||
/* Try the new-style interrupts-extended first */
|
||||
res = of_parse_phandle_with_args(device, "interrupts-extended",
|
||||
"#interrupt-cells", index, out_irq);
|
||||
if (!res)
|
||||
return of_irq_parse_raw(addr, out_irq);
|
||||
return of_irq_parse_raw(addr_buf, out_irq);
|
||||
|
||||
/* Look for the interrupt parent. */
|
||||
p = of_irq_find_parent(device);
|
||||
@@ -339,7 +346,7 @@ int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_ar
|
||||
|
||||
|
||||
/* Check if there are any interrupt-map translations to process */
|
||||
res = of_irq_parse_raw(addr, out_irq);
|
||||
res = of_irq_parse_raw(addr_buf, out_irq);
|
||||
out:
|
||||
of_node_put(p);
|
||||
return res;
|
||||
|
||||
@@ -39,7 +39,6 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot,
|
||||
bool disable_device)
|
||||
{
|
||||
struct pci_dev *pdev = php_slot->pdev;
|
||||
int irq = php_slot->irq;
|
||||
u16 ctrl;
|
||||
|
||||
if (php_slot->irq > 0) {
|
||||
@@ -58,7 +57,7 @@ static void pnv_php_disable_irq(struct pnv_php_slot *php_slot,
|
||||
php_slot->wq = NULL;
|
||||
}
|
||||
|
||||
if (disable_device || irq > 0) {
|
||||
if (disable_device) {
|
||||
if (pdev->msix_enabled)
|
||||
pci_disable_msix(pdev);
|
||||
else if (pdev->msi_enabled)
|
||||
|
||||
@@ -4452,10 +4452,12 @@ static void pci_bus_lock(struct pci_bus *bus)
|
||||
{
|
||||
struct pci_dev *dev;
|
||||
|
||||
pci_dev_lock(bus->self);
|
||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||
pci_dev_lock(dev);
|
||||
if (dev->subordinate)
|
||||
pci_bus_lock(dev->subordinate);
|
||||
else
|
||||
pci_dev_lock(dev);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4467,8 +4469,10 @@ static void pci_bus_unlock(struct pci_bus *bus)
|
||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||
if (dev->subordinate)
|
||||
pci_bus_unlock(dev->subordinate);
|
||||
else
|
||||
pci_dev_unlock(dev);
|
||||
}
|
||||
pci_dev_unlock(bus->self);
|
||||
}
|
||||
|
||||
/* Return 1 on successful lock, 0 on contention */
|
||||
@@ -4476,15 +4480,15 @@ static int pci_bus_trylock(struct pci_bus *bus)
|
||||
{
|
||||
struct pci_dev *dev;
|
||||
|
||||
if (!pci_dev_trylock(bus->self))
|
||||
return 0;
|
||||
|
||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||
if (!pci_dev_trylock(dev))
|
||||
goto unlock;
|
||||
if (dev->subordinate) {
|
||||
if (!pci_bus_trylock(dev->subordinate)) {
|
||||
pci_dev_unlock(dev);
|
||||
if (!pci_bus_trylock(dev->subordinate))
|
||||
goto unlock;
|
||||
} else if (!pci_dev_trylock(dev))
|
||||
goto unlock;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
@@ -4492,8 +4496,10 @@ unlock:
|
||||
list_for_each_entry_continue_reverse(dev, &bus->devices, bus_list) {
|
||||
if (dev->subordinate)
|
||||
pci_bus_unlock(dev->subordinate);
|
||||
else
|
||||
pci_dev_unlock(dev);
|
||||
}
|
||||
pci_dev_unlock(bus->self);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4521,9 +4527,10 @@ static void pci_slot_lock(struct pci_slot *slot)
|
||||
list_for_each_entry(dev, &slot->bus->devices, bus_list) {
|
||||
if (!dev->slot || dev->slot != slot)
|
||||
continue;
|
||||
pci_dev_lock(dev);
|
||||
if (dev->subordinate)
|
||||
pci_bus_lock(dev->subordinate);
|
||||
else
|
||||
pci_dev_lock(dev);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4549,14 +4556,13 @@ static int pci_slot_trylock(struct pci_slot *slot)
|
||||
list_for_each_entry(dev, &slot->bus->devices, bus_list) {
|
||||
if (!dev->slot || dev->slot != slot)
|
||||
continue;
|
||||
if (!pci_dev_trylock(dev))
|
||||
goto unlock;
|
||||
if (dev->subordinate) {
|
||||
if (!pci_bus_trylock(dev->subordinate)) {
|
||||
pci_dev_unlock(dev);
|
||||
goto unlock;
|
||||
}
|
||||
}
|
||||
} else if (!pci_dev_trylock(dev))
|
||||
goto unlock;
|
||||
}
|
||||
return 1;
|
||||
|
||||
@@ -4567,6 +4573,7 @@ unlock:
|
||||
continue;
|
||||
if (dev->subordinate)
|
||||
pci_bus_unlock(dev->subordinate);
|
||||
else
|
||||
pci_dev_unlock(dev);
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -636,11 +636,11 @@ static int yenta_search_one_res(struct resource *root, struct resource *res,
|
||||
start = PCIBIOS_MIN_CARDBUS_IO;
|
||||
end = ~0U;
|
||||
} else {
|
||||
unsigned long avail = root->end - root->start;
|
||||
unsigned long avail = resource_size(root);
|
||||
int i;
|
||||
size = BRIDGE_MEM_MAX;
|
||||
if (size > avail/8) {
|
||||
size = (avail+1)/8;
|
||||
if (size > (avail - 1) / 8) {
|
||||
size = avail / 8;
|
||||
/* round size down to next power of 2 */
|
||||
i = 0;
|
||||
while ((size /= 2) != 0)
|
||||
|
||||
@@ -317,6 +317,8 @@ static int pcs_get_function(struct pinctrl_dev *pctldev, unsigned pin,
|
||||
return -ENOTSUPP;
|
||||
fselector = setting->func;
|
||||
function = pinmux_generic_get_function(pctldev, fselector);
|
||||
if (!function)
|
||||
return -EINVAL;
|
||||
*func = function->data;
|
||||
if (!(*func)) {
|
||||
dev_err(pcs->dev, "%s could not find function%i\n",
|
||||
|
||||
@@ -16,7 +16,7 @@ struct idset {
|
||||
unsigned long bitmap[0];
|
||||
};
|
||||
|
||||
static inline unsigned long bitmap_size(int num_ssid, int num_id)
|
||||
static inline unsigned long idset_bitmap_size(int num_ssid, int num_id)
|
||||
{
|
||||
return BITS_TO_LONGS(num_ssid * num_id) * sizeof(unsigned long);
|
||||
}
|
||||
@@ -25,11 +25,12 @@ static struct idset *idset_new(int num_ssid, int num_id)
|
||||
{
|
||||
struct idset *set;
|
||||
|
||||
set = vmalloc(sizeof(struct idset) + bitmap_size(num_ssid, num_id));
|
||||
set = vmalloc(sizeof(struct idset) +
|
||||
idset_bitmap_size(num_ssid, num_id));
|
||||
if (set) {
|
||||
set->num_ssid = num_ssid;
|
||||
set->num_id = num_id;
|
||||
memset(set->bitmap, 0, bitmap_size(num_ssid, num_id));
|
||||
memset(set->bitmap, 0, idset_bitmap_size(num_ssid, num_id));
|
||||
}
|
||||
return set;
|
||||
}
|
||||
@@ -41,7 +42,8 @@ void idset_free(struct idset *set)
|
||||
|
||||
void idset_fill(struct idset *set)
|
||||
{
|
||||
memset(set->bitmap, 0xff, bitmap_size(set->num_ssid, set->num_id));
|
||||
memset(set->bitmap, 0xff,
|
||||
idset_bitmap_size(set->num_ssid, set->num_id));
|
||||
}
|
||||
|
||||
static inline void idset_add(struct idset *set, int ssid, int id)
|
||||
|
||||
@@ -613,6 +613,7 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
|
||||
|
||||
if (aac_comm_init(dev)<0){
|
||||
kfree(dev->queues);
|
||||
dev->queues = NULL;
|
||||
return NULL;
|
||||
}
|
||||
/*
|
||||
@@ -620,6 +621,7 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev)
|
||||
*/
|
||||
if (aac_fib_setup(dev) < 0) {
|
||||
kfree(dev->queues);
|
||||
dev->queues = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -6383,7 +6383,7 @@ lpfc_sli4_repost_sgl_list(struct lpfc_hba *phba,
|
||||
struct lpfc_sglq *sglq_entry = NULL;
|
||||
struct lpfc_sglq *sglq_entry_next = NULL;
|
||||
struct lpfc_sglq *sglq_entry_first = NULL;
|
||||
int status, total_cnt;
|
||||
int status = 0, total_cnt;
|
||||
int post_cnt = 0, num_posted = 0, block_cnt = 0;
|
||||
int last_xritag = NO_XRI;
|
||||
LIST_HEAD(prep_sgl_list);
|
||||
|
||||
@@ -1389,6 +1389,22 @@ _base_build_zero_len_sge_ieee(struct MPT3SAS_ADAPTER *ioc, void *paddr)
|
||||
_base_add_sg_single_ieee(paddr, sgl_flags, 0, 0, -1);
|
||||
}
|
||||
|
||||
static inline int _base_scsi_dma_map(struct scsi_cmnd *cmd)
|
||||
{
|
||||
/*
|
||||
* Some firmware versions byte-swap the REPORT ZONES command reply from
|
||||
* ATA-ZAC devices by directly accessing in the host buffer. This does
|
||||
* not respect the default command DMA direction and causes IOMMU page
|
||||
* faults on some architectures with an IOMMU enforcing write mappings
|
||||
* (e.g. AMD hosts). Avoid such issue by making the report zones buffer
|
||||
* mapping bi-directional.
|
||||
*/
|
||||
if (cmd->cmnd[0] == ZBC_IN && cmd->cmnd[1] == ZI_REPORT_ZONES)
|
||||
cmd->sc_data_direction = DMA_BIDIRECTIONAL;
|
||||
|
||||
return scsi_dma_map(cmd);
|
||||
}
|
||||
|
||||
/**
|
||||
* _base_build_sg_scmd - main sg creation routine
|
||||
* @ioc: per adapter object
|
||||
@@ -1433,7 +1449,7 @@ _base_build_sg_scmd(struct MPT3SAS_ADAPTER *ioc,
|
||||
sgl_flags = sgl_flags << MPI2_SGE_FLAGS_SHIFT;
|
||||
|
||||
sg_scmd = scsi_sglist(scmd);
|
||||
sges_left = scsi_dma_map(scmd);
|
||||
sges_left = _base_scsi_dma_map(scmd);
|
||||
if (sges_left < 0) {
|
||||
sdev_printk(KERN_ERR, scmd->device,
|
||||
"pci_map_sg failed: request for %d bytes!\n",
|
||||
@@ -1572,7 +1588,7 @@ _base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc,
|
||||
MPI2_IEEE_SGE_FLAGS_SYSTEM_ADDR;
|
||||
|
||||
sg_scmd = scsi_sglist(scmd);
|
||||
sges_left = scsi_dma_map(scmd);
|
||||
sges_left = _base_scsi_dma_map(scmd);
|
||||
if (sges_left < 0) {
|
||||
sdev_printk(KERN_ERR, scmd->device,
|
||||
"pci_map_sg failed: request for %d bytes!\n",
|
||||
|
||||
@@ -686,7 +686,7 @@ spi_dv_device_echo_buffer(struct scsi_device *sdev, u8 *buffer,
|
||||
if (result || !scsi_device_online(sdev)) {
|
||||
|
||||
scsi_device_set_state(sdev, SDEV_QUIESCE);
|
||||
if (scsi_sense_valid(&sshdr)
|
||||
if (result > 0 && scsi_sense_valid(&sshdr)
|
||||
&& sshdr.sense_key == ILLEGAL_REQUEST
|
||||
/* INVALID FIELD IN CDB */
|
||||
&& sshdr.asc == 0x24 && sshdr.ascq == 0x00)
|
||||
|
||||
@@ -830,7 +830,7 @@ static u32 clkfactor_f6_resolve(u32 v)
|
||||
case SSB_CHIPCO_CLK_F6_7:
|
||||
return 7;
|
||||
}
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Calculate the speed the backplane would run at a given set of clockcontrol values */
|
||||
|
||||
@@ -339,9 +339,9 @@ int ks_wlan_hw_tx(struct ks_wlan_private *priv, void *p, unsigned long size,
|
||||
priv->hostt.qtail = (priv->hostt.qtail + 1) % SME_EVENT_BUFF_SIZE;
|
||||
|
||||
DPRINTK(4, "event=%04X\n", hdr->event);
|
||||
spin_lock(&priv->tx_dev.tx_dev_lock);
|
||||
spin_lock_bh(&priv->tx_dev.tx_dev_lock);
|
||||
result = enqueue_txdev(priv, p, size, complete_handler, skb);
|
||||
spin_unlock(&priv->tx_dev.tx_dev_lock);
|
||||
spin_unlock_bh(&priv->tx_dev.tx_dev_lock);
|
||||
|
||||
if (cnt_txqbody(priv) > 0)
|
||||
queue_delayed_work(priv->wq, &priv->rw_dwork, 0);
|
||||
|
||||
@@ -1818,6 +1818,9 @@ static const struct usb_device_id acm_ids[] = {
|
||||
{ USB_DEVICE(0x11ca, 0x0201), /* VeriFone Mx870 Gadget Serial */
|
||||
.driver_info = SINGLE_RX_URB,
|
||||
},
|
||||
{ USB_DEVICE(0x1901, 0x0006), /* GE Healthcare Patient Monitor UI Controller */
|
||||
.driver_info = DISABLE_ECHO, /* DISABLE ECHO in termios flag */
|
||||
},
|
||||
{ USB_DEVICE(0x1965, 0x0018), /* Uniden UBC125XLT */
|
||||
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
|
||||
},
|
||||
|
||||
@@ -668,6 +668,7 @@ static int add_power_attributes(struct device *dev)
|
||||
|
||||
static void remove_power_attributes(struct device *dev)
|
||||
{
|
||||
sysfs_unmerge_group(&dev->kobj, &usb3_hardware_lpm_attr_group);
|
||||
sysfs_unmerge_group(&dev->kobj, &usb2_hardware_lpm_attr_group);
|
||||
sysfs_unmerge_group(&dev->kobj, &power_attr_group);
|
||||
}
|
||||
|
||||
@@ -394,6 +394,13 @@ static void dwc3_free_event_buffers(struct dwc3 *dwc)
|
||||
static int dwc3_alloc_event_buffers(struct dwc3 *dwc, unsigned length)
|
||||
{
|
||||
struct dwc3_event_buffer *evt;
|
||||
unsigned int hw_mode;
|
||||
|
||||
hw_mode = DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0);
|
||||
if (hw_mode == DWC3_GHWPARAMS0_MODE_HOST) {
|
||||
dwc->ev_buf = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
evt = dwc3_alloc_one_event_buffer(dwc, length);
|
||||
if (IS_ERR(evt)) {
|
||||
@@ -417,6 +424,9 @@ int dwc3_event_buffers_setup(struct dwc3 *dwc)
|
||||
{
|
||||
struct dwc3_event_buffer *evt;
|
||||
|
||||
if (!dwc->ev_buf)
|
||||
return 0;
|
||||
|
||||
evt = dwc->ev_buf;
|
||||
evt->lpos = 0;
|
||||
dwc3_writel(dwc->regs, DWC3_GEVNTADRLO(0),
|
||||
@@ -435,6 +445,17 @@ int dwc3_event_buffers_setup(struct dwc3 *dwc)
|
||||
static void dwc3_event_buffers_cleanup(struct dwc3 *dwc)
|
||||
{
|
||||
struct dwc3_event_buffer *evt;
|
||||
u32 reg;
|
||||
|
||||
if (!dwc->ev_buf)
|
||||
return;
|
||||
/*
|
||||
* Exynos platforms may not be able to access event buffer if the
|
||||
* controller failed to halt on dwc3_core_exit().
|
||||
*/
|
||||
reg = dwc3_readl(dwc->regs, DWC3_DSTS);
|
||||
if (!(reg & DWC3_DSTS_DEVCTRLHLT))
|
||||
return;
|
||||
|
||||
evt = dwc->ev_buf;
|
||||
|
||||
|
||||
@@ -534,11 +534,13 @@ static int dwc3_omap_probe(struct platform_device *pdev)
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to request IRQ #%d --> %d\n",
|
||||
omap->irq, ret);
|
||||
goto err1;
|
||||
goto err2;
|
||||
}
|
||||
dwc3_omap_enable_irqs(omap);
|
||||
return 0;
|
||||
|
||||
err2:
|
||||
of_platform_depopulate(dev);
|
||||
err1:
|
||||
pm_runtime_put_sync(dev);
|
||||
pm_runtime_disable(dev);
|
||||
|
||||
@@ -223,10 +223,8 @@ static int st_dwc3_probe(struct platform_device *pdev)
|
||||
dwc3_data->regmap = regmap;
|
||||
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "syscfg-reg");
|
||||
if (!res) {
|
||||
ret = -ENXIO;
|
||||
goto undo_platform_dev_alloc;
|
||||
}
|
||||
if (!res)
|
||||
return -ENXIO;
|
||||
|
||||
dwc3_data->syscfg_reg_off = res->start;
|
||||
|
||||
@@ -237,8 +235,7 @@ static int st_dwc3_probe(struct platform_device *pdev)
|
||||
devm_reset_control_get_exclusive(dev, "powerdown");
|
||||
if (IS_ERR(dwc3_data->rstc_pwrdn)) {
|
||||
dev_err(&pdev->dev, "could not get power controller\n");
|
||||
ret = PTR_ERR(dwc3_data->rstc_pwrdn);
|
||||
goto undo_platform_dev_alloc;
|
||||
return PTR_ERR(dwc3_data->rstc_pwrdn);
|
||||
}
|
||||
|
||||
/* Manage PowerDown */
|
||||
@@ -259,24 +256,25 @@ static int st_dwc3_probe(struct platform_device *pdev)
|
||||
if (!child) {
|
||||
dev_err(&pdev->dev, "failed to find dwc3 core node\n");
|
||||
ret = -ENODEV;
|
||||
goto undo_softreset;
|
||||
goto err_node_put;
|
||||
}
|
||||
|
||||
/* Allocate and initialize the core */
|
||||
ret = of_platform_populate(node, NULL, NULL, dev);
|
||||
if (ret) {
|
||||
dev_err(dev, "failed to add dwc3 core\n");
|
||||
goto undo_softreset;
|
||||
goto err_node_put;
|
||||
}
|
||||
|
||||
child_pdev = of_find_device_by_node(child);
|
||||
if (!child_pdev) {
|
||||
dev_err(dev, "failed to find dwc3 core device\n");
|
||||
ret = -ENODEV;
|
||||
goto undo_softreset;
|
||||
goto depopulate;
|
||||
}
|
||||
|
||||
dwc3_data->dr_mode = usb_get_dr_mode(&child_pdev->dev);
|
||||
of_node_put(child);
|
||||
|
||||
/*
|
||||
* Configure the USB port as device or host according to the static
|
||||
@@ -287,6 +285,7 @@ static int st_dwc3_probe(struct platform_device *pdev)
|
||||
ret = st_dwc3_drd_init(dwc3_data);
|
||||
if (ret) {
|
||||
dev_err(dev, "drd initialisation failed\n");
|
||||
of_platform_depopulate(dev);
|
||||
goto undo_softreset;
|
||||
}
|
||||
|
||||
@@ -296,12 +295,14 @@ static int st_dwc3_probe(struct platform_device *pdev)
|
||||
platform_set_drvdata(pdev, dwc3_data);
|
||||
return 0;
|
||||
|
||||
depopulate:
|
||||
of_platform_depopulate(dev);
|
||||
err_node_put:
|
||||
of_node_put(child);
|
||||
undo_softreset:
|
||||
reset_control_assert(dwc3_data->rstc_rst);
|
||||
undo_powerdown:
|
||||
reset_control_assert(dwc3_data->rstc_pwrdn);
|
||||
undo_platform_dev_alloc:
|
||||
platform_device_put(pdev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -2496,7 +2496,7 @@ static int fsl_udc_probe(struct platform_device *pdev)
|
||||
/* setup the udc->eps[] for non-control endpoints and link
|
||||
* to gadget.ep_list */
|
||||
for (i = 1; i < (int)(udc_controller->max_ep / 2); i++) {
|
||||
char name[14];
|
||||
char name[16];
|
||||
|
||||
sprintf(name, "ep%dout", i);
|
||||
struct_ep_setup(udc_controller, i * 2, name, 1);
|
||||
|
||||
@@ -622,6 +622,8 @@ static void option_instat_callback(struct urb *urb);
|
||||
|
||||
/* MeiG Smart Technology products */
|
||||
#define MEIGSMART_VENDOR_ID 0x2dee
|
||||
/* MeiG Smart SRM825L based on Qualcomm 315 */
|
||||
#define MEIGSMART_PRODUCT_SRM825L 0x4d22
|
||||
/* MeiG Smart SLM320 based on UNISOC UIS8910 */
|
||||
#define MEIGSMART_PRODUCT_SLM320 0x4d41
|
||||
|
||||
@@ -2368,6 +2370,9 @@ static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SLM320, 0xff, 0, 0) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x30) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x40) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(MEIGSMART_VENDOR_ID, MEIGSMART_PRODUCT_SRM825L, 0xff, 0xff, 0x60) },
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
MODULE_DEVICE_TABLE(usb, option_ids);
|
||||
|
||||
@@ -158,53 +158,62 @@ static int tweak_set_configuration_cmd(struct urb *urb)
|
||||
if (err && err != -ENODEV)
|
||||
dev_err(&sdev->udev->dev, "can't set config #%d, error %d\n",
|
||||
config, err);
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
static int tweak_reset_device_cmd(struct urb *urb)
|
||||
{
|
||||
struct stub_priv *priv = (struct stub_priv *) urb->context;
|
||||
struct stub_device *sdev = priv->sdev;
|
||||
int err;
|
||||
|
||||
dev_info(&urb->dev->dev, "usb_queue_reset_device\n");
|
||||
|
||||
if (usb_lock_device_for_reset(sdev->udev, NULL) < 0) {
|
||||
err = usb_lock_device_for_reset(sdev->udev, NULL);
|
||||
if (err < 0) {
|
||||
dev_err(&urb->dev->dev, "could not obtain lock to reset device\n");
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
usb_reset_device(sdev->udev);
|
||||
err = usb_reset_device(sdev->udev);
|
||||
usb_unlock_device(sdev->udev);
|
||||
|
||||
return 0;
|
||||
return err;
|
||||
}
|
||||
|
||||
/*
|
||||
* clear_halt, set_interface, and set_configuration require special tricks.
|
||||
* Returns 1 if request was tweaked, 0 otherwise.
|
||||
*/
|
||||
static void tweak_special_requests(struct urb *urb)
|
||||
static int tweak_special_requests(struct urb *urb)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (!urb || !urb->setup_packet)
|
||||
return;
|
||||
return 0;
|
||||
|
||||
if (usb_pipetype(urb->pipe) != PIPE_CONTROL)
|
||||
return;
|
||||
return 0;
|
||||
|
||||
if (is_clear_halt_cmd(urb))
|
||||
/* tweak clear_halt */
|
||||
tweak_clear_halt_cmd(urb);
|
||||
err = tweak_clear_halt_cmd(urb);
|
||||
|
||||
else if (is_set_interface_cmd(urb))
|
||||
/* tweak set_interface */
|
||||
tweak_set_interface_cmd(urb);
|
||||
err = tweak_set_interface_cmd(urb);
|
||||
|
||||
else if (is_set_configuration_cmd(urb))
|
||||
/* tweak set_configuration */
|
||||
tweak_set_configuration_cmd(urb);
|
||||
err = tweak_set_configuration_cmd(urb);
|
||||
|
||||
else if (is_reset_device_cmd(urb))
|
||||
tweak_reset_device_cmd(urb);
|
||||
else
|
||||
err = tweak_reset_device_cmd(urb);
|
||||
else {
|
||||
usbip_dbg_stub_rx("no need to tweak\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return !err;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -485,6 +494,7 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
|
||||
int support_sg = 1;
|
||||
int np = 0;
|
||||
int ret, i;
|
||||
int is_tweaked;
|
||||
|
||||
if (pipe == -1)
|
||||
return;
|
||||
@@ -597,8 +607,11 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
|
||||
priv->urbs[i]->pipe = pipe;
|
||||
priv->urbs[i]->complete = stub_complete;
|
||||
|
||||
/* no need to submit an intercepted request, but harmless? */
|
||||
tweak_special_requests(priv->urbs[i]);
|
||||
/*
|
||||
* all URBs belong to a single PDU, so a global is_tweaked flag is
|
||||
* enough
|
||||
*/
|
||||
is_tweaked = tweak_special_requests(priv->urbs[i]);
|
||||
|
||||
masking_bogus_flags(priv->urbs[i]);
|
||||
}
|
||||
@@ -611,6 +624,7 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
|
||||
|
||||
/* urb is now ready to submit */
|
||||
for (i = 0; i < priv->num_urbs; i++) {
|
||||
if (!is_tweaked) {
|
||||
ret = usb_submit_urb(priv->urbs[i], GFP_KERNEL);
|
||||
|
||||
if (ret == 0)
|
||||
@@ -628,6 +642,15 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
|
||||
usbip_event_add(ud, SDEV_EVENT_ERROR_SUBMIT);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* An identical URB was already submitted in
|
||||
* tweak_special_requests(). Skip submitting this URB to not
|
||||
* duplicate the request.
|
||||
*/
|
||||
priv->urbs[i]->status = 0;
|
||||
stub_complete(priv->urbs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
usbip_dbg_stub_rx("Leave\n");
|
||||
|
||||
@@ -2710,6 +2710,34 @@ static void fbcon_set_all_vcs(struct fb_info *info)
|
||||
fbcon_modechanged(info);
|
||||
}
|
||||
|
||||
/* let fbcon check if it supports a new screen resolution */
|
||||
int fbcon_modechange_possible(struct fb_info *info, struct fb_var_screeninfo *var)
|
||||
{
|
||||
struct fbcon_ops *ops = info->fbcon_par;
|
||||
struct vc_data *vc;
|
||||
unsigned int i;
|
||||
|
||||
WARN_CONSOLE_UNLOCKED();
|
||||
|
||||
if (!ops)
|
||||
return 0;
|
||||
|
||||
/* prevent setting a screen size which is smaller than font size */
|
||||
for (i = first_fb_vc; i <= last_fb_vc; i++) {
|
||||
vc = vc_cons[i].d;
|
||||
if (!vc || vc->vc_mode != KD_TEXT ||
|
||||
registered_fb[con2fb_map[i]] != info)
|
||||
continue;
|
||||
|
||||
if (vc->vc_font.width > FBCON_SWAP(var->rotate, var->xres, var->yres) ||
|
||||
vc->vc_font.height > FBCON_SWAP(var->rotate, var->yres, var->xres))
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fbcon_modechange_possible);
|
||||
|
||||
static int fbcon_mode_deleted(struct fb_info *info,
|
||||
struct fb_videomode *mode)
|
||||
{
|
||||
|
||||
@@ -1019,6 +1019,17 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
|
||||
if (ret)
|
||||
goto done;
|
||||
|
||||
/* verify that virtual resolution >= physical resolution */
|
||||
if (var->xres_virtual < var->xres ||
|
||||
var->yres_virtual < var->yres) {
|
||||
pr_warn("WARNING: fbcon: Driver '%s' missed to adjust virtual screen size (%ux%u vs. %ux%u)\n",
|
||||
info->fix.id,
|
||||
var->xres_virtual, var->yres_virtual,
|
||||
var->xres, var->yres);
|
||||
ret = -EINVAL;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_NOW) {
|
||||
struct fb_var_screeninfo old_var;
|
||||
struct fb_videomode mode;
|
||||
@@ -1148,9 +1159,12 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||
console_unlock();
|
||||
return -ENODEV;
|
||||
}
|
||||
ret = fbcon_modechange_possible(info, &var);
|
||||
if (!ret) {
|
||||
info->flags |= FBINFO_MISC_USEREVENT;
|
||||
ret = fb_set_var(info, &var);
|
||||
info->flags &= ~FBINFO_MISC_USEREVENT;
|
||||
}
|
||||
unlock_fb_info(info);
|
||||
console_unlock();
|
||||
if (!ret && copy_to_user(argp, &var, sizeof(var)))
|
||||
|
||||
@@ -324,7 +324,7 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm)
|
||||
else
|
||||
executable_stack = EXSTACK_DEFAULT;
|
||||
|
||||
if (stack_size == 0) {
|
||||
if (stack_size == 0 && interp_params.flags & ELF_FDPIC_FLAG_PRESENT) {
|
||||
stack_size = interp_params.stack_size;
|
||||
if (interp_params.flags & ELF_FDPIC_FLAG_EXEC_STACK)
|
||||
executable_stack = EXSTACK_ENABLE_X;
|
||||
|
||||
216
fs/binfmt_misc.c
216
fs/binfmt_misc.c
@@ -58,12 +58,11 @@ typedef struct {
|
||||
char *name;
|
||||
struct dentry *dentry;
|
||||
struct file *interp_file;
|
||||
refcount_t users; /* sync removal with load_misc_binary() */
|
||||
} Node;
|
||||
|
||||
static DEFINE_RWLOCK(entries_lock);
|
||||
static struct file_system_type bm_fs_type;
|
||||
static struct vfsmount *bm_mnt;
|
||||
static int entry_count;
|
||||
|
||||
/*
|
||||
* Max length of the register string. Determined by:
|
||||
@@ -80,19 +79,23 @@ static int entry_count;
|
||||
*/
|
||||
#define MAX_REGISTER_LENGTH 1920
|
||||
|
||||
/*
|
||||
* Check if we support the binfmt
|
||||
* if we do, return the node, else NULL
|
||||
* locking is done in load_misc_binary
|
||||
/**
|
||||
* search_binfmt_handler - search for a binary handler for @bprm
|
||||
* @misc: handle to binfmt_misc instance
|
||||
* @bprm: binary for which we are looking for a handler
|
||||
*
|
||||
* Search for a binary type handler for @bprm in the list of registered binary
|
||||
* type handlers.
|
||||
*
|
||||
* Return: binary type list entry on success, NULL on failure
|
||||
*/
|
||||
static Node *check_file(struct linux_binprm *bprm)
|
||||
static Node *search_binfmt_handler(struct linux_binprm *bprm)
|
||||
{
|
||||
char *p = strrchr(bprm->interp, '.');
|
||||
struct list_head *l;
|
||||
Node *e;
|
||||
|
||||
/* Walk all the registered handlers. */
|
||||
list_for_each(l, &entries) {
|
||||
Node *e = list_entry(l, Node, list);
|
||||
list_for_each_entry(e, &entries, list) {
|
||||
char *s;
|
||||
int j;
|
||||
|
||||
@@ -121,9 +124,49 @@ static Node *check_file(struct linux_binprm *bprm)
|
||||
if (j == e->size)
|
||||
return e;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_binfmt_handler - try to find a binary type handler
|
||||
* @misc: handle to binfmt_misc instance
|
||||
* @bprm: binary for which we are looking for a handler
|
||||
*
|
||||
* Try to find a binfmt handler for the binary type. If one is found take a
|
||||
* reference to protect against removal via bm_{entry,status}_write().
|
||||
*
|
||||
* Return: binary type list entry on success, NULL on failure
|
||||
*/
|
||||
static Node *get_binfmt_handler(struct linux_binprm *bprm)
|
||||
{
|
||||
Node *e;
|
||||
|
||||
read_lock(&entries_lock);
|
||||
e = search_binfmt_handler(bprm);
|
||||
if (e)
|
||||
refcount_inc(&e->users);
|
||||
read_unlock(&entries_lock);
|
||||
return e;
|
||||
}
|
||||
|
||||
/**
|
||||
* put_binfmt_handler - put binary handler node
|
||||
* @e: node to put
|
||||
*
|
||||
* Free node syncing with load_misc_binary() and defer final free to
|
||||
* load_misc_binary() in case it is using the binary type handler we were
|
||||
* requested to remove.
|
||||
*/
|
||||
static void put_binfmt_handler(Node *e)
|
||||
{
|
||||
if (refcount_dec_and_test(&e->users)) {
|
||||
if (e->flags & MISC_FMT_OPEN_FILE)
|
||||
filp_close(e->interp_file, NULL);
|
||||
kfree(e);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* the loader itself
|
||||
*/
|
||||
@@ -138,12 +181,7 @@ static int load_misc_binary(struct linux_binprm *bprm)
|
||||
if (!enabled)
|
||||
return retval;
|
||||
|
||||
/* to keep locking time low, we copy the interpreter string */
|
||||
read_lock(&entries_lock);
|
||||
fmt = check_file(bprm);
|
||||
if (fmt)
|
||||
dget(fmt->dentry);
|
||||
read_unlock(&entries_lock);
|
||||
fmt = get_binfmt_handler(bprm);
|
||||
if (!fmt)
|
||||
return retval;
|
||||
|
||||
@@ -237,7 +275,16 @@ static int load_misc_binary(struct linux_binprm *bprm)
|
||||
goto error;
|
||||
|
||||
ret:
|
||||
dput(fmt->dentry);
|
||||
|
||||
/*
|
||||
* If we actually put the node here all concurrent calls to
|
||||
* load_misc_binary() will have finished. We also know
|
||||
* that for the refcount to be zero ->evict_inode() must have removed
|
||||
* the node to be deleted from the list. All that is left for us is to
|
||||
* close and free.
|
||||
*/
|
||||
put_binfmt_handler(fmt);
|
||||
|
||||
return retval;
|
||||
error:
|
||||
if (fd_binary > 0)
|
||||
@@ -598,30 +645,90 @@ static struct inode *bm_get_inode(struct super_block *sb, int mode)
|
||||
return inode;
|
||||
}
|
||||
|
||||
/**
|
||||
* bm_evict_inode - cleanup data associated with @inode
|
||||
* @inode: inode to which the data is attached
|
||||
*
|
||||
* Cleanup the binary type handler data associated with @inode if a binary type
|
||||
* entry is removed or the filesystem is unmounted and the super block is
|
||||
* shutdown.
|
||||
*
|
||||
* If the ->evict call was not caused by a super block shutdown but by a write
|
||||
* to remove the entry or all entries via bm_{entry,status}_write() the entry
|
||||
* will have already been removed from the list. We keep the list_empty() check
|
||||
* to make that explicit.
|
||||
*/
|
||||
static void bm_evict_inode(struct inode *inode)
|
||||
{
|
||||
Node *e = inode->i_private;
|
||||
|
||||
if (e && e->flags & MISC_FMT_OPEN_FILE)
|
||||
filp_close(e->interp_file, NULL);
|
||||
|
||||
clear_inode(inode);
|
||||
kfree(e);
|
||||
|
||||
if (e) {
|
||||
write_lock(&entries_lock);
|
||||
if (!list_empty(&e->list))
|
||||
list_del_init(&e->list);
|
||||
write_unlock(&entries_lock);
|
||||
put_binfmt_handler(e);
|
||||
}
|
||||
}
|
||||
|
||||
static void kill_node(Node *e)
|
||||
/**
|
||||
* unlink_binfmt_dentry - remove the dentry for the binary type handler
|
||||
* @dentry: dentry associated with the binary type handler
|
||||
*
|
||||
* Do the actual filesystem work to remove a dentry for a registered binary
|
||||
* type handler. Since binfmt_misc only allows simple files to be created
|
||||
* directly under the root dentry of the filesystem we ensure that we are
|
||||
* indeed passed a dentry directly beneath the root dentry, that the inode
|
||||
* associated with the root dentry is locked, and that it is a regular file we
|
||||
* are asked to remove.
|
||||
*/
|
||||
static void unlink_binfmt_dentry(struct dentry *dentry)
|
||||
{
|
||||
struct dentry *dentry;
|
||||
struct dentry *parent = dentry->d_parent;
|
||||
struct inode *inode, *parent_inode;
|
||||
|
||||
/* All entries are immediate descendants of the root dentry. */
|
||||
if (WARN_ON_ONCE(dentry->d_sb->s_root != parent))
|
||||
return;
|
||||
|
||||
/* We only expect to be called on regular files. */
|
||||
inode = d_inode(dentry);
|
||||
if (WARN_ON_ONCE(!S_ISREG(inode->i_mode)))
|
||||
return;
|
||||
|
||||
/* The parent inode must be locked. */
|
||||
parent_inode = d_inode(parent);
|
||||
if (WARN_ON_ONCE(!inode_is_locked(parent_inode)))
|
||||
return;
|
||||
|
||||
if (simple_positive(dentry)) {
|
||||
dget(dentry);
|
||||
simple_unlink(parent_inode, dentry);
|
||||
d_delete(dentry);
|
||||
dput(dentry);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* remove_binfmt_handler - remove a binary type handler
|
||||
* @misc: handle to binfmt_misc instance
|
||||
* @e: binary type handler to remove
|
||||
*
|
||||
* Remove a binary type handler from the list of binary type handlers and
|
||||
* remove its associated dentry. This is called from
|
||||
* binfmt_{entry,status}_write(). In the future, we might want to think about
|
||||
* adding a proper ->unlink() method to binfmt_misc instead of forcing caller's
|
||||
* to use writes to files in order to delete binary type handlers. But it has
|
||||
* worked for so long that it's not a pressing issue.
|
||||
*/
|
||||
static void remove_binfmt_handler(Node *e)
|
||||
{
|
||||
write_lock(&entries_lock);
|
||||
list_del_init(&e->list);
|
||||
write_unlock(&entries_lock);
|
||||
|
||||
dentry = e->dentry;
|
||||
drop_nlink(d_inode(dentry));
|
||||
d_drop(dentry);
|
||||
dput(dentry);
|
||||
simple_release_fs(&bm_mnt, &entry_count);
|
||||
unlink_binfmt_dentry(e->dentry);
|
||||
}
|
||||
|
||||
/* /<entry> */
|
||||
@@ -648,8 +755,8 @@ bm_entry_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
|
||||
static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct dentry *root;
|
||||
Node *e = file_inode(file)->i_private;
|
||||
struct inode *inode = file_inode(file);
|
||||
Node *e = inode->i_private;
|
||||
int res = parse_command(buffer, count);
|
||||
|
||||
switch (res) {
|
||||
@@ -663,13 +770,22 @@ static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
|
||||
break;
|
||||
case 3:
|
||||
/* Delete this handler. */
|
||||
root = file_inode(file)->i_sb->s_root;
|
||||
inode_lock(d_inode(root));
|
||||
inode = d_inode(inode->i_sb->s_root);
|
||||
inode_lock(inode);
|
||||
|
||||
/*
|
||||
* In order to add new element or remove elements from the list
|
||||
* via bm_{entry,register,status}_write() inode_lock() on the
|
||||
* root inode must be held.
|
||||
* The lock is exclusive ensuring that the list can't be
|
||||
* modified. Only load_misc_binary() can access but does so
|
||||
* read-only. So we only need to take the write lock when we
|
||||
* actually remove the entry from the list.
|
||||
*/
|
||||
if (!list_empty(&e->list))
|
||||
kill_node(e);
|
||||
remove_binfmt_handler(e);
|
||||
|
||||
inode_unlock(d_inode(root));
|
||||
inode_unlock(inode);
|
||||
break;
|
||||
default:
|
||||
return res;
|
||||
@@ -728,13 +844,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
|
||||
if (!inode)
|
||||
goto out2;
|
||||
|
||||
err = simple_pin_fs(&bm_fs_type, &bm_mnt, &entry_count);
|
||||
if (err) {
|
||||
iput(inode);
|
||||
inode = NULL;
|
||||
goto out2;
|
||||
}
|
||||
|
||||
refcount_set(&e->users, 1);
|
||||
e->dentry = dget(dentry);
|
||||
inode->i_private = e;
|
||||
inode->i_fop = &bm_entry_operations;
|
||||
@@ -778,7 +888,8 @@ static ssize_t bm_status_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
int res = parse_command(buffer, count);
|
||||
struct dentry *root;
|
||||
Node *e, *next;
|
||||
struct inode *inode;
|
||||
|
||||
switch (res) {
|
||||
case 1:
|
||||
@@ -791,13 +902,22 @@ static ssize_t bm_status_write(struct file *file, const char __user *buffer,
|
||||
break;
|
||||
case 3:
|
||||
/* Delete all handlers. */
|
||||
root = file_inode(file)->i_sb->s_root;
|
||||
inode_lock(d_inode(root));
|
||||
inode = d_inode(file_inode(file)->i_sb->s_root);
|
||||
inode_lock(inode);
|
||||
|
||||
while (!list_empty(&entries))
|
||||
kill_node(list_first_entry(&entries, Node, list));
|
||||
/*
|
||||
* In order to add new element or remove elements from the list
|
||||
* via bm_{entry,register,status}_write() inode_lock() on the
|
||||
* root inode must be held.
|
||||
* The lock is exclusive ensuring that the list can't be
|
||||
* modified. Only load_misc_binary() can access but does so
|
||||
* read-only. So we only need to take the write lock when we
|
||||
* actually remove the entry from the list.
|
||||
*/
|
||||
list_for_each_entry_safe(e, next, &entries, list)
|
||||
remove_binfmt_handler(e);
|
||||
|
||||
inode_unlock(d_inode(root));
|
||||
inode_unlock(inode);
|
||||
break;
|
||||
default:
|
||||
return res;
|
||||
|
||||
@@ -1018,7 +1018,7 @@ static void btrfs_release_delayed_inode(struct btrfs_delayed_node *delayed_node)
|
||||
|
||||
if (delayed_node &&
|
||||
test_bit(BTRFS_DELAYED_NODE_INODE_DIRTY, &delayed_node->flags)) {
|
||||
BUG_ON(!delayed_node->root);
|
||||
ASSERT(delayed_node->root);
|
||||
clear_bit(BTRFS_DELAYED_NODE_INODE_DIRTY, &delayed_node->flags);
|
||||
delayed_node->count--;
|
||||
|
||||
|
||||
@@ -8678,7 +8678,15 @@ static noinline void reada_walk_down(struct btrfs_trans_handle *trans,
|
||||
/* We don't care about errors in readahead. */
|
||||
if (ret < 0)
|
||||
continue;
|
||||
BUG_ON(refs == 0);
|
||||
|
||||
/*
|
||||
* This could be racey, it's conceivable that we raced and end
|
||||
* up with a bogus refs count, if that's the case just skip, if
|
||||
* we are actually corrupt we will notice when we look up
|
||||
* everything again with our locks.
|
||||
*/
|
||||
if (refs == 0)
|
||||
continue;
|
||||
|
||||
if (wc->stage == DROP_REFERENCE) {
|
||||
if (refs == 1)
|
||||
@@ -8737,7 +8745,7 @@ static noinline int walk_down_proc(struct btrfs_trans_handle *trans,
|
||||
if (lookup_info &&
|
||||
((wc->stage == DROP_REFERENCE && wc->refs[level] != 1) ||
|
||||
(wc->stage == UPDATE_BACKREF && !(wc->flags[level] & flag)))) {
|
||||
BUG_ON(!path->locks[level]);
|
||||
ASSERT(path->locks[level]);
|
||||
ret = btrfs_lookup_extent_info(trans, fs_info,
|
||||
eb->start, level, 1,
|
||||
&wc->refs[level],
|
||||
@@ -8745,7 +8753,11 @@ static noinline int walk_down_proc(struct btrfs_trans_handle *trans,
|
||||
BUG_ON(ret == -ENOMEM);
|
||||
if (ret)
|
||||
return ret;
|
||||
BUG_ON(wc->refs[level] == 0);
|
||||
if (unlikely(wc->refs[level] == 0)) {
|
||||
btrfs_err(fs_info, "bytenr %llu has 0 references, expect > 0",
|
||||
eb->start);
|
||||
return -EUCLEAN;
|
||||
}
|
||||
}
|
||||
|
||||
if (wc->stage == DROP_REFERENCE) {
|
||||
@@ -8761,7 +8773,7 @@ static noinline int walk_down_proc(struct btrfs_trans_handle *trans,
|
||||
|
||||
/* wc->stage == UPDATE_BACKREF */
|
||||
if (!(wc->flags[level] & flag)) {
|
||||
BUG_ON(!path->locks[level]);
|
||||
ASSERT(path->locks[level]);
|
||||
ret = btrfs_inc_ref(trans, root, eb, 1);
|
||||
BUG_ON(ret); /* -ENOMEM */
|
||||
ret = btrfs_dec_ref(trans, root, eb, 0);
|
||||
@@ -8850,8 +8862,9 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
||||
goto out_unlock;
|
||||
|
||||
if (unlikely(wc->refs[level - 1] == 0)) {
|
||||
btrfs_err(fs_info, "Missing references.");
|
||||
ret = -EIO;
|
||||
btrfs_err(fs_info, "bytenr %llu has 0 references, expect > 0",
|
||||
bytenr);
|
||||
ret = -EUCLEAN;
|
||||
goto out_unlock;
|
||||
}
|
||||
*lookup_info = 0;
|
||||
@@ -9018,7 +9031,12 @@ static noinline int walk_up_proc(struct btrfs_trans_handle *trans,
|
||||
path->locks[level] = 0;
|
||||
return ret;
|
||||
}
|
||||
BUG_ON(wc->refs[level] == 0);
|
||||
if (unlikely(wc->refs[level] == 0)) {
|
||||
btrfs_tree_unlock_rw(eb, path->locks[level]);
|
||||
btrfs_err(fs_info, "bytenr %llu has 0 references, expect > 0",
|
||||
eb->start);
|
||||
return -EUCLEAN;
|
||||
}
|
||||
if (wc->refs[level] == 1) {
|
||||
btrfs_tree_unlock_rw(eb, path->locks[level]);
|
||||
path->locks[level] = 0;
|
||||
|
||||
@@ -1733,7 +1733,7 @@ static void bitmap_clear_bits(struct btrfs_free_space_ctl *ctl,
|
||||
ctl->free_space -= bytes;
|
||||
}
|
||||
|
||||
static void bitmap_set_bits(struct btrfs_free_space_ctl *ctl,
|
||||
static void btrfs_bitmap_set_bits(struct btrfs_free_space_ctl *ctl,
|
||||
struct btrfs_free_space *info, u64 offset,
|
||||
u64 bytes)
|
||||
{
|
||||
@@ -1992,7 +1992,7 @@ static u64 add_bytes_to_bitmap(struct btrfs_free_space_ctl *ctl,
|
||||
|
||||
bytes_to_set = min(end - offset, bytes);
|
||||
|
||||
bitmap_set_bits(ctl, info, offset, bytes_to_set);
|
||||
btrfs_bitmap_set_bits(ctl, info, offset, bytes_to_set);
|
||||
|
||||
/*
|
||||
* We set some bytes, we have no idea what the max extent size is
|
||||
|
||||
@@ -5923,7 +5923,7 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry)
|
||||
struct inode *inode;
|
||||
struct btrfs_root *root = BTRFS_I(dir)->root;
|
||||
struct btrfs_root *sub_root = root;
|
||||
struct btrfs_key location;
|
||||
struct btrfs_key location = { 0 };
|
||||
u8 di_type = 0;
|
||||
int index;
|
||||
int ret = 0;
|
||||
|
||||
@@ -1953,9 +1953,14 @@ static noinline int may_destroy_subvol(struct btrfs_root *root)
|
||||
key.offset = (u64)-1;
|
||||
|
||||
ret = btrfs_search_slot(NULL, fs_info->tree_root, &key, path, 0, 0);
|
||||
if (ret < 0)
|
||||
if (ret == 0) {
|
||||
/*
|
||||
* Key with offset -1 found, there would have to exist a root
|
||||
* with such id, but this is out of valid range.
|
||||
*/
|
||||
ret = -EUCLEAN;
|
||||
goto out;
|
||||
BUG_ON(ret == 0);
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
if (path->slots[0] > 0) {
|
||||
|
||||
@@ -1952,8 +1952,6 @@ btrfs_qgroup_account_extent(struct btrfs_trans_handle *trans,
|
||||
if (nr_old_roots == 0 && nr_new_roots == 0)
|
||||
goto out_free;
|
||||
|
||||
BUG_ON(!fs_info->quota_root);
|
||||
|
||||
trace_btrfs_qgroup_account_extent(fs_info, bytenr, num_bytes,
|
||||
nr_old_roots, nr_new_roots);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user