Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

aacraid: avoid calling pci_free_consistent on NULL pointer. #221

Closed
wants to merge 141 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
71f778c
DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd
Lyude Aug 21, 2015
197765d
drm/i915: apply the PCI_D0/D3 hibernation workaround everywhere on pr…
ideak Jun 30, 2015
529c564
drm/i915: Check DP link status on long hpd too
vsyrjala Aug 20, 2015
14d98e4
drm/radeon/atom: Send out the full AUX address
vsyrjala Aug 27, 2015
b11b8de
drm/amdgpu/atom: Send out the full AUX address
alexdeucher Aug 31, 2015
9aaf235
drm/radeon/native: Send out the full AUX address
alexdeucher Aug 31, 2015
c5a3c45
drm/radeon: fix HDMI quantization_range for pre-DCE5 asics
alexdeucher Aug 27, 2015
b2a1098
drm/amdgpu: fix one warning message
Aug 7, 2015
a93dd14
drm/amdgpu: Don't link train DisplayPort on HPD until we get the dpcd
alexdeucher Aug 21, 2015
0abcb8a
drm/amdgpu: fix IH ring allocation for bus addresses (v2)
alexdeucher Aug 25, 2015
5ee5204
drm/amdgpu: fix typo in dce11 watermark setup
alexdeucher Sep 3, 2015
b175955
drm/amdgpu: fix typo in dce10 watermark setup
alexdeucher Sep 3, 2015
c476464
drm/i915: Preserve SSC earlier
l1k Jul 15, 2015
9648e7a
drm/qxl: validate monitors config modes
jonner Aug 20, 2015
2c5417a
drm/i915: Allow DSI dual link to be configured on any pipe
gksingh1 Aug 3, 2015
f962a1e
drm/i915: Always mark the object as dirty when used by the GPU
ickle Aug 31, 2015
f3bfd56
drm/i915: Limit the number of loops for reading a split 64bit register
ickle Sep 8, 2015
303b47e
drm/i915: Fix CSR MMIO address check
tiwai Sep 9, 2015
eb9edaa
s390/setup: fix novx parameter
Aug 14, 2015
8acfac8
iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required
Jul 29, 2015
63fa3d2
iio: event: Remove negative error code from iio_event_poll
cristina2689 Aug 3, 2015
b424b19
iio: industrialio-buffer: Fix iio_buffer_poll return value
cristina2689 Aug 3, 2015
eb01c4a
iio: adis16400: Fix adis16448 gyroscope scale
larsclausen Aug 5, 2015
0d24649
iio: Add inverse unit conversion macros
larsclausen Aug 5, 2015
84ba7a7
iio: adis16480: Fix scale factors
larsclausen Aug 5, 2015
d409b07
iio:accel:mma8452: fix _get_hp_filter_index
Aug 2, 2015
0a3b19c
sched: Fix cpu_active_mask/cpu_online_mask race
schnhrr Aug 12, 2015
ef07b80
staging: rtl8192e: Fix log spamming in rtl8192_hard_data_xmit
hallor Aug 12, 2015
27f337e
staging: comedi: adl_pci7x3x: fix digital output on PCI-7230
ian-abbott Aug 11, 2015
2721d99
staging: comedi: usbduxsigma: don't clobber ai_timer in command test
ian-abbott Jul 23, 2015
77b7b8c
staging: comedi: usbduxsigma: don't clobber ao_timer in command test
ian-abbott Jul 23, 2015
0fc9f4d
staging: unisys: Allow visorbus to autoload
davidker Jul 9, 2015
342f068
PM / clk: don't return int on __pm_clk_enable()
Jun 29, 2015
87e980e
clk: rockchip: rk3288: add CLK_SET_RATE_PARENT to sclk_mac
mmind Jun 18, 2015
36dd7ab
clk: exynos4: Fix wrong clock for Exynos4x12 ADC
krzk Jun 12, 2015
cd26539
clk: s5pv210: add missing call to samsung_clk_of_add_provider()
mszyprow Aug 12, 2015
f96b6fd
clk: pistachio: Fix 32bit integer overflows
Aug 26, 2015
ac4c4c4
clk: pistachio: Fix override of clk-pll settings from boot loader
Aug 26, 2015
73cf8ca
clk: pistachio: Fix PLL rate calculation in integer mode
Aug 26, 2015
ba45728
clk: pistachio: correct critical clock list
Aug 26, 2015
42f61b5
clk: versatile: off by one in clk_sp810_timerclken_of_get()
Jul 29, 2015
b3ca66d
clk: pxa: fix core frequency reporting unit
rjarzmik Jul 12, 2015
4020a98
clk: qcom: Set CLK_SET_RATE_PARENT on ce1 clocks
bebarino Jul 14, 2015
224739b
clk: qcom: Fix MSM8916 prng clock enable bit
Aug 25, 2015
2aeb485
PCI: Fix TI816X class code quirk
bjorn-helgaas Jun 19, 2015
dbabc22
PCI: Add dev_flags bit to access VPD through function 0
mdrustad Jul 13, 2015
a0ad574
PCI: Add VPD function 0 quirk for Intel Ethernet devices
mdrustad Jul 13, 2015
a7cec7d
PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI
zhang-rui Aug 24, 2015
5a101aa
serial: 8250_uniphier: call clk_disable_unprepare() on failure path
masahir0y Jul 24, 2015
5b80ec4
tty: serial: 8250_omap: do not use RX DMA if pause is not supported
Aug 14, 2015
75572c7
spi: bcm2835: set up spi-mode before asserting cs-gpio
msperl Jul 28, 2015
c05337f
spi: Fix regression in spi-bitbang-txrx.h
larperaxis Jul 29, 2015
2e69408
spi: orion: On a38x, implement "50MHZ SPI AC timing" Erratum No. FE-9…
Aug 11, 2015
7c19755
spi: sh-msiof: Fix FIFO size to 64 word from 256 word
KojiMatsuoka Jun 14, 2015
3d6cbc3
spi: img-spfi: check for timeout error before proceeding
Jul 27, 2015
5eddcb3
spi: img-spfi: fix multiple calls to request gpio
Jul 29, 2015
321eaa8
spi: img-spfi: fix kbuild test robot warning
Aug 6, 2015
28ed737
spi: omap2-mcspi: add runtime PM to set_cs()
sre Jul 22, 2015
87da90b
spi: dw: Allow interface drivers to limit data I/O to word sizes
Aug 18, 2015
aa57159
USB: symbolserial: Use usb_get_serial_port_data
hachti Aug 17, 2015
1ba4197
USB: qcserial: add HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module
dpward Aug 18, 2015
1ceb049
USB: ftdi_sio: Added custom PID for CustomWare products
matthijskooijman Aug 18, 2015
3ded945
USB: pl2303: fix baud-rate divisor calculations
Jul 26, 2015
95310b7
libxfs: readahead of dir3 data blocks should use the read verifier
djwong Aug 19, 2015
74960d2
xfs: Fix xfs_attr_leafblock definition
Aug 19, 2015
2937b78
xfs: Fix file type directory corruption for btree directories
Aug 25, 2015
94d718d
xfs: return errors from partial I/O failures to files
Aug 28, 2015
8e07a31
usb: gadget: m66592-udc: forever loop in set_feature()
Jul 29, 2015
b21aa64
doc: usb: gadget-testing: using the updated testusb.c
Jul 31, 2015
56bd58d
usb: dwc3: ep0: Fix mem corruption on OUT transfers of more than 512 …
kishon Jul 27, 2015
c25ec85
usb: gadget: f_uac2: finalize wMaxPacketSize according to bandwidth
Jul 30, 2015
e611a71
usb: host: ehci-sys: delete useless bus_to_hcd conversion
Aug 17, 2015
f803126
tty: serial: men_z135_uart.c: Fix race between IRQ and set_termios()
Aug 6, 2015
33d4ee4
ASoC: rt5640: fix line out no sound issue
JohnLinRTK Aug 11, 2015
7ae811d
ASoC: rt5645: Add struct dmi_system_id "Google Celes" for chrome plat…
oder-chiou Aug 25, 2015
867b419
ASoC: samsung: Remove redundant arndale_audio_remove
v-thakkar Aug 20, 2015
fa3b747
ASoC: adav80x: Remove .read_flag_mask setting from adav80x_regmap_config
AxelLin Aug 14, 2015
00de7f9
ASoC: arizona: Fix gain settings of FLL in free-run mode
Aug 19, 2015
d96fc0a
ASoC: arizona: Poll for FLL clock OK rather than use interrupts
charleskeepax Aug 25, 2015
832810d
serial: 8250: don't bind to SMSC IrCC IR port
maciejsszmigiero Aug 2, 2015
ec561dc
serial: 8250: bind to ALi Fast Infrared Controller (ALI5123)
maciejsszmigiero Aug 2, 2015
79084e0
serial: 8250_pci: Add support for Pericom PI7C9X795[1248]
Aug 3, 2015
69d0fc7
serial: samsung: fix DMA mode enter condition for small FIFO sizes
mszyprow Jul 31, 2015
6748f4b
serial: samsung: fix DMA for FIFO smaller than cache line size
Jul 31, 2015
30c3a5f
crypto: vmx - Fixing AES-CTR counter bug
Aug 14, 2015
859fe08
crypto: vmx - Fixing GHASH Key issue on little endian
Aug 14, 2015
b6acf9c
crypto: ghash-clmulni: specify context size for ghash async algorithm
aryabinin Sep 3, 2015
cd3d479
HID: usbhid: Fix the check for HID_RESET_PENDING in hid_io_error
dzickusrh Aug 10, 2015
6fafee2
HID: cp2112: fix byte order in SMBUS operations
squeakbat Jul 10, 2015
8c5117d
HID: cp2112: fix I2C_SMBUS_BYTE write
squeakbat Jul 13, 2015
a0a9322
KVM: MMU: fix validation of mmio page fault
Aug 5, 2015
4dd33bd
KVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set
Aug 7, 2015
1e264da
KVM: PPC: Book3S HV: Fix race in reading change bit when removing HPTE
paulusmack Jun 24, 2015
0b07d2d
xtensa: fix threadptr reload on return to userspace
jcmvbkbc Jul 4, 2015
7affef4
xtensa: fix kernel register spilling
jcmvbkbc Jul 16, 2015
7688dfe
devres: fix devres_get()
masahir0y Jul 15, 2015
55d7857
Doc: ABI: testing: configfs-usb-gadget-loopback
Jul 31, 2015
aefbf55
Doc: ABI: testing: configfs-usb-gadget-sourcesink
Jul 31, 2015
ea69640
spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
ribalda Aug 13, 2015
cbe1672
spi/spi-xilinx: Fix mixed poll/irq mode
ribalda Aug 12, 2015
65f9194
auxdisplay: ks0108: fix refcount
sudipm-mukherjee Jul 20, 2015
bebd1a8
regulator: pbias: Fix broken pbias disable functionality
kishon Jul 27, 2015
f9d75f0
x86/mce: Reenable CMCI banks when swiching back to interrupt mode
Aug 12, 2015
0d9357e
soc/tegra: pmc: Avoid usage of uninitialized variable
thierryreding Jul 9, 2015
f41846b
of/address: Don't loop forever in of_find_matching_node_by_address().
daviddaney Aug 19, 2015
72b6a4c
ARM: BCM63xx: fix parameter to of_get_cpu_node in bcm63138_smp_boot_s…
sudeep-holla Jul 10, 2015
2dd53a1
ARM: orion5x: fix legacy orion5x IRQ numbers
Jul 14, 2015
3d7bb5c
ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
Jun 15, 2015
4b0b99d
ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
r-vignesh Jun 3, 2015
b82505c
ARM: rockchip: fix the CPU soft reset
Caesar-github Jun 9, 2015
8306598
ARM: dts: rockchip: fix rk3288 watchdog irq
mmind Jun 19, 2015
75fa68d
ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
Aug 21, 2015
2d98420
drivercore: Fix unregistration path of platform devices
glikely Jun 7, 2015
8f019cb
dm stats: report precise_timestamps and histogram in @stats_list output
Aug 18, 2015
38c7d77
dm cache: fix leaking of deferred bio prison cells
jthornber Aug 31, 2015
5bd1456
fs: Set the size of empty dirs to 0.
ebiederm Aug 12, 2015
7548d27
hpfs: update ctime and mtime on directory modification
mikulas-patocka Sep 2, 2015
95125d5
ocfs2: direct write will call ocfs2_rw_unlock() twice when doing aio+dio
Sep 4, 2015
42c7443
memory-hotplug: add hot-added memory ranges to memblock before alloca…
tang-chen Sep 4, 2015
c529120
fs: create and use seq_show_option for escaping
kees Sep 4, 2015
896b4f1
ARM: rockchip: fix broken build
Caesar-github Jul 6, 2015
f4ca8c1
Linux 4.2.1
gregkh Sep 21, 2015
359e321
powerpc: Add openpower_defconfig
jk-ozlabs Dec 12, 2014
1f3e439
net/bnx2x: Add shutdown handler
jk-ozlabs Mar 7, 2014
a853835
xhci: do not halt the secondary HCD
Mar 10, 2014
179982a
xhci: Use xhci_pci_remove for xhci device shutdown
Mar 25, 2014
bea8928
drm/ast: Default to 8bpp on big endian
ozbenh Oct 31, 2014
2d2ab23
powerpc/kexec: Reset secondary cpu endianess before kexec
sammj Jun 29, 2015
b7d553c
powerpc/kexec: Reset HILE before kexec_sequence
sammj Jul 22, 2015
6e42392
Revert "powerpc: Reject binutils 2.24 when building little endian"
shenki Sep 11, 2015
317f2be
aacraid: Fix for LD name and UID not exposed to OS
Aug 28, 2015
b39c80f
aacraid: Add Power Management support
Aug 28, 2015
d9ba7aa
aacraid: Change interrupt mode to MSI for Series 6
Aug 28, 2015
3347b9a
aacraid: Tune response path if IsFastPath bit set
Aug 28, 2015
e778c7f
aacraid: Enable 64bit write to controller register
Aug 28, 2015
892fada
aacraid: IOCTL fix
Aug 28, 2015
81d42e7
aacraid: Reset irq affinity hints
Aug 28, 2015
e27d0ec
aacraid: Use pci_enable_msix_range()
Aug 28, 2015
f11a934
aacraid: Update driver version
Aug 28, 2015
d56cf12
Fix crash in ast fbcon on boot
stewartsmith Oct 3, 2015
185b564
Release 4.2.1-openpower2
stewartsmith Oct 3, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
drm/qxl: validate monitors config modes
commit bd3e1c7 upstream.

Due to some recent changes in
drm_helper_probe_single_connector_modes_merge_bits(), old custom modes
were not being pruned properly. In current kernels,
drm_mode_validate_basic() is called to sanity-check each mode in the
list. If the sanity-check passes, the mode's status gets set to to
MODE_OK. In older kernels this check was not done, so old custom modes
would still have a status of MODE_UNVERIFIED at this point, and would
therefore be pruned later in the function.

As a result of this new behavior, the list of modes for a device always
includes every custom mode ever configured for the device, with the
largest one listed first. Since desktop environments usually choose the
first preferred mode when a hotplug event is emitted, this had the
result of making it very difficult for the user to reduce the size of
the display.

The qxl driver did implement the mode_valid connector function, but it
was empty. In order to restore the old behavior where old custom modes
are pruned, we implement a proper mode_valid function for the qxl
driver. This function now checks each mode against the last configured
custom mode and the list of standard modes. If the mode doesn't match
any of these, its status is set to MODE_BAD so that it will be pruned as
expected.

Signed-off-by: Jonathon Jongsma <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
jonner authored and gregkh committed Sep 21, 2015
commit 9648e7a7c73ecf873afbf2e566258115140740ae
66 changes: 40 additions & 26 deletions drivers/gpu/drm/qxl/qxl_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,39 +160,42 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector,
*pwidth = head->width;
*pheight = head->height;
drm_mode_probed_add(connector, mode);
/* remember the last custom size for mode validation */
qdev->monitors_config_width = mode->hdisplay;
qdev->monitors_config_height = mode->vdisplay;
return 1;
}

static struct mode_size {
int w;
int h;
} common_modes[] = {
{ 640, 480},
{ 720, 480},
{ 800, 600},
{ 848, 480},
{1024, 768},
{1152, 768},
{1280, 720},
{1280, 800},
{1280, 854},
{1280, 960},
{1280, 1024},
{1440, 900},
{1400, 1050},
{1680, 1050},
{1600, 1200},
{1920, 1080},
{1920, 1200}
};

static int qxl_add_common_modes(struct drm_connector *connector,
unsigned pwidth,
unsigned pheight)
{
struct drm_device *dev = connector->dev;
struct drm_display_mode *mode = NULL;
int i;
struct mode_size {
int w;
int h;
} common_modes[] = {
{ 640, 480},
{ 720, 480},
{ 800, 600},
{ 848, 480},
{1024, 768},
{1152, 768},
{1280, 720},
{1280, 800},
{1280, 854},
{1280, 960},
{1280, 1024},
{1440, 900},
{1400, 1050},
{1680, 1050},
{1600, 1200},
{1920, 1080},
{1920, 1200}
};

for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h,
60, false, false, false);
Expand Down Expand Up @@ -823,11 +826,22 @@ static int qxl_conn_get_modes(struct drm_connector *connector)
static int qxl_conn_mode_valid(struct drm_connector *connector,
struct drm_display_mode *mode)
{
struct drm_device *ddev = connector->dev;
struct qxl_device *qdev = ddev->dev_private;
int i;

/* TODO: is this called for user defined modes? (xrandr --add-mode)
* TODO: check that the mode fits in the framebuffer */
DRM_DEBUG("%s: %dx%d status=%d\n", mode->name, mode->hdisplay,
mode->vdisplay, mode->status);
return MODE_OK;

if(qdev->monitors_config_width == mode->hdisplay &&
qdev->monitors_config_height == mode->vdisplay)
return MODE_OK;

for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
if (common_modes[i].w == mode->hdisplay && common_modes[i].h == mode->vdisplay)
return MODE_OK;
}
return MODE_BAD;
}

static struct drm_encoder *qxl_best_encoder(struct drm_connector *connector)
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/qxl/qxl_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,8 @@ struct qxl_device {
struct work_struct fb_work;

struct drm_property *hotplug_mode_update_property;
int monitors_config_width;
int monitors_config_height;
};

/* forward declaration for QXL_INFO_IO */
Expand Down