Import of kernel-4.18.0-553.63.1.el8_10
This commit is contained in:
parent
11c08197f9
commit
ab554a9950
6
Kconfig
6
Kconfig
@ -20,4 +20,10 @@ config RH_KABI_SIZE_ALIGN_CHECKS
|
|||||||
This option enables more stringent kabi checks. Those must be disable
|
This option enables more stringent kabi checks. Those must be disable
|
||||||
in case of a debug-build because they allow to change struct sizes.
|
in case of a debug-build because they allow to change struct sizes.
|
||||||
|
|
||||||
|
config RH_KABI_STABLE_ASM_OFFSETS
|
||||||
|
bool "Enables asm-offsets.c constant stabilization"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
This option extends check-kabi to test a subset of asm-offsets.c
|
||||||
|
constants.
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ RHEL_MINOR = 10
|
|||||||
#
|
#
|
||||||
# Use this spot to avoid future merge conflicts.
|
# Use this spot to avoid future merge conflicts.
|
||||||
# Do not trim this comment.
|
# Do not trim this comment.
|
||||||
RHEL_RELEASE = 553.62.1
|
RHEL_RELEASE = 553.63.1
|
||||||
|
|
||||||
#
|
#
|
||||||
# ZSTREAM
|
# ZSTREAM
|
||||||
|
@ -5991,3 +5991,4 @@ CONFIG_OBJAGG=m
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
||||||
|
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
|
||||||
|
@ -5963,3 +5963,4 @@ CONFIG_OBJAGG=m
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
||||||
|
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
|
||||||
|
@ -6398,3 +6398,4 @@ CONFIG_KVM_XIVE=y
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
||||||
|
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
|
||||||
|
@ -6354,3 +6354,4 @@ CONFIG_KVM_XIVE=y
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
||||||
|
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
|
||||||
|
@ -3564,3 +3564,4 @@ CONFIG_S390_GUEST=y
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
||||||
|
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
|
||||||
|
@ -1489,3 +1489,4 @@ CONFIG_HAVE_KVM=y
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
||||||
|
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
|
||||||
|
@ -3540,3 +3540,4 @@ CONFIG_S390_GUEST=y
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
||||||
|
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
|
||||||
|
@ -8280,3 +8280,4 @@ CONFIG_OBJAGG=m
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
# CONFIG_RH_KABI_SIZE_ALIGN_CHECKS is not set
|
||||||
|
# CONFIG_RH_KABI_STABLE_ASM_OFFSETS is not set
|
||||||
|
@ -8221,3 +8221,4 @@ CONFIG_OBJAGG=m
|
|||||||
#
|
#
|
||||||
CONFIG_RHEL_DIFFERENCES=y
|
CONFIG_RHEL_DIFFERENCES=y
|
||||||
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
CONFIG_RH_KABI_SIZE_ALIGN_CHECKS=y
|
||||||
|
CONFIG_RH_KABI_STABLE_ASM_OFFSETS=y
|
||||||
|
@ -178,6 +178,7 @@ static int ch9200_mdio_read(struct net_device *netdev, int phy_id, int loc)
|
|||||||
{
|
{
|
||||||
struct usbnet *dev = netdev_priv(netdev);
|
struct usbnet *dev = netdev_priv(netdev);
|
||||||
unsigned char buff[2];
|
unsigned char buff[2];
|
||||||
|
int ret;
|
||||||
|
|
||||||
netdev_dbg(netdev, "%s phy_id:%02x loc:%02x\n",
|
netdev_dbg(netdev, "%s phy_id:%02x loc:%02x\n",
|
||||||
__func__, phy_id, loc);
|
__func__, phy_id, loc);
|
||||||
@ -185,8 +186,10 @@ static int ch9200_mdio_read(struct net_device *netdev, int phy_id, int loc)
|
|||||||
if (phy_id != 0)
|
if (phy_id != 0)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
control_read(dev, REQUEST_READ, 0, loc * 2, buff, 0x02,
|
ret = control_read(dev, REQUEST_READ, 0, loc * 2, buff, 0x02,
|
||||||
CONTROL_TIMEOUT_MS);
|
CONTROL_TIMEOUT_MS);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
return (buff[0] | buff[1] << 8);
|
return (buff[0] | buff[1] << 8);
|
||||||
}
|
}
|
||||||
|
@ -2923,11 +2923,23 @@ static int validate_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb,
|
|||||||
lkb->lkb_timeout_cs = args->timeout;
|
lkb->lkb_timeout_cs = args->timeout;
|
||||||
rv = 0;
|
rv = 0;
|
||||||
out:
|
out:
|
||||||
if (rv)
|
switch (rv) {
|
||||||
log_debug(ls, "validate_lock_args %d %x %x %x %d %d %s",
|
case 0:
|
||||||
|
break;
|
||||||
|
case -EINVAL:
|
||||||
|
/* annoy the user because dlm usage is wrong */
|
||||||
|
WARN_ON(1);
|
||||||
|
log_error(ls, "%s %d %x %x %x %d %d", __func__,
|
||||||
rv, lkb->lkb_id, lkb->lkb_flags, args->flags,
|
rv, lkb->lkb_id, lkb->lkb_flags, args->flags,
|
||||||
lkb->lkb_status, lkb->lkb_wait_type,
|
lkb->lkb_status, lkb->lkb_wait_type);
|
||||||
lkb->lkb_resource->res_name);
|
break;
|
||||||
|
default:
|
||||||
|
log_debug(ls, "%s %d %x %x %x %d %d", __func__,
|
||||||
|
rv, lkb->lkb_id, lkb->lkb_flags, args->flags,
|
||||||
|
lkb->lkb_status, lkb->lkb_wait_type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3060,11 +3072,25 @@ static int validate_unlock_args(struct dlm_lkb *lkb, struct dlm_args *args)
|
|||||||
lkb->lkb_astparam = args->astparam;
|
lkb->lkb_astparam = args->astparam;
|
||||||
rv = 0;
|
rv = 0;
|
||||||
out:
|
out:
|
||||||
if (rv)
|
switch (rv) {
|
||||||
log_debug(ls, "validate_unlock_args %d %x %x %x %x %d %s", rv,
|
case 0:
|
||||||
|
break;
|
||||||
|
case -EINVAL:
|
||||||
|
/* annoy the user because dlm usage is wrong */
|
||||||
|
WARN_ON(1);
|
||||||
|
log_error(ls, "%s %d %x %x %x %x %d %s", __func__, rv,
|
||||||
lkb->lkb_id, lkb->lkb_flags, lkb->lkb_exflags,
|
lkb->lkb_id, lkb->lkb_flags, lkb->lkb_exflags,
|
||||||
args->flags, lkb->lkb_wait_type,
|
args->flags, lkb->lkb_wait_type,
|
||||||
lkb->lkb_resource->res_name);
|
lkb->lkb_resource->res_name);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
log_debug(ls, "%s %d %x %x %x %x %d %s", __func__, rv,
|
||||||
|
lkb->lkb_id, lkb->lkb_flags, lkb->lkb_exflags,
|
||||||
|
args->flags, lkb->lkb_wait_type,
|
||||||
|
lkb->lkb_resource->res_name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,6 +348,11 @@
|
|||||||
* Adds a new field to an enumeration type. This must always be added to
|
* Adds a new field to an enumeration type. This must always be added to
|
||||||
* the end of the enum. Before using this macro, make sure this is actually
|
* the end of the enum. Before using this macro, make sure this is actually
|
||||||
* safe to do.
|
* safe to do.
|
||||||
|
*
|
||||||
|
* RH_KABI_ASSERT_EQ_CONST
|
||||||
|
* RH_KABI_ASSERT_EQ_CONSTEXPR
|
||||||
|
* Static assertion equality check against a C preprocessor (or a C constant
|
||||||
|
* expression).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef linux
|
#undef linux
|
||||||
@ -512,4 +517,22 @@
|
|||||||
(_ptr)->_struct##_size_rh > __off ? true : false; \
|
(_ptr)->_struct##_size_rh > __off ? true : false; \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
#if IS_BUILTIN(CONFIG_RH_KABI_STABLE_ASM_OFFSETS)
|
||||||
|
# define RH_KABI_ASSERT_EQ_CONSTEXPR(kind, sym, expval, val) { \
|
||||||
|
typedef char kind; \
|
||||||
|
kind (*expected)[expval]; \
|
||||||
|
kind (*actual)[val]; \
|
||||||
|
_Static_assert((expval) == (val), "unexpected value of " sym); \
|
||||||
|
expected = actual = NULL; \
|
||||||
|
}
|
||||||
|
# define RH_KABI_ASSERT_EQ_CONST(expval, val) \
|
||||||
|
_Static_assert((expval) == (val), \
|
||||||
|
"unexpected value of " #val " (" \
|
||||||
|
"actual: " __stringify(val) ", " \
|
||||||
|
"expected: " __stringify(expval) ")")
|
||||||
|
#else
|
||||||
|
# define RH_KABI_ASSERT_EQ_CONSTEXPR(kind, sym, expval, val)
|
||||||
|
# define RH_KABI_ASSERT_EQ_CONST(expval, val)
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _LINUX_RH_KABI_H */
|
#endif /* _LINUX_RH_KABI_H */
|
||||||
|
@ -1098,6 +1098,7 @@ start_over:
|
|||||||
goto check_out;
|
goto check_out;
|
||||||
pr_debug("scan_swap_map of si %d failed to find offset\n",
|
pr_debug("scan_swap_map of si %d failed to find offset\n",
|
||||||
si->type);
|
si->type);
|
||||||
|
cond_resched();
|
||||||
|
|
||||||
spin_lock(&swap_avail_lock);
|
spin_lock(&swap_avail_lock);
|
||||||
nextsi:
|
nextsi:
|
||||||
|
@ -717,21 +717,31 @@ static bool reqsk_queue_unlink(struct request_sock *req)
|
|||||||
found = __sk_nulls_del_node_init_rcu(req_to_sk(req));
|
found = __sk_nulls_del_node_init_rcu(req_to_sk(req));
|
||||||
spin_unlock(lock);
|
spin_unlock(lock);
|
||||||
}
|
}
|
||||||
if (timer_pending(&req->rsk_timer) && del_timer_sync(&req->rsk_timer))
|
|
||||||
reqsk_put(req);
|
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool inet_csk_reqsk_queue_drop(struct sock *sk, struct request_sock *req)
|
static bool __inet_csk_reqsk_queue_drop(struct sock *sk,
|
||||||
|
struct request_sock *req,
|
||||||
|
bool from_timer)
|
||||||
{
|
{
|
||||||
bool unlinked = reqsk_queue_unlink(req);
|
bool unlinked = reqsk_queue_unlink(req);
|
||||||
|
|
||||||
|
if (!from_timer && timer_delete_sync(&req->rsk_timer))
|
||||||
|
reqsk_put(req);
|
||||||
|
|
||||||
if (unlinked) {
|
if (unlinked) {
|
||||||
reqsk_queue_removed(&inet_csk(sk)->icsk_accept_queue, req);
|
reqsk_queue_removed(&inet_csk(sk)->icsk_accept_queue, req);
|
||||||
reqsk_put(req);
|
reqsk_put(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
return unlinked;
|
return unlinked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool inet_csk_reqsk_queue_drop(struct sock *sk, struct request_sock *req)
|
||||||
|
{
|
||||||
|
return __inet_csk_reqsk_queue_drop(sk, req, false);
|
||||||
|
}
|
||||||
EXPORT_SYMBOL(inet_csk_reqsk_queue_drop);
|
EXPORT_SYMBOL(inet_csk_reqsk_queue_drop);
|
||||||
|
|
||||||
void inet_csk_reqsk_queue_drop_and_put(struct sock *sk, struct request_sock *req)
|
void inet_csk_reqsk_queue_drop_and_put(struct sock *sk, struct request_sock *req)
|
||||||
@ -804,7 +814,8 @@ static void reqsk_timer_handler(struct timer_list *t)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
drop:
|
drop:
|
||||||
inet_csk_reqsk_queue_drop_and_put(sk_listener, req);
|
__inet_csk_reqsk_queue_drop(sk_listener, req, true);
|
||||||
|
reqsk_put(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void reqsk_queue_hash_req(struct request_sock *req,
|
static void reqsk_queue_hash_req(struct request_sock *req,
|
||||||
|
Loading…
Reference in New Issue
Block a user