diff --git a/community/grpc/PKGBUILD b/community/grpc/PKGBUILD
index 270a15ec1..d4deaa076 100644
--- a/community/grpc/PKGBUILD
+++ b/community/grpc/PKGBUILD
@@ -7,7 +7,7 @@
 
 pkgbase='grpc'
 pkgname=('grpc' 'python-grpcio' 'php-grpc' 'php7-grpc' 'grpc-cli')
-pkgver=1.41.0
+pkgver=1.41.1
 _gtestver=c9ccac7cb7345901884aabf5d1a786cfa6e2f397
 pkgrel=1
 pkgdesc="High performance, open source, general RPC framework that puts mobile and HTTP/2 first."
@@ -19,16 +19,19 @@ makedepends=('re2' 're2c' 'protobuf' 'php' 'php7' 'c-ares' 'openssl' 'chrpath' '
 source=("https://github.com/grpc/grpc/archive/v$pkgver/$pkgbase-$pkgver.tar.gz"
         "https://github.com/google/googletest/archive/$_gtestver/googletest-$_gtestver.tar.gz"
         "grpc-assert.patch"
-        "python-grpcio-use-system-abseil.patch")
-sha256sums=('e5fb30aae1fa1cffa4ce00aa0bbfab908c0b899fcf0bbc30e268367d660d8656'
+        "python-grpcio-use-system-abseil.patch"
+        "benchmark-1.6.patch")
+sha256sums=('12a4a6f8c06b96e38f8576ded76d0b79bce13efd7560ed22134c2f433bc496ad'
             '443d383db648ebb8e391382c0ab63263b7091d03197f304390baac10f178a468'
             'ec0fc6af1b191da8660d1fd807da0f38f1dca1e6ee3bc7abbe69d5bc2049116f'
-            '3cfb289266f9d2697b917e4400f18a6592f95a99e658e401c1332870b219358b')
+            '3cfb289266f9d2697b917e4400f18a6592f95a99e658e401c1332870b219358b'
+            '9ced7c26961872daa9e3053d2dfce3cdf50593354384ad0664910852566f3be2')
 
 prepare() {
   cd "$srcdir/$pkgbase-$pkgver"
   patch -Np1 -i ../grpc-assert.patch
   patch -Np1 -i ../python-grpcio-use-system-abseil.patch
+  patch -Np1 -i ../benchmark-1.6.patch
 
   ln -sf "$srcdir/googletest-$_gtestver/"{googlemock,googletest} \
     third_party/googletest
diff --git a/community/grpc/benchmark-1.6.patch b/community/grpc/benchmark-1.6.patch
new file mode 100644
index 000000000..2e1b4c8d7
--- /dev/null
+++ b/community/grpc/benchmark-1.6.patch
@@ -0,0 +1,40 @@
+diff --git a/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc b/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
+index 66bc5d8..d33991d 100644
+--- a/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
++++ b/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
+@@ -162,7 +162,7 @@ static void teardown() {
+ */
+ static void BM_Cq_Throughput(benchmark::State& state) {
+   gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_MONOTONIC);
+-  auto thd_idx = state.thread_index;
++  auto thd_idx = state.thread_index();
+ 
+   gpr_mu_lock(&g_mu);
+   g_threads_active++;
+diff --git a/test/cpp/microbenchmarks/bm_threadpool.cc b/test/cpp/microbenchmarks/bm_threadpool.cc
+index dd57bce..82cd08e 100644
+--- a/test/cpp/microbenchmarks/bm_threadpool.cc
++++ b/test/cpp/microbenchmarks/bm_threadpool.cc
+@@ -153,11 +153,11 @@ class SuicideFunctorForAdd : public grpc_completion_queue_functor {
+ static void BM_ThreadPoolExternalAdd(benchmark::State& state) {
+   static grpc_core::ThreadPool* external_add_pool = nullptr;
+   // Setup for each run of test.
+-  if (state.thread_index == 0) {
++  if (state.thread_index() == 0) {
+     const int num_threads = state.range(1);
+     external_add_pool = new grpc_core::ThreadPool(num_threads);
+   }
+-  const int num_iterations = state.range(0) / state.threads;
++  const int num_iterations = state.range(0) / state.threads();
+   while (state.KeepRunningBatch(num_iterations)) {
+     BlockingCounter counter(num_iterations);
+     for (int i = 0; i < num_iterations; ++i) {
+@@ -167,7 +167,7 @@ static void BM_ThreadPoolExternalAdd(benchmark::State& state) {
+   }
+ 
+   // Teardown at the end of each test run.
+-  if (state.thread_index == 0) {
++  if (state.thread_index() == 0) {
+     state.SetItemsProcessed(state.range(0));
+     delete external_add_pool;
+   }