public inbox for rust-for-linux@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1
@ 2026-01-07 20:16 Timur Tabi
  2026-01-07 20:16 ` [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings Timur Tabi
  2026-01-22 23:44 ` [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
  0 siblings, 2 replies; 8+ messages in thread
From: Timur Tabi @ 2026-01-07 20:16 UTC (permalink / raw)
  To: Danilo Krummrich, Alexandre Courbot, Joel Fernandes, John Hubbard,
	Miguel Ojeda, nouveau, rust-for-linux

The NV_PFALCON_FALCON_DMATRFBASE/1 register pair supports DMA addresses
up to 49 bits only, but the write to DMATRFBASE1 could exceed that.
To mitigate, check first that the DMA address will fit.

Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com>
Fixes: 69f5cd67ce41 ("gpu: nova-core: add falcon register definitions and base code")
Signed-off-by: Timur Tabi <ttabi@nvidia.com>
---

v2: Improved comment and moved check earlier in function

 drivers/gpu/nova-core/falcon.rs | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs
index 82c661aef594..6ae0490caffa 100644
--- a/drivers/gpu/nova-core/falcon.rs
+++ b/drivers/gpu/nova-core/falcon.rs
@@ -472,6 +472,12 @@ fn dma_wr<F: FalconFirmware<Target = E>>(
             return Err(EINVAL);
         }
 
+        // The DMATRFBASE/1 register pair only supports a 49-bit address.
+        if dma_start > kernel::dma::DmaMask::new::<49>().value() {
+            dev_err!(self.dev, "DMA address {:#x} exceeds 49 bits\n", dma_start);
+            return Err(ERANGE);
+        }
+
         // DMA transfers can only be done in units of 256 bytes. Compute how many such transfers we
         // need to perform.
         let num_transfers = load_offsets.len.div_ceil(DMA_LEN);

base-commit: 2d7b4a44fb768e1887e7e4cdd8b86817ccd9c3bf
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings
  2026-01-07 20:16 [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
@ 2026-01-07 20:16 ` Timur Tabi
  2026-01-07 20:48   ` John Hubbard
  2026-01-22 23:44 ` [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
  1 sibling, 1 reply; 8+ messages in thread
From: Timur Tabi @ 2026-01-07 20:16 UTC (permalink / raw)
  To: Danilo Krummrich, Alexandre Courbot, Joel Fernandes, John Hubbard,
	Miguel Ojeda, nouveau, rust-for-linux

Although the dev_xx!() macro calls do not technically require terminating
newlines for the format strings, they should be added anyway to maintain
consistency, both within Rust code and with the C versions.

Signed-off-by: Timur Tabi <ttabi@nvidia.com>
---
v2: added some more strings that were missed

 drivers/gpu/nova-core/falcon.rs           |  6 +++---
 drivers/gpu/nova-core/falcon/hal/ga102.rs |  4 ++--
 drivers/gpu/nova-core/fb.rs               |  2 +-
 drivers/gpu/nova-core/gpu.rs              |  2 +-
 drivers/gpu/nova-core/gsp/boot.rs         |  2 +-
 drivers/gpu/nova-core/gsp/cmdq.rs         |  2 +-
 drivers/gpu/nova-core/gsp/sequencer.rs    | 10 +++++-----
 drivers/gpu/nova-core/vbios.rs            |  2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs
index 6ae0490caffa..4e1da0b9cf4f 100644
--- a/drivers/gpu/nova-core/falcon.rs
+++ b/drivers/gpu/nova-core/falcon.rs
@@ -466,7 +466,7 @@ fn dma_wr<F: FalconFirmware<Target = E>>(
         if dma_start % DmaAddress::from(DMA_LEN) > 0 {
             dev_err!(
                 self.dev,
-                "DMA transfer start addresses must be a multiple of {}",
+                "DMA transfer start addresses must be a multiple of {}\n",
                 DMA_LEN
             );
             return Err(EINVAL);
@@ -489,11 +489,11 @@ fn dma_wr<F: FalconFirmware<Target = E>>(
             .and_then(|size| size.checked_add(load_offsets.src_start))
         {
             None => {
-                dev_err!(self.dev, "DMA transfer length overflow");
+                dev_err!(self.dev, "DMA transfer length overflow\n");
                 return Err(EOVERFLOW);
             }
             Some(upper_bound) if usize::from_safe_cast(upper_bound) > fw.size() => {
-                dev_err!(self.dev, "DMA transfer goes beyond range of DMA object");
+                dev_err!(self.dev, "DMA transfer goes beyond range of DMA object\n");
                 return Err(EINVAL);
             }
             Some(_) => (),
diff --git a/drivers/gpu/nova-core/falcon/hal/ga102.rs b/drivers/gpu/nova-core/falcon/hal/ga102.rs
index 69a7a95cac16..0bdfe45a2d03 100644
--- a/drivers/gpu/nova-core/falcon/hal/ga102.rs
+++ b/drivers/gpu/nova-core/falcon/hal/ga102.rs
@@ -52,7 +52,7 @@ fn signature_reg_fuse_version_ga102(
     let ucode_idx = match usize::from(ucode_id) {
         ucode_id @ 1..=regs::NV_FUSE_OPT_FPF_SIZE => ucode_id - 1,
         _ => {
-            dev_err!(dev, "invalid ucode id {:#x}", ucode_id);
+            dev_err!(dev, "invalid ucode id {:#x}\n", ucode_id);
             return Err(EINVAL);
         }
     };
@@ -66,7 +66,7 @@ fn signature_reg_fuse_version_ga102(
     } else if engine_id_mask & 0x0400 != 0 {
         regs::NV_FUSE_OPT_FPF_GSP_UCODE1_VERSION::read(bar, ucode_idx).data()
     } else {
-        dev_err!(dev, "unexpected engine_id_mask {:#x}", engine_id_mask);
+        dev_err!(dev, "unexpected engine_id_mask {:#x}\n", engine_id_mask);
         return Err(EINVAL);
     };
 
diff --git a/drivers/gpu/nova-core/fb.rs b/drivers/gpu/nova-core/fb.rs
index 3c9cf151786c..c62abcaed547 100644
--- a/drivers/gpu/nova-core/fb.rs
+++ b/drivers/gpu/nova-core/fb.rs
@@ -80,7 +80,7 @@ pub(crate) fn unregister(&self, bar: &Bar0) {
             let _ = hal.write_sysmem_flush_page(bar, 0).inspect_err(|e| {
                 dev_warn!(
                     &self.device,
-                    "failed to unregister sysmem flush page: {:?}",
+                    "failed to unregister sysmem flush page: {:?}\n",
                     e
                 )
             });
diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs
index 50d76092fbdd..9b042ef1a308 100644
--- a/drivers/gpu/nova-core/gpu.rs
+++ b/drivers/gpu/nova-core/gpu.rs
@@ -268,7 +268,7 @@ pub(crate) fn new<'a>(
             // We must wait for GFW_BOOT completion before doing any significant setup on the GPU.
             _: {
                 gfw::wait_gfw_boot_completion(bar)
-                    .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did not complete"))?;
+                    .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did not complete\n"))?;
             },
 
             sysmem_flush: SysmemFlush::register(pdev.as_ref(), bar, spec.chipset)?,
diff --git a/drivers/gpu/nova-core/gsp/boot.rs b/drivers/gpu/nova-core/gsp/boot.rs
index a53d80620468..da21447be663 100644
--- a/drivers/gpu/nova-core/gsp/boot.rs
+++ b/drivers/gpu/nova-core/gsp/boot.rs
@@ -82,7 +82,7 @@ fn run_fwsec_frts(
         if frts_status != 0 {
             dev_err!(
                 dev,
-                "FWSEC-FRTS returned with error code {:#x}",
+                "FWSEC-FRTS returned with error code {:#x}\n",
                 frts_status
             );
 
diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/cmdq.rs
index 6f946d14868a..3c01fc6e6b6a 100644
--- a/drivers/gpu/nova-core/gsp/cmdq.rs
+++ b/drivers/gpu/nova-core/gsp/cmdq.rs
@@ -615,7 +615,7 @@ fn wait_for_msg(&self, timeout: Delta) -> Result<GspMessage<'_>> {
         {
             dev_err!(
                 self.dev,
-                "GSP RPC: receive: Call {} - bad checksum",
+                "GSP RPC: receive: Call {} - bad checksum\n",
                 header.sequence()
             );
             return Err(EIO);
diff --git a/drivers/gpu/nova-core/gsp/sequencer.rs b/drivers/gpu/nova-core/gsp/sequencer.rs
index d78a30fbb70f..d6c489c39092 100644
--- a/drivers/gpu/nova-core/gsp/sequencer.rs
+++ b/drivers/gpu/nova-core/gsp/sequencer.rs
@@ -121,7 +121,7 @@ pub(crate) fn new(data: &[u8], dev: &device::Device) -> Result<(Self, usize)> {
         };
 
         if data.len() < size {
-            dev_err!(dev, "Data is not enough for command");
+            dev_err!(dev, "Data is not enough for command\n");
             return Err(EINVAL);
         }
 
@@ -320,7 +320,7 @@ fn next(&mut self) -> Option<Self::Item> {
 
         cmd_result.map_or_else(
             |_err| {
-                dev_err!(self.dev, "Error parsing command at offset {}", offset);
+                dev_err!(self.dev, "Error parsing command at offset {}\n", offset);
                 None
             },
             |(cmd, size)| {
@@ -382,7 +382,7 @@ pub(crate) fn run(cmdq: &mut Cmdq, params: GspSequencerParams<'a>) -> Result {
             dev: params.dev,
         };
 
-        dev_dbg!(sequencer.dev, "Running CPU Sequencer commands");
+        dev_dbg!(sequencer.dev, "Running CPU Sequencer commands\n");
 
         for cmd_result in sequencer.iter() {
             match cmd_result {
@@ -390,7 +390,7 @@ pub(crate) fn run(cmdq: &mut Cmdq, params: GspSequencerParams<'a>) -> Result {
                 Err(e) => {
                     dev_err!(
                         sequencer.dev,
-                        "Error running command at index {}",
+                        "Error running command at index {}\n",
                         sequencer.seq_info.cmd_index
                     );
                     return Err(e);
@@ -400,7 +400,7 @@ pub(crate) fn run(cmdq: &mut Cmdq, params: GspSequencerParams<'a>) -> Result {
 
         dev_dbg!(
             sequencer.dev,
-            "CPU Sequencer commands completed successfully"
+            "CPU Sequencer commands completed successfully\n"
         );
         Ok(())
     }
diff --git a/drivers/gpu/nova-core/vbios.rs b/drivers/gpu/nova-core/vbios.rs
index 7c26e4a2d61c..e4eae9385f47 100644
--- a/drivers/gpu/nova-core/vbios.rs
+++ b/drivers/gpu/nova-core/vbios.rs
@@ -790,7 +790,7 @@ fn falcon_data_ptr(&self) -> Result<u32> {
         // read the 4 bytes at the offset specified in the token
         let offset = usize::from(token.data_offset);
         let bytes: [u8; 4] = self.base.data[offset..offset + 4].try_into().map_err(|_| {
-            dev_err!(self.base.dev, "Failed to convert data slice to array");
+            dev_err!(self.base.dev, "Failed to convert data slice to array\n");
             EINVAL
         })?;
 
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings
  2026-01-07 20:16 ` [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings Timur Tabi
@ 2026-01-07 20:48   ` John Hubbard
  2026-01-08 23:12     ` John Hubbard
  0 siblings, 1 reply; 8+ messages in thread
From: John Hubbard @ 2026-01-07 20:48 UTC (permalink / raw)
  To: Timur Tabi, Danilo Krummrich, Alexandre Courbot, Joel Fernandes,
	Miguel Ojeda, nouveau, rust-for-linux

On 1/7/26 12:16 PM, Timur Tabi wrote:
> Although the dev_xx!() macro calls do not technically require terminating
> newlines for the format strings, they should be added anyway to maintain
> consistency, both within Rust code and with the C versions.
> 
> Signed-off-by: Timur Tabi <ttabi@nvidia.com>
> ---
> v2: added some more strings that were missed
> 
>  drivers/gpu/nova-core/falcon.rs           |  6 +++---
>  drivers/gpu/nova-core/falcon/hal/ga102.rs |  4 ++--
>  drivers/gpu/nova-core/fb.rs               |  2 +-
>  drivers/gpu/nova-core/gpu.rs              |  2 +-
>  drivers/gpu/nova-core/gsp/boot.rs         |  2 +-
>  drivers/gpu/nova-core/gsp/cmdq.rs         |  2 +-
>  drivers/gpu/nova-core/gsp/sequencer.rs    | 10 +++++-----
>  drivers/gpu/nova-core/vbios.rs            |  2 +-
>  8 files changed, 15 insertions(+), 15 deletions(-)

OK, looks like you got them all:

Codebase                          WITH \n    WITHOUT \n    % with \n
-------------------------------------------------------------------
nova-core (dev_*!)                     73             0         100%


Reviewed-by: John Hubbard <jhubbard@nvidia.com>

thanks,
-- 
John Hubbard

> 
> diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs
> index 6ae0490caffa..4e1da0b9cf4f 100644
> --- a/drivers/gpu/nova-core/falcon.rs
> +++ b/drivers/gpu/nova-core/falcon.rs
> @@ -466,7 +466,7 @@ fn dma_wr<F: FalconFirmware<Target = E>>(
>          if dma_start % DmaAddress::from(DMA_LEN) > 0 {
>              dev_err!(
>                  self.dev,
> -                "DMA transfer start addresses must be a multiple of {}",
> +                "DMA transfer start addresses must be a multiple of {}\n",
>                  DMA_LEN
>              );
>              return Err(EINVAL);
> @@ -489,11 +489,11 @@ fn dma_wr<F: FalconFirmware<Target = E>>(
>              .and_then(|size| size.checked_add(load_offsets.src_start))
>          {
>              None => {
> -                dev_err!(self.dev, "DMA transfer length overflow");
> +                dev_err!(self.dev, "DMA transfer length overflow\n");
>                  return Err(EOVERFLOW);
>              }
>              Some(upper_bound) if usize::from_safe_cast(upper_bound) > fw.size() => {
> -                dev_err!(self.dev, "DMA transfer goes beyond range of DMA object");
> +                dev_err!(self.dev, "DMA transfer goes beyond range of DMA object\n");
>                  return Err(EINVAL);
>              }
>              Some(_) => (),
> diff --git a/drivers/gpu/nova-core/falcon/hal/ga102.rs b/drivers/gpu/nova-core/falcon/hal/ga102.rs
> index 69a7a95cac16..0bdfe45a2d03 100644
> --- a/drivers/gpu/nova-core/falcon/hal/ga102.rs
> +++ b/drivers/gpu/nova-core/falcon/hal/ga102.rs
> @@ -52,7 +52,7 @@ fn signature_reg_fuse_version_ga102(
>      let ucode_idx = match usize::from(ucode_id) {
>          ucode_id @ 1..=regs::NV_FUSE_OPT_FPF_SIZE => ucode_id - 1,
>          _ => {
> -            dev_err!(dev, "invalid ucode id {:#x}", ucode_id);
> +            dev_err!(dev, "invalid ucode id {:#x}\n", ucode_id);
>              return Err(EINVAL);
>          }
>      };
> @@ -66,7 +66,7 @@ fn signature_reg_fuse_version_ga102(
>      } else if engine_id_mask & 0x0400 != 0 {
>          regs::NV_FUSE_OPT_FPF_GSP_UCODE1_VERSION::read(bar, ucode_idx).data()
>      } else {
> -        dev_err!(dev, "unexpected engine_id_mask {:#x}", engine_id_mask);
> +        dev_err!(dev, "unexpected engine_id_mask {:#x}\n", engine_id_mask);
>          return Err(EINVAL);
>      };
>  
> diff --git a/drivers/gpu/nova-core/fb.rs b/drivers/gpu/nova-core/fb.rs
> index 3c9cf151786c..c62abcaed547 100644
> --- a/drivers/gpu/nova-core/fb.rs
> +++ b/drivers/gpu/nova-core/fb.rs
> @@ -80,7 +80,7 @@ pub(crate) fn unregister(&self, bar: &Bar0) {
>              let _ = hal.write_sysmem_flush_page(bar, 0).inspect_err(|e| {
>                  dev_warn!(
>                      &self.device,
> -                    "failed to unregister sysmem flush page: {:?}",
> +                    "failed to unregister sysmem flush page: {:?}\n",
>                      e
>                  )
>              });
> diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs
> index 50d76092fbdd..9b042ef1a308 100644
> --- a/drivers/gpu/nova-core/gpu.rs
> +++ b/drivers/gpu/nova-core/gpu.rs
> @@ -268,7 +268,7 @@ pub(crate) fn new<'a>(
>              // We must wait for GFW_BOOT completion before doing any significant setup on the GPU.
>              _: {
>                  gfw::wait_gfw_boot_completion(bar)
> -                    .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did not complete"))?;
> +                    .inspect_err(|_| dev_err!(pdev.as_ref(), "GFW boot did not complete\n"))?;
>              },
>  
>              sysmem_flush: SysmemFlush::register(pdev.as_ref(), bar, spec.chipset)?,
> diff --git a/drivers/gpu/nova-core/gsp/boot.rs b/drivers/gpu/nova-core/gsp/boot.rs
> index a53d80620468..da21447be663 100644
> --- a/drivers/gpu/nova-core/gsp/boot.rs
> +++ b/drivers/gpu/nova-core/gsp/boot.rs
> @@ -82,7 +82,7 @@ fn run_fwsec_frts(
>          if frts_status != 0 {
>              dev_err!(
>                  dev,
> -                "FWSEC-FRTS returned with error code {:#x}",
> +                "FWSEC-FRTS returned with error code {:#x}\n",
>                  frts_status
>              );
>  
> diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/cmdq.rs
> index 6f946d14868a..3c01fc6e6b6a 100644
> --- a/drivers/gpu/nova-core/gsp/cmdq.rs
> +++ b/drivers/gpu/nova-core/gsp/cmdq.rs
> @@ -615,7 +615,7 @@ fn wait_for_msg(&self, timeout: Delta) -> Result<GspMessage<'_>> {
>          {
>              dev_err!(
>                  self.dev,
> -                "GSP RPC: receive: Call {} - bad checksum",
> +                "GSP RPC: receive: Call {} - bad checksum\n",
>                  header.sequence()
>              );
>              return Err(EIO);
> diff --git a/drivers/gpu/nova-core/gsp/sequencer.rs b/drivers/gpu/nova-core/gsp/sequencer.rs
> index d78a30fbb70f..d6c489c39092 100644
> --- a/drivers/gpu/nova-core/gsp/sequencer.rs
> +++ b/drivers/gpu/nova-core/gsp/sequencer.rs
> @@ -121,7 +121,7 @@ pub(crate) fn new(data: &[u8], dev: &device::Device) -> Result<(Self, usize)> {
>          };
>  
>          if data.len() < size {
> -            dev_err!(dev, "Data is not enough for command");
> +            dev_err!(dev, "Data is not enough for command\n");
>              return Err(EINVAL);
>          }
>  
> @@ -320,7 +320,7 @@ fn next(&mut self) -> Option<Self::Item> {
>  
>          cmd_result.map_or_else(
>              |_err| {
> -                dev_err!(self.dev, "Error parsing command at offset {}", offset);
> +                dev_err!(self.dev, "Error parsing command at offset {}\n", offset);
>                  None
>              },
>              |(cmd, size)| {
> @@ -382,7 +382,7 @@ pub(crate) fn run(cmdq: &mut Cmdq, params: GspSequencerParams<'a>) -> Result {
>              dev: params.dev,
>          };
>  
> -        dev_dbg!(sequencer.dev, "Running CPU Sequencer commands");
> +        dev_dbg!(sequencer.dev, "Running CPU Sequencer commands\n");
>  
>          for cmd_result in sequencer.iter() {
>              match cmd_result {
> @@ -390,7 +390,7 @@ pub(crate) fn run(cmdq: &mut Cmdq, params: GspSequencerParams<'a>) -> Result {
>                  Err(e) => {
>                      dev_err!(
>                          sequencer.dev,
> -                        "Error running command at index {}",
> +                        "Error running command at index {}\n",
>                          sequencer.seq_info.cmd_index
>                      );
>                      return Err(e);
> @@ -400,7 +400,7 @@ pub(crate) fn run(cmdq: &mut Cmdq, params: GspSequencerParams<'a>) -> Result {
>  
>          dev_dbg!(
>              sequencer.dev,
> -            "CPU Sequencer commands completed successfully"
> +            "CPU Sequencer commands completed successfully\n"
>          );
>          Ok(())
>      }
> diff --git a/drivers/gpu/nova-core/vbios.rs b/drivers/gpu/nova-core/vbios.rs
> index 7c26e4a2d61c..e4eae9385f47 100644
> --- a/drivers/gpu/nova-core/vbios.rs
> +++ b/drivers/gpu/nova-core/vbios.rs
> @@ -790,7 +790,7 @@ fn falcon_data_ptr(&self) -> Result<u32> {
>          // read the 4 bytes at the offset specified in the token
>          let offset = usize::from(token.data_offset);
>          let bytes: [u8; 4] = self.base.data[offset..offset + 4].try_into().map_err(|_| {
> -            dev_err!(self.base.dev, "Failed to convert data slice to array");
> +            dev_err!(self.base.dev, "Failed to convert data slice to array\n");
>              EINVAL
>          })?;
>  



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings
  2026-01-07 20:48   ` John Hubbard
@ 2026-01-08 23:12     ` John Hubbard
  2026-01-08 23:22       ` Danilo Krummrich
  0 siblings, 1 reply; 8+ messages in thread
From: John Hubbard @ 2026-01-08 23:12 UTC (permalink / raw)
  To: Timur Tabi, Danilo Krummrich, Alexandre Courbot, Joel Fernandes,
	Miguel Ojeda, nouveau, rust-for-linux

On 1/7/26 12:48 PM, John Hubbard wrote:
> On 1/7/26 12:16 PM, Timur Tabi wrote:
>> Although the dev_xx!() macro calls do not technically require terminating
>> newlines for the format strings, they should be added anyway to maintain
>> consistency, both within Rust code and with the C versions.
>>
>> Signed-off-by: Timur Tabi <ttabi@nvidia.com>
>> ---
>> v2: added some more strings that were missed
... 
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> 
Hi Danilo,

Are you comfortable merging these two patches to drm-rust-next? I think
they are ready to go at this point.

thanks,
-- 
John Hubbard


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings
  2026-01-08 23:12     ` John Hubbard
@ 2026-01-08 23:22       ` Danilo Krummrich
  2026-01-12 14:15         ` Danilo Krummrich
  0 siblings, 1 reply; 8+ messages in thread
From: Danilo Krummrich @ 2026-01-08 23:22 UTC (permalink / raw)
  To: John Hubbard
  Cc: Timur Tabi, Alexandre Courbot, Joel Fernandes, Miguel Ojeda,
	nouveau, rust-for-linux

On 1/9/26 12:12 AM, John Hubbard wrote:
> Are you comfortable merging these two patches to drm-rust-next? I think
> they are ready to go at this point.

Yes, they are already on my apply list.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings
  2026-01-08 23:22       ` Danilo Krummrich
@ 2026-01-12 14:15         ` Danilo Krummrich
  0 siblings, 0 replies; 8+ messages in thread
From: Danilo Krummrich @ 2026-01-12 14:15 UTC (permalink / raw)
  To: John Hubbard
  Cc: Timur Tabi, Alexandre Courbot, Joel Fernandes, Miguel Ojeda,
	nouveau, rust-for-linux

On Fri Jan 9, 2026 at 12:22 AM CET, Danilo Krummrich wrote:
> On 1/9/26 12:12 AM, John Hubbard wrote:
>> Are you comfortable merging these two patches to drm-rust-next? I think
>> they are ready to go at this point.
>
> Yes, they are already on my apply list.

Applied to drm-rust-next, thanks!

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1
  2026-01-07 20:16 [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
  2026-01-07 20:16 ` [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings Timur Tabi
@ 2026-01-22 23:44 ` Timur Tabi
  2026-01-23 16:23   ` Danilo Krummrich
  1 sibling, 1 reply; 8+ messages in thread
From: Timur Tabi @ 2026-01-22 23:44 UTC (permalink / raw)
  To: ojeda@kernel.org, Alexandre Courbot, dakr@kernel.org,
	nouveau@lists.freedesktop.org, Joel Fernandes, John Hubbard,
	rust-for-linux@vger.kernel.org

On Wed, 2026-01-07 at 14:16 -0600, Timur Tabi wrote:
> The NV_PFALCON_FALCON_DMATRFBASE/1 register pair supports DMA addresses
> up to 49 bits only, but the write to DMATRFBASE1 could exceed that.
> To mitigate, check first that the DMA address will fit.
> 
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com>
> Fixes: 69f5cd67ce41 ("gpu: nova-core: add falcon register definitions and base code")
> Signed-off-by: Timur Tabi <ttabi@nvidia.com>

Danilo, is it too late to make 6.20 with this patch?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1
  2026-01-22 23:44 ` [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
@ 2026-01-23 16:23   ` Danilo Krummrich
  0 siblings, 0 replies; 8+ messages in thread
From: Danilo Krummrich @ 2026-01-23 16:23 UTC (permalink / raw)
  To: Timur Tabi
  Cc: ojeda@kernel.org, Alexandre Courbot,
	nouveau@lists.freedesktop.org, Joel Fernandes, John Hubbard,
	rust-for-linux@vger.kernel.org

On Fri Jan 23, 2026 at 12:44 AM CET, Timur Tabi wrote:
> On Wed, 2026-01-07 at 14:16 -0600, Timur Tabi wrote:
>> The NV_PFALCON_FALCON_DMATRFBASE/1 register pair supports DMA addresses
>> up to 49 bits only, but the write to DMATRFBASE1 could exceed that.
>> To mitigate, check first that the DMA address will fit.
>> 
>> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
>> Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com>
>> Fixes: 69f5cd67ce41 ("gpu: nova-core: add falcon register definitions and base code")
>> Signed-off-by: Timur Tabi <ttabi@nvidia.com>
>
> Danilo, is it too late to make 6.20 with this patch?

This patch is already in drm-rust-next.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-01-23 16:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-07 20:16 [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
2026-01-07 20:16 ` [PATCH v2 2/2] gpu: nova-core: add missing newlines to several print strings Timur Tabi
2026-01-07 20:48   ` John Hubbard
2026-01-08 23:12     ` John Hubbard
2026-01-08 23:22       ` Danilo Krummrich
2026-01-12 14:15         ` Danilo Krummrich
2026-01-22 23:44 ` [PATCH v2 1/2] gpu: nova-core: check for overflow to DMATRFBASE1 Timur Tabi
2026-01-23 16:23   ` Danilo Krummrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox