diff --git a/SOURCES/1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch b/SOURCES/1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch
new file mode 100644
index 0000000..fb34c79
--- /dev/null
+++ b/SOURCES/1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch
@@ -0,0 +1,91 @@
+From 9f90c590d73eb86e357bf4a854af41b73039342c Mon Sep 17 00:00:00 2001
+From: Thomas Haller <thaller@redhat.com>
+Date: Tue, 23 Feb 2021 13:28:10 +0100
+Subject: [PATCH 1/1] bond: avoid logging warning to set
+ "ad_actor_system=00:00:00:00:00:00"
+
+The bond option ad_actor_system only matters (and is available) with
+mode=802.3ad.
+
+When you create a new bond, the sysctl value will be set to "00:00:00:00:00:00".
+So this seems to be a valid value, and in fact the default value for
+this option. However, kernel will fail with EINVAL to set the sysctl to
+"00:00:00:00:00:00". Kernel fails both if the value is already
+"00:00:00:00:00:00" (i.e. setting the same value results in an error) and
+it also fails otherwise (i.e. we cannot ever reset the value to
+"00:00:00:00:00:00", at least not via sysfs).
+
+Avoid the warning in the common case, where the value is already as
+expected.
+
+Otherwise, we still get the warning and won't be able to set the right
+value. But this is really a limitation of the kernel API where we cannot
+do anything about it (in NetworkManager).
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1923999
+(cherry picked from commit 9e7af314546d7912ee23b3850230008902aca4d3)
+(cherry picked from commit 199ac9b146b0d7b1d6679a8d703822447abc3ce7)
+---
+ libnm-core/nm-core-internal.h     |  2 ++
+ libnm-core/nm-setting-bond.c      |  2 +-
+ src/core/devices/nm-device-bond.c | 18 ++++++++++++++++++
+ 3 files changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
+index d9374fe5a7a8..e386d5e9d074 100644
+--- a/libnm-core/nm-core-internal.h
++++ b/libnm-core/nm-core-internal.h
+@@ -586,6 +586,8 @@ NMBondOptionType _nm_setting_bond_get_option_type(NMSettingBond *setting, const
+ 
+ const char *nm_setting_bond_get_option_or_default(NMSettingBond *self, const char *option);
+ 
++#define NM_BOND_AD_ACTOR_SYSTEM_DEFAULT "00:00:00:00:00:00"
++
+ /*****************************************************************************/
+ 
+ /* nm_connection_get_uuid() asserts against NULL, which is the right thing to
+diff --git a/libnm-core/nm-setting-bond.c b/libnm-core/nm-setting-bond.c
+index 2d64ef02b48c..68d4ca88f678 100644
+--- a/libnm-core/nm-setting-bond.c
++++ b/libnm-core/nm-setting-bond.c
+@@ -337,7 +337,7 @@ _bond_get_option_normalized(NMSettingBond *self, const char *option, gboolean ge
+     if (nm_streq(option, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM)) {
+         /* The default value depends on the current mode */
+         if (mode == NM_BOND_MODE_8023AD)
+-            return "00:00:00:00:00:00";
++            return NM_BOND_AD_ACTOR_SYSTEM_DEFAULT;
+         return "";
+     }
+ 
+diff --git a/src/core/devices/nm-device-bond.c b/src/core/devices/nm-device-bond.c
+index f68c080b1839..5814aef4518f 100644
+--- a/src/core/devices/nm-device-bond.c
++++ b/src/core/devices/nm-device-bond.c
+@@ -109,6 +109,24 @@ _set_bond_attr(NMDevice *device, const char *attr, const char *value)
+     int           ifindex = nm_device_get_ifindex(device);
+     gboolean      ret;
+ 
++    nm_assert(attr && attr[0]);
++    nm_assert(value);
++
++    if (nm_streq(value, NM_BOND_AD_ACTOR_SYSTEM_DEFAULT)
++        && nm_streq(attr, NM_SETTING_BOND_OPTION_AD_ACTOR_SYSTEM)) {
++        gs_free char *cur_val = NULL;
++
++        /* kernel does not allow setting ad_actor_system to "00:00:00:00:00:00". We would thus
++         * log an EINVAL error. Avoid that... at least, if the value is already "00:00:00:00:00:00". */
++        cur_val =
++            nm_platform_sysctl_master_get_option(nm_device_get_platform(device), ifindex, attr);
++        if (nm_streq0(cur_val, NM_BOND_AD_ACTOR_SYSTEM_DEFAULT))
++            return TRUE;
++
++        /* OK, the current value is different, and we will proceed setting "00:00:00:00:00:00".
++         * That will fail, and we will log a warning. There is nothing else to do. */
++    }
++
+     ret =
+         nm_platform_sysctl_master_set_option(nm_device_get_platform(device), ifindex, attr, value);
+     if (!ret)
+-- 
+2.29.2
+
diff --git a/SPECS/NetworkManager.spec b/SPECS/NetworkManager.spec
index 24d0bd1..2892679 100644
--- a/SPECS/NetworkManager.spec
+++ b/SPECS/NetworkManager.spec
@@ -7,7 +7,7 @@
 %global epoch_version 1
 %global rpm_version 1.30.0
 %global real_version 1.30.0
-%global release_version 1
+%global release_version 2
 %global snapshot %{nil}
 %global git_sha %{nil}
 
@@ -186,7 +186,7 @@ Source6: 70-nm-connectivity.conf
 Patch1: 0001-cloud-setup-systemd-unit-rh1791758.patch
 
 # Bugfixes that are only relevant until next rebase of the package.
-# Patch1000: some.patch
+Patch1000: 1000-bond-avoid-logging-warning-to-set-ad_actor_system-00.patch
 
 # The pregenerated docs contain default values and paths that depend
 # on the configure options when creating the source tarball.
@@ -1150,6 +1150,9 @@ fi
 
 
 %changelog
+* Tue Feb 23 2021 Thomas Haller <thaller@redhat.com> - 1:1.30.0-2
+- Avoid logging warning setting bond ad_actor_system (rh #1923999)
+
 * Thu Feb 18 2021 Thomas Haller <thaller@redhat.com> - 1:1.30.0-1
 - Update to 1.30.0 release