summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-kernel
Commit message (Collapse)AuthorAgeFilesLines
* recipes: Drop remaining PR values from recipesMartin Jansa2024-03-172-2/+0
| | | | | | | | | | | | * as oe-core did in: https://git.openembedded.org/openembedded-core/commit/?id=d4c346e8ab * when people are have to maintain own PRs for recipes in oe-core, they might add them for meta-oe recipes at the same time when upgrading to next LTS Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: no longer skip ldflags QAThomas Perrot2024-02-101-2/+2
| | | | | | | Because there is no longer the error. Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* bpftool: Add missing dep on elfutils-nativeKhem Raj2024-01-311-1/+2
| | | | | | Point host CC to OE defined BUILD_CC Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: Add few more testcasesChirag Shilwant2024-01-271-0/+2
| | | | | | | | | This commit will build and install following testcases under /usr/kernel-selftest of filesystem, * ptp * timers Signed-off-by: Chirag Shilwant <c-shilwant@ti.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: Fix build with clangKhem Raj2024-01-272-0/+54
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: upgrade 2.0.6 -> 2.0.7Wang Mingyu2024-01-271-1/+1
| | | | | | | | | | | | Changelog: =========== * Fix robust mutex list dumping if a robust mutex uses the PTHREAD_PRIO_INHERIT attribute. * Avoid bogus error messages when dumping registered data for non-crashing processes. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: remove Wno-alloc-size-larger-than from ↵Khem Raj2024-01-111-0/+1
| | | | | | | | | | scripts/Makefile.extrawarn 6.6+ kernel has the warning options moved to dedicated include file under scripts called Makefile.extrawarn, therefore search for this file as well to remove this unrecognized option by clang Signed-off-by: Khem Raj <raj.khem@gmail.com>
* ipmitool: Make the version consistentMingli Yu2024-01-092-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The git revison info is added [1] to make the version more descriptive to produce an incremental revision number like 1.8.18.13 or 1.8.18.14 and etc and more clear in terms of "what codebase was used" like `1.8.18.13.gee01aa5`. But it also introduces the version inconsistence. Note as stated in [1] For cases when .git directory is missing (Release compilation?) the suffix part will be omitted completely yielding a version like `1.8.18`. Considering the version we acutally used in oe is a release version, the git revision info as [1] is meaningness. So drop the git revsion info to make the version consistent. Before the patch: root@qemux86-64:~# ipmitool -V ipmitool version 1.8.19.19.gab5ce5b root@qemux86-64:~# rpm -qa | grep ipmitool ipmitool-1.8.19-r0.core2_64 After the patch: root@qemux86-64:~# ipmitool -V ipmitool version 1.8.19 root@qemux86-64:~# rpm -qa | grep ipmitool ipmitool-1.8.19-r0.core2_64 [1] https://github.com/ipmitool/ipmitool/commit/ba01dc84b4e225c86eac3f562e629662d752040f Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* crash: update to 8.0.4Frederic Martinsons2023-12-184-71/+1
| | | | | | | Remove backported commit. Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* crash: add cross canadian versionFrederic Martinsons2023-12-181-0/+53
| | | | | Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* crash: factorize recipe with inc file to prepare cross-canadian versionFrederic Martinsons2023-12-183-88/+94
| | | | | | | Suppress unused config-site.crash-7.0.9 Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libbpf: upgrade 1.2.2 -> 1.3.0Wang Mingyu2023-11-281-2/+2
| | | | | | | | | Changelog: ============ https://github.com/libbpf/libbpf/releases/tag/v1.3.0 Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* makedumpfile: Change COMPATIBLE_HOST check to exclude unsupported archesKhem Raj2023-11-081-2/+3
| | | | | | Right now riscv32 and mips architecture support is missing. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* makedumpfile: upgrade 1.7.3 -> 1.7.4Wang Mingyu2023-11-081-1/+1
| | | | | | | | | | Changelog: =========== - Support for kernels up to v6.6 - Support for riscv64 architecture Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libbpf: upgrade 1.2.0 -> 1.2.2Khem Raj2023-11-061-2/+2
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* ipmitool: Update and eliminate unneeded patchJohnathan Mantey2023-11-022-45/+8
| | | | | | | | | | | | | | | | | | | | | | | The upstream ipmitool code has implemented an autoconfig control to enable and disable dynamic fetching of the IANA numbers file. As a result the patch removing the code that blocks fetching the IANA numbers is no longer relevant. The patch being removed explicitlly blocks downloading the IANA numbers file. Maintain this behavior at this level by using the --disable-registry-download feature. In order for that autoconfig switch to work, the recipe must inherit the pkgconfig feature. Without the pkgconfig dependency the code in the configure.ac file causes a compile time error. Tested: IANA numbers file isn't downloaded. Manually downloaded IANA file is installed in /usr/share/misc Enabling registry download enables dynamic download of IANA numbers Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: Use clang options when clang is availableKhem Raj2023-10-101-8/+8
| | | | | | Enable bpf only with clang Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: Copy the .config from kernel buildKhem Raj2023-10-101-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: Build bpf tests againKhem Raj2023-10-092-17/+31
| | | | | | | | | Fix run-ptest script to run all compiled selftests disable bpf on riscv for now Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libbpf: add arm, powerpc and mips64 to COMPATIBLE_HOSTDenys Zagorui2023-10-071-1/+1
| | | | | | | | There is is no build time issues with libbpf for these architectures so we can add them to COMPATIBLE_HOST Signed-off-by: Denys Zagorui <dzagorui@cisco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumber: Fix ptest reportingKhem Raj2023-10-041-2/+2
| | | | | | | | | Fixes AssertionError:- ptests which had no test results: ['minicoredumper'] Signed-off-by: Khem Raj <raj.khem@gmail.com>
* kernel-selftest: Build headers before compiling testsKhem Raj2023-10-021-1/+1
| | | | | | This fixes build failure with kernel 6.5 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* bpftool: add native and nativesdk supportDenys Zagorui2023-09-071-0/+5
| | | | | | | | | | | | | | | | | | | | There are issues with nativesdk variant ... ERROR: nativesdk-bpftool-1.0-r0 do_package: QA Issue: nativesdk-bpftool: Files/directories were installed but not shipped in any package: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-xesdk-linux/usr/sbin/bpftool /usr/share/bash-completion/completions/bpftool ... nativesdk.bbclass sets sbindir = "${bindir}" but bpftool is installed under sbin to fix that add sbin to FILES for bpftool completions {prefix} is not used but it seems that bitbake expects that installed files should be perfixed with "${SDKPATHNATIVE}${prefix_nativesdk}" to fix that override bash_compdir Signed-off-by: Denys Zagorui <dzagorui@cisco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* crash: Fix build with glibc 2.38+Khem Raj2023-07-132-0/+70
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: upgrade 2.0.3 -> 2.0.6Wang Mingyu2023-07-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Changelog: =========== * Support comm names with spaces. * Also dump write-only memory segments. * Abort memory read if the crashed program is killed while the minicoredumper is actively reading memory. This fixes a possible endless loop in said scenario. * Known problems: - If tar is active, core files larger than 8GB will be truncated. If it is known that the core files will be >8GB and the full core file is needed, tar must be disabled. - If tar is active, core files larger than 8GB will be truncated. If it is known that the core files will be >8GB and the full core file is needed, tar must be disabled. - If tar is active, core files larger than 8GB will be truncated. If it is known that the core files will be >8GB and the full core file is needed, tar must be disabled. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* *.patch: add Upstream-Status to all patchesMartin Jansa2023-06-214-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is new patch-status QA check in oe-core: https://git.openembedded.org/openembedded-core/commit/?id=76a685bfcf927593eac67157762a53259089ea8a This is temporary work around just to hide _many_ warnings from optional patch-status (if you add it to WARN_QA). This just added Upstream-Status: Pending everywhere without actually investigating what's the proper status. This is just to hide current QA warnings and to catch new .patch files being added without Upstream-Status, but the number of Pending patches is now terrible: 5 (26%) meta-xfce 6 (50%) meta-perl 15 (42%) meta-webserver 21 (36%) meta-gnome 25 (57%) meta-filesystems 26 (43%) meta-initramfs 45 (45%) meta-python 47 (55%) meta-multimedia 312 (63%) meta-networking 756 (61%) meta-oe Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libtracefs: Fix build with clang+muslKhem Raj2023-06-142-0/+32
| | | | | Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Wang Mingyu <wangmy@fujitsu.com>
* libtracefs: upgrade 1.6.4 -> 1.7.0Wang Mingyu2023-06-141-1/+1
| | | | | | | | | | Changelog: ========== - Fixes to the tests. - Added meson build support (but it is not the default). Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* ipmiutil: Pass --enable-useflagsKhem Raj2023-05-261-0/+1
| | | | | | | | | This ensures CFLAGS and LDFLAGS from environment are passed to build Fixes File /usr/sbin/.debug/iseltime in package ipmiutil-dbg contains reference to TMPDIR [buildpaths] Signed-off-by: Khem Raj <raj.khem@gmail.com>
* ipmiutil: Upgrade to 3.1.9Khem Raj2023-05-263-43/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes 03/12/2020 ARCress ipmiutil-3.1.6 changes (iver 3.16) util/iconfig.c - fix Fedora bug 1811462 [abrt] ipmiutil config -a util/ipmiutil.c - show version with usage in -h case scripts/ipmiutil.env.template - renamed env as template (contributed by mwilliams<at>illuminate.solutions) scripts/Makefile.am - renamed env as template scripts/checksel - also rm -f $ddir/sel.idx after isel -d (contributed by eguzovsky<at>gmail.com) doc/Makefile.am - change gzip -f to gzip -nf for man pages (SR#40 patch from Jeremy Puhlman) 08/31/2020 ARCress ipmiutil-3.1.7 changes (iver 3.17) setup/* - added Win msi setup files lib/lanplus/lanplus.c - revert WIN IPv6 changes, add os_assert routine lib/lanplus/lanplus_crypt.c - switch assert to os_assert/return lib/lanplus/lanplus_crypt_implc.c - switch assert to os_assert util/ipmidir.h - AMD_SMB_1_STATUS_* 1< to 1<< (SF_SR#41) util/isel.c - fix compile warning util/ilan.c - fix compile warning configure.ac - add --enable-doc option to allow not building documentation contributed by Fabrice Fontaine (ffontaine) util/isensor.c - add SDR conflict 0xC5 handling retries with delay contributed by albertlav 11/15/2021 ARCress ipmiutil-3.1.8 changes (iver 3.18) libeay32.dll - updated for Windows 64 lanplus ssleay32.dll - updated for Windows 64 lanplus util/oem_supermicro.c - disable DIMM decoding from SMBIOS for SuperMicro (albertlav) util/ilan.c - new -W option to limit lan settings util/ipmicmd.h - add VENDOR_MITAC util/subs.c - add VENDOR_MITAC util/ipmilanplus.c - print reason if no lan2 util/ipmilan2.c - print reason if no lan2 util/isensor.c - never skip free_sdr_cache() SR#45 configure.ac - fix --disable-lanplus option to avoid random disables, recognize openssl-3.0 for SSL flags 03/03/2023 ARCress ipmiutil-3.1.9 changes (iver 3.19) util/isensor.c - fix -i get_idx_range to show last idx in range util/igetevent.c - fix printf extra arg util/memif.c - SR56: try UEFI address 6d5a7000 if F0000 error configure.ac - Clang 16 fixes, resolve -Wimplicit-function-declaration issues (Sam James sam@gentoo.org 11/16/2022) lib/lanplus/lanplus.h - resolve implicit os_assert declaration (Sam James) util/ireset.c - SR58: remove is_romley case for ireset -D scripts/ipmiutil_wdt - SR43: changed $prog to $progn for Debian scripts/uninstall.vbs - SR53: add ; to fix path SR53 (Windows): install libeay32.dll, ssleay32.dll into ipmiutil path also util/ipmidir.c - ipmi_open_direct(char) util/mem_if.c - UCHAR/int doc/ipmiutil.spec - enumerate ipmiutil.env, ipmiutil.env.template configure.ac - add -Wlto-type-mismatch to cfwarn Signed-off-by: Khem Raj <raj.khem@gmail.com>
* bpftool: return do_configure dependencyDenys Zagorui2023-05-241-0/+2
| | | | | | | | | | | return do_configure dependency that was removed by (3de33c7ecc99 "bpftool: Fix externalsrc support") do_configure and do_populate_lic runs independently and do_configure require prepared kernel sources dir Signed-off-by: Denys Zagorui <dzagorui@cisco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* bpftool: Fix externalsrc supportDenys Zagorui2023-05-231-3/+1
| | | | | | | | | | | | | | | When the externalsrc class is used the tasks listed in SRCTREECOVEREDTASKS are deleted to prevent them being executed. If externalsrc is used for the kernel then this will include virtual/kernel:do_patch. We can depend on do_shared_workdir instead as this will survive when externalsrc is used. Similar to [openembedded-core] (eab605bab945 "perf: Fix externalsrc support") Signed-off-by: Denys Zagorui <dzagorui@cisco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libbpf: installing uapi headers for native packageXiangyu Chen2023-05-231-0/+5
| | | | | | | using libbpf-native provided headers for pahole-native or other application. Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libtraceevent: DeleteKhem Raj2023-05-212-65/+0
| | | | | | Recipe is moved to oe-core layer Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: correct the sysvinit service file attributeMingli Yu2023-05-151-1/+1
| | | | | | | | | | Add the execute attribute for sysvinit service file to fix the below error: $ service minicoredumper status minicoredumper: unrecognized service Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* ipmitool: Update linksAlexander Amelkin2023-05-151-3/+3
| | | | | | | | | | | | | The project has been moved to CodeBerg.org. Update the links in the recipe and also bump to the latest revision (1.8.19.13). Additionally fix the link to the IANA PEN registry as IANA has changed their URL scheme some time ago and the old link started pointing to the HTML page instead of the text file. Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* makedumpfile: upgrade 1.7.2 -> 1.7.3Wang Mingyu2023-05-081-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libbpf: upgrade 1.1.0 -> 1.2.0Wang Mingyu2023-05-081-1/+1
| | | | | Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libtraceevent: upgrade 1.7.1 -> 1.7.2Wang Mingyu2023-04-041-1/+1
| | | | | | | | | | | Changelog: ========== - Fix big-endian build breakage in unit tests - Fix double free in process_sizeof() function - Cleaned up process_sizeof() function as well Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libpfm4: upgrade 4.12.0 -> 4.13.0Wang Mingyu2023-04-041-1/+1
| | | | | | | | | | | | | | | | | | | Changelog: ========== update Intel SKL/SKX/CLX event table add ARM Neoverse V2 core PMU support move ARM Neoverse N2 to ARMv9 support add ARM v9 support basic infrastructure add Arm Neoverse V1 core PMU support Update Intel SapphireRapid event table update Intel Icelake event table update AMD Zen4 event table add AMD Zen4 core PMU support correctly detect all AMD Zen3 processors fix CPU_CLK_UNHALTED.REF_DISTRIBUTED on Intel Icelake Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* crash: Upgrade to 8.0.2Mingli Yu2023-03-095-33/+65
| | | | | | | Upgrade crash to 8.0.2 and rebase 4 patches to the new version. Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libbpf: upgrade 0.8.0 -> 1.1.0Xiangyu Chen2023-03-091-1/+1
| | | | | | | | Changelog: https://github.com/libbpf/libbpf/releases/tag/v1.1.0 Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* .patch: fix Upstream-Status formatting issues reported by patchreview tool ↵Martin Jansa2023-02-242-2/+2
| | | | | | | from oe-core Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: upgrade 2.0.2 -> 2.0.3Wang Mingyu2023-02-182-39/+1
| | | | | | | | | | | | | | | | | | | | | | | 0001-minicoredumper_demo-Use-optnone-attribute-with-clang.patch removed since it's included in 2.0.3 Changelog: ========== * Dump zero-blocks as 4KB blocks instead of single bytes to speed up piping to the compressor. (Only relevant if tar is not used.) * Drop core data exceeding the ustar 8GB limit. The core file is appropriately truncated and the actions are logged. This fixes tar file corruption for core files >8GB. * Known problems: - If tar is active, core files larger than 8GB will be truncated. If it is known that the core files will be >8GB and the full core file is needed, tar must be disabled. Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* oprofile: Do not use std::bind2ndKhem Raj2023-02-062-0/+35
| | | | | | | std::bind2nd is removed from c++17, therefore re-implement with generic lambda Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: Upgrade to 2.0.2 releaseKhem Raj2023-02-044-166/+39
| | | | | | | Drop patches already upstreamed. Add patch to fix tests with clang compiler Signed-off-by: Khem Raj <raj.khem@gmail.com>
* minicoredumper: Add ptestSimone Weiss2023-02-032-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the demo from minicoredumper - that is intended as a test for it - as a ptest for minicoredumper. Result example: root@qemux86-64:~# ptest-runner minicoredumper START: ptest-runner 2023-02-02T12:27 BEGIN: /usr/lib/minicoredumper/ptest minicoredumper_demo expecting Segmentation fault with core dump ... [ 21.791878] minicoredumper_[330]: segfault at 0 ip 00000000004014f2 sp 00007ffe4271f870 error 4 in minicoredumper_demo[401000+1000] likely on CPU 0 (core 0, socket 0) [ 21.793886] Code: 00 b8 00 00 00 00 e8 7d fb ff ff 83 bd 5c ff ff ff 01 75 2f 48 c7 45 e8 00 00 00 00 bf 58 21 40 00 e8 52 fb ff ff 48 8b 45 e8 <0f> b6 00 0f be c0 89 c6 bf 77 21 40 00 b8 00 00 00 00 e8 47 ff /usr/lib/minicoredumper/ptest/run-ptest: line 6: 330 Segmentation fault minicoredumper_demo minicoredumper SUCCESS DURATION: 3 END: /usr/lib/minicoredumper/ptest 2023-02-02T12:28 STOP: ptest-runner TOTAL: 1 FAIL: 0 root@qemux86-64:~# Please note the Segmentation fault is intended to provoke a coredump. Signed-off-by: Simone Weiss <simone.weiss@elektrobit.com> Signed-off-by: Kai Tomerius <kai.tomerius@elektrobit.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* meta: remove True option to getVar calls (again)Martin Jansa2023-02-012-2/+2
| | | | | | | | | | | | | * True is default since 2016 and most layers were already updated not to pass this parameter where not necessary, e.g. oe-core was updated couple times, first in: https://git.openembedded.org/openembedded-core/commit/?id=7c552996597faaee2fbee185b250c0ee30ea3b5f Updated with the same regexp as later oe-core update: https://git.openembedded.org/openembedded-core/commit/?id=9f551d588693328e4d99d33be94f26684eafcaba Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* .patch: fix Signed-off-by formatting issues reported by patchreview tool ↵Martin Jansa2023-01-271-1/+1
| | | | | | | from oe-core Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* .patch: fix Upstream-Status formatting issues reported by patchreview tool ↵Martin Jansa2023-01-271-1/+1
| | | | | | | from oe-core Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>