Fantu
Repos
39
Followers
7

Events

scsi: ufs: mcq: qcom: Clean the return path of ufs_qcom_mcq_config_resource()

Smatch static checker reported: drivers/ufs/host/ufs-qcom.c:1469 ufs_qcom_mcq_config_resource() info: returning a literal zero is cleaner

Fix the above warning by returning in place instead of a jump to a label. Also remove the usage of devm_kfree() as it's unnecessary in this function.

Fixes: c263b4ef737e ("scsi: ufs: core: mcq: Configure resource regions") Reported-by: Dan Carpenter error27@gmail.com Signed-off-by: Asutosh Das quic_asutoshd@quicinc.com Link: https://lore.kernel.org/r/3ebd2582af74b81ef7b57149f57c6a3bf0963953.1677721229.git.quic_asutoshd@quicinc.com Reviewed-by: Bjorn Andersson andersson@kernel.org Reviewed-by: Manivannan Sadhasivam mani@kernel.org Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: lpfc: Check kzalloc() in lpfc_sli4_cgn_params_read()

If kzalloc() fails in lpfc_sli4_cgn_params_read(), then we rely on lpfc_read_object()'s routine to NULL check pdata.

Currently, an early return error is thrown from lpfc_read_object() to protect us from NULL ptr dereference, but the errno code is -ENODEV.

Change the errno code to a more appropriate -ENOMEM.

Reported-by: Kang Chen void0red@gmail.com Link: https://lore.kernel.org/all/20230226102338.3362585-1-void0red@gmail.com Signed-off-by: Justin Tee justin.tee@broadcom.com Link: https://lore.kernel.org/r/20230228044336.5195-1-justintee8345@gmail.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: lpfc: Avoid usage of list iterator variable after loop

If the &epd_pool->list is empty when executing lpfc_get_io_buf_from_expedite_pool() the function would return an invalid pointer. Even in the case if the list is guaranteed to be populated, the iterator variable should not be used after the loop to be more robust for future changes.

Linus proposed to avoid any use of the list iterator variable after the loop, in the attempt to move the list iterator variable declaration into the macro to avoid any potential misuse after the loop [1].

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1] Signed-off-by: Jakob Koschel jkl820.git@gmail.com Link: https://lore.kernel.org/r/20230301-scsi-lpfc-avoid-list-iterator-after-loop-v1-1-325578ae7561@gmail.com Reviewed-by: Justin Tee justin.tee@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: ioctl timeout when disabling/enabling interrupt

As part of Task Management handling, the driver will disable and enable the MSIx index zero which belongs to the Admin reply queue. During this transition the driver loses some interrupts and this leads to Admin request and ioctl timeouts.

After enabling the interrupts, poll the Admin reply queue to avoid timeouts.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-2-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Driver unload crashes host when enhanced logging is enabled

Prevent driver from trying to dereference a NULL pointer in a debug print while removing a device during driver unload.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-3-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Wait for diagnostic save during controller init

If a controller reset operation is triggered to recover the controller from a fault state, then wait for the snapdump to be saved in the firmware region before proceeding to reset the controller.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-4-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Return proper values for failures in firmware init path

Return proper non-zero return values for all the cases when the controller initialization and re-initialization fails.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-5-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: NVMe command size greater than 8K fails

A wrong variable is checked while populating PRP entries in the PRP page and this results in failure. No PRP entries in the PRP page were successfully created and any NVMe Encapsulated commands with PRP of size greater than 8K failed.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-6-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Bad drive in topology results kernel crash

When the SAS Transport Layer support is enabled and a device exposed to the OS by the driver fails INQUIRY commands, the driver frees up the memory allocated for an internal HBA port data structure. However, in some places, the reference to the freed memory is not cleared. When the firmware sends the Device Info change event for the same device again, the freed memory is accessed and that leads to memory corruption and OS crash.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-7-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: megaraid_sas: Update max supported LD IDs to 240

The firmware only supports Logical Disk IDs up to 240 and LD ID 255 (0xFF) is reserved for deleted LDs. However, in some cases, firmware was assigning LD ID 254 (0xFE) to deleted LDs and this was causing the driver to mark the wrong disk as deleted. This in turn caused the wrong disk device to be taken offline by the SCSI midlayer.

To address this issue, limit the LD ID range from 255 to 240. This ensures the deleted LD ID is properly identified and removed by the driver without accidently deleting any valid LDs.

Fixes: ae6874ba4b43 ("scsi: megaraid_sas: Early detection of VD deletion through RaidMap update") Reported-by: Martin K. Petersen martin.petersen@oracle.com Signed-off-by: Chandrakanth Patil chandrakanth.patil@broadcom.com Signed-off-by: Sumit Saxena sumit.saxena@broadcom.com Link: https://lore.kernel.org/r/20230302105342.34933-2-chandrakanth.patil@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: megaraid_sas: Add crash dump mode capability bit in MFI capabilities

In kdump kernel mode, the driver works in reduced functionality mode with some features disabled such as reduced MSI-X count and RDPQ disabled, etc. However, the firmware is not aware of this mode in some cases, which results in undefined behavior.

To address this, the driver informs the firmware about the kdump mode through MPI capabilities bit during driver initialization. This allows firmware to adjust its behavior accordingly.

Signed-off-by: Chandrakanth Patil chandrakanth.patil@broadcom.com Signed-off-by: Sumit Saxena sumit.saxena@broadcom.com Link: https://lore.kernel.org/r/20230302105342.34933-3-chandrakanth.patil@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: megaraid_sas: Driver version update to 07.725.01.00-rc1

Update driver version.

Signed-off-by: Chandrakanth Patil chandrakanth.patil@broadcom.com Link: https://lore.kernel.org/r/20230302105342.34933-4-chandrakanth.patil@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: storvsc: Handle BlockSize change in Hyper-V VHD/VHDX file

Hyper-V uses a VHD or VHDX file on the host as the underlying storage for a virtual disk. The VHD/VHDX file format is a sparse format where real disk space on the host is assigned in chunks that the VHD/VHDX file format calls the BlockSize. This BlockSize is not to be confused with the 512-byte (or 4096-byte) sector size of the underlying storage device. The default block size for a new VHD/VHDX file is 32 Mbytes. When a guest VM touches any disk space within a 32 Mbyte chunk of the VHD/VHDX file, Hyper-V allocates 32 Mbytes of real disk space for that section of the VHD/VHDX. Similarly, if a discard operation is done that covers an entire 32 Mbyte chunk, Hyper-V will free the real disk space for that portion of the VHD/VHDX. This BlockSize is surfaced in Linux as the "discard_granularity" in /sys/block/sd/queue, which makes sense.

Hyper-V also has differencing disks that can overlay a VHD/VHDX file to capture changes to the VHD/VHDX while preserving the original VHD/VHDX. One example of this differencing functionality is for VM snapshots. When a snapshot is created, a differencing disk is created. If the snapshot is rolled back, Hyper-V can just delete the differencing disk, and the VM will see the original disk contents at the time the snapshot was taken. Differencing disks are used in other scenarios as well.

The BlockSize for a differencing disk defaults to 2 Mbytes, not 32 Mbytes. The smaller default is used because changes to differencing disks are typically scattered all over, and Hyper-V doesn't want to allocate 32 Mbytes of real disk space for a stray write here or there. The smaller BlockSize provides more efficient use of real disk space.

When a differencing disk is added to a VHD/VHDX, Hyper-V reports UNIT_ATTENTION with a sense code indicating "Operating parameters have changed", because the value of discard_granularity should be changed to 2 Mbytes. When the differencing disk is removed, discard_granularity should be changed back to 32 Mbytes. However, current code simply reports a message from scsi_report_sense() and the value of /sys/block/sd/queue/discard_granularity is not updated. The message isn't very actionable by a sysadmin.

Fix this by having the storvsc driver check for the sense code indicating that the underly VHD/VHDX block size has changed, and do a rescan of the device to pick up the new discard_granularity. With this change the entire transition to/from differencing disks is handled automatically and transparently, with no confusing messages being output.

Link: https://lore.kernel.org/r/1677516514-86060-1-git-send-email-mikelley@microsoft.com Signed-off-by: Michael Kelley mikelley@microsoft.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: sd: Fix wrong zone_write_granularity value during revalidate

When the sd driver revalidates host-managed SMR disks, it calls disk_set_zoned() which changes the zone_write_granularity attribute value to the logical block size regardless of the device type. After that, the sd driver overwrites the value in sd_zbc_read_zone() with the physical block size, since ZBC/ZAC requires this for host-managed disks. Between the calls to disk_set_zoned() and sd_zbc_read_zone(), there exists a window where the attribute shows the logical block size as the zone_write_granularity value, which is wrong for host-managed disks. The duration of the window is from 20ms to 200ms, depending on report zone command execution time.

To avoid the wrong zone_write_granularity value between disk_set_zoned() and sd_zbc_read_zone(), modify the value not in sd_zbc_read_zone() but just after disk_set_zoned() call.

Fixes: a805a4fa4fa3 ("block: introduce zone_write_granularity limit") Signed-off-by: Shin'ichiro Kawasaki shinichiro.kawasaki@wdc.com Link: https://lore.kernel.org/r/20230306063024.3376959-1-shinichiro.kawasaki@wdc.com Reviewed-by: Damien Le Moal damien.lemoal@opensource.wdc.com Reviewed-by: Johannes Thumshirn johannes.thumshirn@wdc.com Reviewed-by: Bart Van Assche bvanassche@acm.org Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

lib: zstd: Fix -Wstringop-overflow warning

Fix the following -Wstringop-overflow warning when building with GCC 11+:

lib/zstd/decompress/huf_decompress.c: In function ‘HUF_readDTableX2_wksp’: lib/zstd/decompress/huf_decompress.c:700:5: warning: ‘HUF_fillDTableX2.constprop’ accessing 624 bytes in a region of size 52 [-Wstringop-overflow=] 700 | HUF_fillDTableX2(dt, maxTableLog, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 701 | wksp->sortedSymbol, sizeOfSort, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | wksp->rankStart0, wksp->rankVal, maxW, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | tableLog+1, | ~~~~~~~~~~~ 704 | wksp->calleeWksp, sizeof(wksp->calleeWksp) / sizeof(U32)); |

lib/zstd/decompress/huf_decompress.c:700:5: note: referencing argument 6 of type ‘U32 (*)[13]’ {aka ‘unsigned int (*)[13]’}
lib/zstd/decompress/huf_decompress.c:571:13: note: in a call to function ‘HUF_fillDTableX2.constprop’
  571 | static void HUF_fillDTableX2(HUF_DEltX2* DTable, const U32 targetLog,
      |             ^~~~~~~~~~~~~~~~

by using pointer notation instead of array notation.

This is one of the last remaining warnings to be fixed before globally
enabling -Wstringop-overflow.

Co-developed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Cc: Nick Terrell <terrelln@fb.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Nick Terrell <terrelln@fb.com>
                                    

lib: zstd: Backport fix for in-place decompression

Backport the relevant part of upstream commit 5b266196 [0].

This fixes in-place decompression for x86-64 kernel decompression. It uses a bound of 131072 + (uncompressed_size >> 8), which can be violated after upstream commit 6a7ede3d [1], as zstd can use part of the output buffer as temporary storage, and without this patch needs a bound of ~262144.

The fix is for zstd to detect that the input and output buffers overlap, so that zstd knows it can't use the overlapping portion of the output buffer as tempoary storage. If the margin is not large enough, this will ensure that zstd will fail the decompression, rather than overwriting part of the input data, and causing corruption.

This fix has been landed upstream and is in release v1.5.4. That commit also adds unit and fuzz tests to verify that the margin we use is respected, and correct. That means that the fix is well tested upstream.

I have not been able to reproduce the potential bug in x86-64 kernel decompression locally, nor have I recieved reports of failures to decompress the kernel. It is possible that compression saves enough space to make it very hard for the issue to appear.

I've boot tested the zstd compressed kernel on x86-64 and i386 with this patch, which uses in-place decompression, and sanity tested zstd compression in btrfs / squashfs to make sure that we don't see any issues, but other uses of zstd shouldn't be affected, because they don't use in-place decompression.

Thanks to Vasily Gorbik gor@linux.ibm.com for debugging a related issue on s390, which was triggered by the same commit, but was a bug in how __decompress() was called [2]. And to Sasha Levin sashal@kernel.org for the CC alerting me of the issue.

[0] https://github.com/facebook/zstd/commit/5b266196a41e6a15e21bd4f0eeab43b938db1d90 [1] https://github.com/facebook/zstd/commit/6a7ede3dfccbf3e0a5928b4224a039c260dcff72 [2] https://lore.kernel.org/r/patch-1.thread-41c676.git-41c676c2d153.your-ad-here.call-01675030179-ext-9637@work.hours

CC: Vasily Gorbik gor@linux.ibm.com CC: Heiko Carstens hca@linux.ibm.com CC: Sasha Levin sashal@kernel.org CC: Yann Collet cyan@fb.com Signed-off-by: Nick Terrell terrelln@fb.com

zstd: Fix definition of assert()

assert(x) should emit a warning if x is false. WARN_ON(x) emits a warning if x is true. Thus, assert(x) should be defined as WARN_ON(!x) rather than WARN_ON(x).

Signed-off-by: Jonathan Neuschäfer j.neuschaefer@gmx.net Signed-off-by: Nick Terrell terrelln@fb.com

RISC-V: Stop emitting attributes

The RISC-V ELF attributes don't contain any useful information. New toolchains ignore them, but they frequently trip up various older/mixed toolchains. So just turn them off.

Tested-by: Conor Dooley conor.dooley@microchip.com Link: https://lore.kernel.org/r/20230223224605.6995-1-palmer@rivosinc.com Cc: stable@vger.kernel.org Signed-off-by: Palmer Dabbelt palmer@rivosinc.com

selftests: amd-pstate: fix TEST_FILES

Bring back the Python scripts that were initially added with TEST_GEN_FILES but now with TEST_FILES to avoid having them deleted when doing a clean. Also fix the way the architecture is being determined as they should also be installed when ARCH=x86_64 is provided explicitly. Then also append extra files to TEST_FILES and TEST_PROGS with += so they don't get discarded.

Fixes: ba2d788aa873 ("selftests: amd-pstate: Trigger tbench benchmark and test cpus") Fixes: a49fb7218ed8 ("selftests: amd-pstate: Don't delete source files via Makefile") Signed-off-by: Guillaume Tucker guillaume.tucker@collabora.com Acked-by: Huang Rui ray.huang@amd.com Signed-off-by: Shuah Khan skhan@linuxfoundation.org

alpha: fix lazy-FPU mis(merged/applied/whatnot)

Looks like a braino that used to be fixed in e.g. #next.alpha had gotten into alpha.git cherry-picked version of that patch.

Sure, alpha has no preempt, but preempt_enable() in place of preempt_disable() is actively confusing the readers...

Other than that, the cherry-picked variant matches what I have.

Signed-off-by: Al Viro viro@zeniv.linux.org.uk

Created at 1 day ago
create branch
Fantu create branch pre-v3-test-old2
Created at 1 day ago

arm64: dts: qcom: sc8280xp: Add label property to vadc channel nodes

For uniquely identifying the vadc channels, label property has to be used. The initial commit adding vadc support assumed that the driver will use the unit address along with the node name to identify the channels. But this assumption is now broken by, commit 701c875aded8 ("iio: adc: qcom-spmi-adc5: Fix the channel name") that stripped unit address from channel names. This results in probe failure of the vadc driver:

[ 8.380370] iio iio:device0: tried to double register : in_temp_pmic-die-temp_input [ 8.380383] qcom-spmi-adc5 c440000.spmi:pmic@0:adc@3100: Failed to register sysfs interfaces [ 8.380386] qcom-spmi-adc5: probe of c440000.spmi:pmic@0:adc@3100 failed with error -16

Hence, let's get rid of the assumption about drivers and rely on label property to uniquely identify the channels.

The labels are derived from the schematics for each PMIC. For internal adc channels such as die and xo, the PMIC names are used as a prefix.

Fixes: 7c0151347401 ("arm64: dts: qcom: sc8280xp-x13s: Add PM8280_{1/2} ADC_TM5 channels") Fixes: 9d41cd17394a ("arm64: dts: qcom: sc8280xp-x13s: Add PMR735A VADC channel") Fixes: 3375151a7185 ("arm64: dts: qcom: sc8280xp-x13s: Add PM8280_{1/2} VADC channels") Fixes: 9a6b3042c533 ("arm64: dts: qcom: sc8280xp-x13s: Add PMK8280 VADC channels") Reported-by: Steev Klimaszewski steev@kali.org Signed-off-by: Manivannan Sadhasivam manivannan.sadhasivam@linaro.org Signed-off-by: Bjorn Andersson andersson@kernel.org Link: https://lore.kernel.org/r/20230211052415.14581-1-manivannan.sadhasivam@linaro.org

arm64: dts: qcom: sm6115: Un-enable SPI5 by default

The commit mentioned in the fixes tag erroneously enabled SPI5 unconditionally. Undo it.

Fixes: 25aab0b852d6 ("arm64: dts: qcom: sm6115: Add geni debug uart node for qup0") Signed-off-by: Konrad Dybcio konrad.dybcio@linaro.org Signed-off-by: Bjorn Andersson andersson@kernel.org Link: https://lore.kernel.org/r/20230216124921.3985834-1-konrad.dybcio@linaro.org

arm64: dts: qcom: sm6375: Add missing power-domain-named to CDSP

This was omitted when first introducing the node. Fix it.

Fixes: fe6fd26aeddf ("arm64: dts: qcom: sm6375: Add ADSP&CDSP") Signed-off-by: Konrad Dybcio konrad.dybcio@linaro.org Signed-off-by: Bjorn Andersson andersson@kernel.org Link: https://lore.kernel.org/r/20230109135647.339224-5-konrad.dybcio@linaro.org

arm64: dts: qcom: sm8550: Add bias pull up value to tlmm i2c data clk states

The default bias pull up value for the tlmm i2c data clk states is 2.2kOhms. Add this value to make sure the driver factors in the i2c pull up bit when writing the config register.

Signed-off-by: Abel Vesa abel.vesa@linaro.org Signed-off-by: Bjorn Andersson andersson@kernel.org Link: https://lore.kernel.org/r/20230209074510.4153294-2-abel.vesa@linaro.org

arm64: dts: qcom: sm8550: Use correct CPU compatibles

Use the correct compatibles for the four kinds of CPU cores used on SM8550, based on the value of their MIDR_EL1 registers:

CPU7: 0x411fd4e0 - CX3 r1p1 CPU5-6: 0x412fd470 - CA710 r?p? CPU3-4: 0x411fd4d0 - CA715 r?p? CPU0-2: 0x411fd461 - CA510 r?p?

Signed-off-by: Konrad Dybcio konrad.dybcio@linaro.org Acked-by: Rob Herring robh@kernel.org Signed-off-by: Bjorn Andersson andersson@kernel.org Link: https://lore.kernel.org/r/20230216110803.3945747-2-konrad.dybcio@linaro.org

arm64: dts: qcom: sm8250-xiaomi-elish: Correct venus firmware path

Missing vendor name for venus firmware path. Add it.

Fixes: a41b617530bf ("arm64: dts: qcom: sm8250: Add device tree for Xiaomi Mi Pad 5 Pro") Signed-off-by: Jianhua Lu lujianhua000@gmail.com Reviewed-by: Konrad Dybcio konrad.dybcio@linaro.org Signed-off-by: Bjorn Andersson andersson@kernel.org Link: https://lore.kernel.org/r/20230221123633.25145-1-lujianhua000@gmail.com

scsi: hisi_sas: Check devm_add_action() return value

In case devm_add_action() fails, check it in the caller of interrupt_preinit_v3_hw().

Link: https://lore.kernel.org/r/20230227031030.893324-1-void0red@gmail.com Signed-off-by: Kang Chen void0red@gmail.com Acked-by: Xiang Chen chenxiang66@hisilicon.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: ufs: core: Add soft dependency on governor_simpleondemand

The ufshcd driver uses simpleondemand governor for devfreq. Add it to the list of ufshcd softdeps to allow userspace initramfs tools like dracut to automatically pull the governor module into the initramfs together with UFS drivers.

Link: https://lore.kernel.org/r/20230220140740.14379-1-athierry@redhat.com Signed-off-by: Adrien Thierry athierry@redhat.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: ufs: ufs-qcom: Remove impossible check

The "dev_req_params" pointer points to inside the middle of a struct so it can't be NULL. Removing this impossible condition is nice because now we don't need to consider the correct error code for that situation.

Link: https://lore.kernel.org/r/Y/yA3niWUcGYgBU8@kili Fixes: f06fcc7155dc ("scsi: ufs-qcom: add QUniPro hardware support and power optimizations") Signed-off-by: Dan Carpenter error27@gmail.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: ufs: mcq: qcom: Fix passing zero to PTR_ERR

Fix an error case in ufs_qcom_mcq_config_resource(), where the return value is set to 0 before passing it to PTR_ERR.

This led to Smatch warning:

drivers/ufs/host/ufs-qcom.c:1455 ufs_qcom_mcq_config_resource() warn: passing zero to 'PTR_ERR'

Fixes: c263b4ef737e ("scsi: ufs: core: mcq: Configure resource regions") Reported-by: Dan Carpenter error27@gmail.com Signed-off-by: Asutosh Das quic_asutoshd@quicinc.com Link: https://lore.kernel.org/r/94ca99b327af634799ce5f25d0112c28cd00970d.1677721072.git.quic_asutoshd@quicinc.com Reviewed-by: Bjorn Andersson andersson@kernel.org Reviewed-by: Manivannan Sadhasivam mani@kernel.org Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: ufs: mcq: qcom: Clean the return path of ufs_qcom_mcq_config_resource()

Smatch static checker reported: drivers/ufs/host/ufs-qcom.c:1469 ufs_qcom_mcq_config_resource() info: returning a literal zero is cleaner

Fix the above warning by returning in place instead of a jump to a label. Also remove the usage of devm_kfree() as it's unnecessary in this function.

Fixes: c263b4ef737e ("scsi: ufs: core: mcq: Configure resource regions") Reported-by: Dan Carpenter error27@gmail.com Signed-off-by: Asutosh Das quic_asutoshd@quicinc.com Link: https://lore.kernel.org/r/3ebd2582af74b81ef7b57149f57c6a3bf0963953.1677721229.git.quic_asutoshd@quicinc.com Reviewed-by: Bjorn Andersson andersson@kernel.org Reviewed-by: Manivannan Sadhasivam mani@kernel.org Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: lpfc: Check kzalloc() in lpfc_sli4_cgn_params_read()

If kzalloc() fails in lpfc_sli4_cgn_params_read(), then we rely on lpfc_read_object()'s routine to NULL check pdata.

Currently, an early return error is thrown from lpfc_read_object() to protect us from NULL ptr dereference, but the errno code is -ENODEV.

Change the errno code to a more appropriate -ENOMEM.

Reported-by: Kang Chen void0red@gmail.com Link: https://lore.kernel.org/all/20230226102338.3362585-1-void0red@gmail.com Signed-off-by: Justin Tee justin.tee@broadcom.com Link: https://lore.kernel.org/r/20230228044336.5195-1-justintee8345@gmail.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: lpfc: Avoid usage of list iterator variable after loop

If the &epd_pool->list is empty when executing lpfc_get_io_buf_from_expedite_pool() the function would return an invalid pointer. Even in the case if the list is guaranteed to be populated, the iterator variable should not be used after the loop to be more robust for future changes.

Linus proposed to avoid any use of the list iterator variable after the loop, in the attempt to move the list iterator variable declaration into the macro to avoid any potential misuse after the loop [1].

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1] Signed-off-by: Jakob Koschel jkl820.git@gmail.com Link: https://lore.kernel.org/r/20230301-scsi-lpfc-avoid-list-iterator-after-loop-v1-1-325578ae7561@gmail.com Reviewed-by: Justin Tee justin.tee@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: ioctl timeout when disabling/enabling interrupt

As part of Task Management handling, the driver will disable and enable the MSIx index zero which belongs to the Admin reply queue. During this transition the driver loses some interrupts and this leads to Admin request and ioctl timeouts.

After enabling the interrupts, poll the Admin reply queue to avoid timeouts.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-2-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Driver unload crashes host when enhanced logging is enabled

Prevent driver from trying to dereference a NULL pointer in a debug print while removing a device during driver unload.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-3-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Wait for diagnostic save during controller init

If a controller reset operation is triggered to recover the controller from a fault state, then wait for the snapdump to be saved in the firmware region before proceeding to reset the controller.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-4-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Return proper values for failures in firmware init path

Return proper non-zero return values for all the cases when the controller initialization and re-initialization fails.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-5-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: NVMe command size greater than 8K fails

A wrong variable is checked while populating PRP entries in the PRP page and this results in failure. No PRP entries in the PRP page were successfully created and any NVMe Encapsulated commands with PRP of size greater than 8K failed.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-6-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: mpi3mr: Bad drive in topology results kernel crash

When the SAS Transport Layer support is enabled and a device exposed to the OS by the driver fails INQUIRY commands, the driver frees up the memory allocated for an internal HBA port data structure. However, in some places, the reference to the freed memory is not cleared. When the firmware sends the Device Info change event for the same device again, the freed memory is accessed and that leads to memory corruption and OS crash.

Signed-off-by: Ranjan Kumar ranjan.kumar@broadcom.com Signed-off-by: Sreekanth Reddy sreekanth.reddy@broadcom.com Link: https://lore.kernel.org/r/20230228140835.4075-7-ranjan.kumar@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

scsi: megaraid_sas: Update max supported LD IDs to 240

The firmware only supports Logical Disk IDs up to 240 and LD ID 255 (0xFF) is reserved for deleted LDs. However, in some cases, firmware was assigning LD ID 254 (0xFE) to deleted LDs and this was causing the driver to mark the wrong disk as deleted. This in turn caused the wrong disk device to be taken offline by the SCSI midlayer.

To address this issue, limit the LD ID range from 255 to 240. This ensures the deleted LD ID is properly identified and removed by the driver without accidently deleting any valid LDs.

Fixes: ae6874ba4b43 ("scsi: megaraid_sas: Early detection of VD deletion through RaidMap update") Reported-by: Martin K. Petersen martin.petersen@oracle.com Signed-off-by: Chandrakanth Patil chandrakanth.patil@broadcom.com Signed-off-by: Sumit Saxena sumit.saxena@broadcom.com Link: https://lore.kernel.org/r/20230302105342.34933-2-chandrakanth.patil@broadcom.com Signed-off-by: Martin K. Petersen martin.petersen@oracle.com

Created at 1 day ago

add headers files 'blk-filter.h' to MAINTAINERS

move declaration blkfilter_ioctl() and blkfilter_detach() from 'blk.h'

add a description for the blkfilter_ioctl()

block: Block Device Filtering Mechanism - optimize the state machine

Here is my take on the state management, basically turning it into an actual state machine instead of a set of flags:

fix warning in chunk_schedule_storing()

remove switch(chunk->state) in diff_area_submit_chunk()

There was a "page fault" problem in chunk_clone_bio() when processing the state CHUNK_ST_STORED. I think there is a difference between the expressions: "bio_op(bio) == REQ_OP_READ" and "!op_is_write(bio_op(bio))". Personally, in my opinion, a complex switch is a little harder to read.

tab instead spaces

remove locking chunk in chunk_free()

If a chunk is already being released, then it should not be locked by this time.

add parameters 'tracking_block_maximum_shift' and 'chunk_maximum_shift'

On large disks, the size of the tracking block and the size of the chunk turns out to be too large. In such cases, the block size is limited by increasing the number of blocks. In cbt_map_calculate_block_size() fixed a block size calculation bug.

Created at 5 days ago
issue comment
WARNING at block/blk-mq.c:2335 blk_mq_free_rqs+0x1af/0x1c0

@Flole998 if you want try it and you didn't found how to build the package and install without broke the veeam package dep. or make conflict (when try to install the alternative veeamsnap) you can workaround forcing the version to 6.0.0.1060 use https://github.com/veeam/blksnap/tree/VAL-6.0 and build package with:

cd ./pkg/deb/blksnap-dkms
build.sh 6.0.0.1060

and for install manually generate package (in build directory) sudo dpkg -i blksnap*.deb I hope this can be useful and explained good

Created at 5 days ago

fix: unused variable 'cbio'

block: Block Device Filtering Mechanism - check state machine

I've been looking at the state machine, and it seems like the current code never sets CHUNK_ST_DIRTY. This seems like it might be a bug, can you look into it?

In the meantime, I think we can just remove CHUNK_ST_LOADING and CHUNK_ST_STORING as both are unused except for little debug checks.

add blk-filter.h headers

Add UAPI and in-kernel blk-filter.h headers instead of adding it to the existing already huge fs.h and blkdev.h.

Signed-off-by: Christoph Hellwig hch@lst.de

fold blkfilter_account into blkfilter_operations

Remove a layer of indirection by merging the two structures.

The only small downside is that the ops can't be declared const, but it removes an extra indirection for every I/O.

Signed-off-by: Christoph Hellwig hch@lst.de

remove state CHUNK_ST_DIRTY

fix: add a CBT map setter for the write operation to snapshot image

fix: "bd_filter->acc->ops" -> "bd_filter->ops"

Created at 1 week ago
issue comment
Screenshot taking to crash

@mtwebster thanks

Created at 1 week ago
issue comment
5.6 maintenance (suggestion): Create icon to the desktop (Right click menu on folder\file)

@jujielbrus hi, I not understand your PR, I don't see your commit and seems you want merge merge 5.6-maintainance branch into master but it does not make sense because that branch contain only some fixes taken from master (so already present) I suppose you should create an issue instead (and not pull request) with your question. and anyway your question is related to the filemanager so is related to nemo instead

Created at 1 week ago
issue comment
Screenshot taking to crash

@mtwebster one user confirmed that this patch solves the bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1032912 can you tell me if there are other important fixes can be useful to add to next (probably latest upload) for debian 12 please?

Created at 2 weeks ago

fix comments and doc

  • refered -> referred
  • copyed -> copied
  • Discribes -> Describes

block: Block Device Filtering Mechanism - rm struct chunk_postpone_ctx

Take a look at the patch below, which does two somewhat related things:

  • move the on-stack bio list handling from blksnap to the core blkfilter code
  • remove the need for chunk_postpone_ctx by sing creative bio chaining once more.

rename 'ret' -> 'skip_bio'

fixed the bug of unlocking chunks

In the new COW algorithm, the chunk_notify_load() function is not called for each chunk, but only for the last one. This caused to hanging. In struct chunk_bio a list of chunks has been added, so it is possible to release them all.

split chunk_notify_load()

Instead of one complex function with branches, there are two, but simpler ones.

Created at 2 weeks ago
pull request opened
[VAL-6.1] merge deb and build system fixes/improvements, .circleci, .github and README

@SergeiShtepa I saw on VAL-6.1 deb packaging with errors fixed long time ago so I merged from master all deb packaging and build system fixes/improvements. I also merged near all README, all .github (for CI tests) and added circleci config

Created at 2 weeks ago

circleci: add missed fix for debian >=12 and ubuntu >= 23.04

Created at 2 weeks ago

support lk v6.2.

Add ftrace_regs_set_instruction_pointer() using.

support lk 6.2/6.3

The code of function diff_io_do() was moved from the master branch.

Merge pull request #49 from Fantu/VAL-6.1-improve

[VAL-6.1] kernel module: add github workflow, fixes and improvements for deb packaging and README

Some fixes related to deb packages creation (#3)

  • blksnap-tools deb package: add missed dependencies

without ${shlibs:Depends} it didn't add the linked libraries as dependencies

  • blksnap-tests deb package: add missed dependencies

without ${shlibs:Depends} it didn't add the linked libraries required as dependencies

  • deb packages: fix deps variable

they must be replaced on package generation with debhelper and not build.sh

  • small fixes to README related to create deb packages
  • fixed linux-headers package name (will be generated correctly based on the kernel version and arch running)
  • add missed dkms dep
  • add ./ to build.sh so the line copied can be directly executed

deb packages: add missed build-deps (#5)

Small improvements for deb builds (#6)

  • deb package: automatically take arch with dpkg-architecture

  • deb: install only libboost parts required instead all

this will decrease packages to install for build deb packages or manually on debian and derivates

  • blksnap-tools deb: install blksnap to /usr/sbin

as it require root or sudo for access /dev/blksnap needed in major of commands is better to have it in /usr/sbin install /usr/bin

fix "automatically take arch with dpkg-architecture" (#8)

fix things spotted by codefactor:

  • -n doesn't work with unquoted arguments. Quote or use [[ ]]
  • Use $(...) notation instead of legacy backticks ...

deb: less use of external variables and minor changes

  • ARCH is not needed as parameters as is assigned on package build based on arch where is build, set arch linux-any instead any because hurd and freebsd kernels are not supported
  • removed provides in d/control as not needed with same name of the package and including version in the name (for the version needed as dep. check of version >= version-required is enough)
  • make name of the package static and change to blksnap in d/copyright as refer to upstream origin

deb: fixes and improvements

d/control:

  • move homepage in source part
  • change priority to optional

d/copyright:

  • add source field
  • fixed and complete the license name, add short description and file to include
  • replace the invalid email address in the copyright field with veeam_team@veeam.com (from maintainer field)

d/changelog:

  • replace the invalid email address in the copyright field with veeam_team@veeam.com (from maintainer field)

deb: move out build script to start make a standard debian folder

deb: convert more near to standard debian folder

deb: improve packages description

I did a standard description for packages to make possible use it also in a possible official packages. The description I made may not be optimal or well explained and could be further improved.

deb: unify in one source package blksnap-dev, blksnap-tools and blksnap tests

Note: this unify only source packages, binaries package are keeped splitted as should be. This is another step to have packages more similar to the possible official ones. I keeped blksnap-dkms out as is better keep separate as it would remain only the necessary time while waiting for kernel integration, then it would be removed (still talking about possible official packages)

deb: wrap and sort

Improve build system

Do initial "full" and "standard" build system

I have too little experience with cmake and so for sure other improvements are possible

I also improved the debian packaging to make more standard thank to the "complete" build system

I also did a fix to lib/blksnap/Session.cpp and tools/blksnap/main.cpp for build failed spotted creating deb packages with all hardening enabled, I not sure that file permission setted are correct/optimal

Need also to have better build of only part and not all (blksnap-dev and/or blksnap-tools and/or blksnap-tests) for now is possible with blksnap-dev and blksnap-tools targets but don't seems optimal

On circleci tests cmake uninstall file was not found even if I not understand why, manually with only "cmake ." and also generating debian packages (same of circleci tests) is ok. I did some try without find a solution so I added an exists check for don't fail in similar case

Make install and uninstall print wrong text related to tests files don't installed or uninstalled as not found but checking them was installed and uninstalled correctly, also for this I didn't found a solution

merge .gitignore from master

add circleci test merging from master

merge .github from master

for add default test build on kernel 5.15, build of blksnap-dev, blksnap-tools and blksnap-tests and build on other archs

merge near all README from master

README: remove kernel limitation to x86 archs and mention support up to version 6.3

Created at 2 weeks ago
pull request opened
readme and circleci: fix blksnap-dkms deb on debian >=12 and ubuntu >= 23.04
Created at 2 weeks ago
create branch
Fantu create branch new-deb
Created at 2 weeks ago
pull request opened
[VAL-6.1] kernel module: add github workflow, fixes and improvements for deb packaging and README

@SergeiShtepa I saw new VAL-6.1 branch with kernel module changes, in this PR I added github workflow for keep tested kernel module changes at least with build on 5.10 and 6.1 kernels, backported deb packaging fixes/improvements and README part related to kernel module improved packaging for master was already ok with next debian and ubuntu and in another PR I'll fix README and circleCI config also on it

Created at 2 weeks ago

deb blksnap-dkms: remove livepatch part from custom postrm

on custom postrm remove livepatch part, now that was removed

README.md: update part related to kernel module

README.md: fix for build deb kernel module package on latest debian and ubuntu

is needed on debian >=12 and ubuntu >= 23.04 because dkms 3.0.10-3 removed dep on dh-dkms from dkms package

Created at 2 weeks ago
create branch
Fantu create branch VAL-6.1
Created at 2 weeks ago
create branch
Fantu create branch VAL-6.1-improve
Created at 2 weeks ago