
This patch introduces the support for 5.18 kernel. Signed-off-by: Krzysztof Majzerowicz-Jaszcz <krzysztof.majzerowicz-jaszcz@intel.com>
96 lines
2.2 KiB
Bash
96 lines
2.2 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Copyright(c) 2012-2022 Intel Corporation
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
. $(dirname $3)/conf_framework.sh
|
|
|
|
check() {
|
|
cur_name=$(basename $2)
|
|
config_file_path=$1
|
|
if compile_module $cur_name "struct gendisk *disk = NULL; struct xarray xa; xa = disk->part_tbl;" "linux/genhd.h" ||
|
|
compile_module $cur_name "struct gendisk *disk = NULL; struct xarray xa; xa = disk->part_tbl;" "linux/blkdev.h"
|
|
then
|
|
echo $cur_name "1" >> $config_file_path
|
|
elif compile_module $cur_name "struct block_device bd; bd = *disk_part_iter_next(NULL);" "linux/blk_types.h"
|
|
then
|
|
echo $cur_name "2" >> $config_file_path
|
|
elif compile_module $cur_name "struct hd_struct hd; hd = *disk_part_iter_next(NULL);" "linux/genhd.h"
|
|
then
|
|
echo $cur_name "3" >> $config_file_path
|
|
else
|
|
echo $cur_name "X" >> $config_file_path
|
|
fi
|
|
}
|
|
|
|
apply() {
|
|
case "$1" in
|
|
"1")
|
|
add_function "
|
|
static inline int cas_bd_get_next_part(struct block_device *bd)
|
|
{
|
|
int part_no = 0;
|
|
struct gendisk *disk = bd->bd_disk;
|
|
struct block_device *part;
|
|
unsigned long idx;
|
|
|
|
xa_for_each(&disk->part_tbl, idx, part) {
|
|
if ((part_no = part->bd_partno)) {
|
|
break;
|
|
}
|
|
}
|
|
|
|
return part_no;
|
|
}" ;;
|
|
"2")
|
|
add_function "
|
|
static inline int cas_bd_get_next_part(struct block_device *bd)
|
|
{
|
|
int part_no = 0;
|
|
struct gendisk *disk = bd->bd_disk;
|
|
struct disk_part_iter piter;
|
|
struct block_device *part;
|
|
|
|
mutex_lock(&bd->bd_mutex);
|
|
|
|
disk_part_iter_init(&piter, disk, DISK_PITER_INCL_EMPTY);
|
|
while ((part = disk_part_iter_next(&piter))) {
|
|
part_no = part->bd_partno;
|
|
break;
|
|
}
|
|
disk_part_iter_exit(&piter);
|
|
|
|
mutex_unlock(&bd->bd_mutex);
|
|
|
|
return part_no;
|
|
}" ;;
|
|
"3")
|
|
add_function "
|
|
static inline int cas_bd_get_next_part(struct block_device *bd)
|
|
{
|
|
int part_no = 0;
|
|
struct gendisk *disk = bd->bd_disk;
|
|
struct disk_part_iter piter;
|
|
struct hd_struct *part;
|
|
|
|
mutex_lock(&bd->bd_mutex);
|
|
|
|
disk_part_iter_init(&piter, disk, DISK_PITER_INCL_EMPTY);
|
|
while ((part = disk_part_iter_next(&piter))) {
|
|
part_no = part->partno;
|
|
break;
|
|
}
|
|
disk_part_iter_exit(&piter);
|
|
|
|
mutex_unlock(&bd->bd_mutex);
|
|
|
|
return part_no;
|
|
}" ;;
|
|
*)
|
|
exit 1
|
|
esac
|
|
}
|
|
|
|
conf_run $@
|