drm/amd/display: prevent potential division by zero errors
authorjsg <jsg@openbsd.org>
Tue, 19 Sep 2023 12:42:34 +0000 (12:42 +0000)
committerjsg <jsg@openbsd.org>
Tue, 19 Sep 2023 12:42:34 +0000 (12:42 +0000)
From Hamza Mahfooz
ff536a96687cf976d89bed08d40fcaae6bf50304 in linux-6.1.y/6.1.54
07e388aab042774f284a2ad75a70a194517cdad4 in mainline linux

sys/dev/pci/drm/amd/display/modules/freesync/freesync.c

index 668133d..de9f7c4 100644 (file)
@@ -338,7 +338,9 @@ static void apply_below_the_range(struct core_freesync *core_freesync,
                 *  - Delta for CEIL: delta_from_mid_point_in_us_1
                 *  - Delta for FLOOR: delta_from_mid_point_in_us_2
                 */
-               if ((last_render_time_in_us / mid_point_frames_ceil) < in_out_vrr->min_duration_in_us) {
+               if (mid_point_frames_ceil &&
+                   (last_render_time_in_us / mid_point_frames_ceil) <
+                   in_out_vrr->min_duration_in_us) {
                        /* Check for out of range.
                         * If using CEIL produces a value that is out of range,
                         * then we are forced to use FLOOR.
@@ -385,8 +387,9 @@ static void apply_below_the_range(struct core_freesync *core_freesync,
                /* Either we've calculated the number of frames to insert,
                 * or we need to insert min duration frames
                 */
-               if (last_render_time_in_us / frames_to_insert <
-                               in_out_vrr->min_duration_in_us){
+               if (frames_to_insert &&
+                   (last_render_time_in_us / frames_to_insert) <
+                   in_out_vrr->min_duration_in_us){
                        frames_to_insert -= (frames_to_insert > 1) ?
                                        1 : 0;
                }