From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753944AbbL2T1n (ORCPT ); Tue, 29 Dec 2015 14:27:43 -0500 Received: from mga04.intel.com ([192.55.52.120]:43864 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753775AbbL2T1h (ORCPT ); Tue, 29 Dec 2015 14:27:37 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,496,1444719600"; d="gz'50?scan'50,208,50";a="20848770" Date: Wed, 30 Dec 2015 03:26:57 +0800 From: kbuild test robot To: Insu Yun Cc: kbuild-all@01.org, airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, taesoo@gatech.edu, yeongjin.jang@gatech.edu, insu@gatech.edu, changwoo@gatech.edu, Insu Yun Subject: Re: [PATCH] qxl: correctly handling failed allocation Message-ID: <201512300351.8a7iQeVF%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="k1lZvvs/B4yU6o8G" Content-Disposition: inline In-Reply-To: <1451416674-10618-1-git-send-email-wuninsu@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --k1lZvvs/B4yU6o8G Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Insu, [auto build test WARNING on drm/drm-next] [also build test WARNING on v4.4-rc7 next-20151223] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Insu-Yun/qxl-correctly-handling-failed-allocation/20151230-031647 base: git://people.freedesktop.org/~airlied/linux.git drm-next config: x86_64-randconfig-x017-12300038 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/linux/err.h:4:0, from include/linux/fence.h:24, from drivers/gpu/drm/qxl/qxl_drv.h:34, from drivers/gpu/drm/qxl/qxl_kms.c:26: drivers/gpu/drm/qxl/qxl_kms.c: In function 'qxl_device_init': drivers/gpu/drm/qxl/qxl_kms.c:224:11: error: 'struct qxl_device' has no member named 'memslots' if (!qdev->memslots) ^ include/linux/compiler.h:147:28: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> drivers/gpu/drm/qxl/qxl_kms.c:224:2: note: in expansion of macro 'if' if (!qdev->memslots) ^ drivers/gpu/drm/qxl/qxl_kms.c:224:11: error: 'struct qxl_device' has no member named 'memslots' if (!qdev->memslots) ^ include/linux/compiler.h:147:40: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> drivers/gpu/drm/qxl/qxl_kms.c:224:2: note: in expansion of macro 'if' if (!qdev->memslots) ^ drivers/gpu/drm/qxl/qxl_kms.c:224:11: error: 'struct qxl_device' has no member named 'memslots' if (!qdev->memslots) ^ include/linux/compiler.h:158:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^ >> drivers/gpu/drm/qxl/qxl_kms.c:224:2: note: in expansion of macro 'if' if (!qdev->memslots) ^ vim +/if +224 drivers/gpu/drm/qxl/qxl_kms.c 20 * OTHER DEALINGS IN THE SOFTWARE. 21 * 22 * Authors: Dave Airlie 23 * Alon Levy 24 */ 25 > 26 #include "qxl_drv.h" 27 #include "qxl_object.h" 28 29 #include 30 #include 31 32 int qxl_log_level; 33 34 static void qxl_dump_mode(struct qxl_device *qdev, void *p) 35 { 36 struct qxl_mode *m = p; 37 DRM_DEBUG_KMS("%d: %dx%d %d bits, stride %d, %dmm x %dmm, orientation %d\n", 38 m->id, m->x_res, m->y_res, m->bits, m->stride, m->x_mili, 39 m->y_mili, m->orientation); 40 } 41 42 static bool qxl_check_device(struct qxl_device *qdev) 43 { 44 struct qxl_rom *rom = qdev->rom; 45 int mode_offset; 46 int i; 47 48 if (rom->magic != 0x4f525851) { 49 DRM_ERROR("bad rom signature %x\n", rom->magic); 50 return false; 51 } 52 53 DRM_INFO("Device Version %d.%d\n", rom->id, rom->update_id); 54 DRM_INFO("Compression level %d log level %d\n", rom->compression_level, 55 rom->log_level); 56 DRM_INFO("Currently using mode #%d, list at 0x%x\n", 57 rom->mode, rom->modes_offset); 58 DRM_INFO("%d io pages at offset 0x%x\n", 59 rom->num_io_pages, rom->pages_offset); 60 DRM_INFO("%d byte draw area at offset 0x%x\n", 61 rom->surface0_area_size, rom->draw_area_offset); 62 63 qdev->vram_size = rom->surface0_area_size; 64 DRM_INFO("RAM header offset: 0x%x\n", rom->ram_header_offset); 65 66 mode_offset = rom->modes_offset / 4; 67 qdev->mode_info.num_modes = ((u32 *)rom)[mode_offset]; 68 DRM_INFO("rom modes offset 0x%x for %d modes\n", rom->modes_offset, 69 qdev->mode_info.num_modes); 70 qdev->mode_info.modes = (void *)((uint32_t *)rom + mode_offset + 1); 71 for (i = 0; i < qdev->mode_info.num_modes; i++) 72 qxl_dump_mode(qdev, qdev->mode_info.modes + i); 73 return true; 74 } 75 76 static void setup_hw_slot(struct qxl_device *qdev, int slot_index, 77 struct qxl_memslot *slot) 78 { 79 qdev->ram_header->mem_slot.mem_start = slot->start_phys_addr; 80 qdev->ram_header->mem_slot.mem_end = slot->end_phys_addr; 81 qxl_io_memslot_add(qdev, slot_index); 82 } 83 84 static uint8_t setup_slot(struct qxl_device *qdev, uint8_t slot_index_offset, 85 unsigned long start_phys_addr, unsigned long end_phys_addr) 86 { 87 uint64_t high_bits; 88 struct qxl_memslot *slot; 89 uint8_t slot_index; 90 91 slot_index = qdev->rom->slots_start + slot_index_offset; 92 slot = &qdev->mem_slots[slot_index]; 93 slot->start_phys_addr = start_phys_addr; 94 slot->end_phys_addr = end_phys_addr; 95 96 setup_hw_slot(qdev, slot_index, slot); 97 98 slot->generation = qdev->rom->slot_generation; 99 high_bits = slot_index << qdev->slot_gen_bits; 100 high_bits |= slot->generation; 101 high_bits <<= (64 - (qdev->slot_gen_bits + qdev->slot_id_bits)); 102 slot->high_bits = high_bits; 103 return slot_index; 104 } 105 106 void qxl_reinit_memslots(struct qxl_device *qdev) 107 { 108 setup_hw_slot(qdev, qdev->main_mem_slot, &qdev->mem_slots[qdev->main_mem_slot]); 109 setup_hw_slot(qdev, qdev->surfaces_mem_slot, &qdev->mem_slots[qdev->surfaces_mem_slot]); 110 } 111 112 static void qxl_gc_work(struct work_struct *work) 113 { 114 struct qxl_device *qdev = container_of(work, struct qxl_device, gc_work); 115 qxl_garbage_collect(qdev); 116 } 117 118 static int qxl_device_init(struct qxl_device *qdev, 119 struct drm_device *ddev, 120 struct pci_dev *pdev, 121 unsigned long flags) 122 { 123 int r, sb; 124 125 qdev->dev = &pdev->dev; 126 qdev->ddev = ddev; 127 qdev->pdev = pdev; 128 qdev->flags = flags; 129 130 mutex_init(&qdev->gem.mutex); 131 mutex_init(&qdev->update_area_mutex); 132 mutex_init(&qdev->release_mutex); 133 mutex_init(&qdev->surf_evict_mutex); 134 INIT_LIST_HEAD(&qdev->gem.objects); 135 136 qdev->rom_base = pci_resource_start(pdev, 2); 137 qdev->rom_size = pci_resource_len(pdev, 2); 138 qdev->vram_base = pci_resource_start(pdev, 0); 139 qdev->io_base = pci_resource_start(pdev, 3); 140 141 qdev->vram_mapping = io_mapping_create_wc(qdev->vram_base, pci_resource_len(pdev, 0)); 142 143 if (pci_resource_len(pdev, 4) > 0) { 144 /* 64bit surface bar present */ 145 sb = 4; 146 qdev->surfaceram_base = pci_resource_start(pdev, sb); 147 qdev->surfaceram_size = pci_resource_len(pdev, sb); 148 qdev->surface_mapping = 149 io_mapping_create_wc(qdev->surfaceram_base, 150 qdev->surfaceram_size); 151 } 152 if (qdev->surface_mapping == NULL) { 153 /* 64bit surface bar not present (or mapping failed) */ 154 sb = 1; 155 qdev->surfaceram_base = pci_resource_start(pdev, sb); 156 qdev->surfaceram_size = pci_resource_len(pdev, sb); 157 qdev->surface_mapping = 158 io_mapping_create_wc(qdev->surfaceram_base, 159 qdev->surfaceram_size); 160 } 161 162 DRM_DEBUG_KMS("qxl: vram %llx-%llx(%dM %dk), surface %llx-%llx(%dM %dk, %s)\n", 163 (unsigned long long)qdev->vram_base, 164 (unsigned long long)pci_resource_end(pdev, 0), 165 (int)pci_resource_len(pdev, 0) / 1024 / 1024, 166 (int)pci_resource_len(pdev, 0) / 1024, 167 (unsigned long long)qdev->surfaceram_base, 168 (unsigned long long)pci_resource_end(pdev, sb), 169 (int)qdev->surfaceram_size / 1024 / 1024, 170 (int)qdev->surfaceram_size / 1024, 171 (sb == 4) ? "64bit" : "32bit"); 172 173 qdev->rom = ioremap(qdev->rom_base, qdev->rom_size); 174 if (!qdev->rom) { 175 pr_err("Unable to ioremap ROM\n"); 176 return -ENOMEM; 177 } 178 179 qxl_check_device(qdev); 180 181 r = qxl_bo_init(qdev); 182 if (r) { 183 DRM_ERROR("bo init failed %d\n", r); 184 return r; 185 } 186 187 qdev->ram_header = ioremap(qdev->vram_base + 188 qdev->rom->ram_header_offset, 189 sizeof(*qdev->ram_header)); 190 191 qdev->command_ring = qxl_ring_create(&(qdev->ram_header->cmd_ring_hdr), 192 sizeof(struct qxl_command), 193 QXL_COMMAND_RING_SIZE, 194 qdev->io_base + QXL_IO_NOTIFY_CMD, 195 false, 196 &qdev->display_event); 197 198 qdev->cursor_ring = qxl_ring_create( 199 &(qdev->ram_header->cursor_ring_hdr), 200 sizeof(struct qxl_command), 201 QXL_CURSOR_RING_SIZE, 202 qdev->io_base + QXL_IO_NOTIFY_CMD, 203 false, 204 &qdev->cursor_event); 205 206 qdev->release_ring = qxl_ring_create( 207 &(qdev->ram_header->release_ring_hdr), 208 sizeof(uint64_t), 209 QXL_RELEASE_RING_SIZE, 0, true, 210 NULL); 211 212 /* TODO - slot initialization should happen on reset. where is our 213 * reset handler? */ 214 qdev->n_mem_slots = qdev->rom->slots_end; 215 qdev->slot_gen_bits = qdev->rom->slot_gen_bits; 216 qdev->slot_id_bits = qdev->rom->slot_id_bits; 217 qdev->va_slot_mask = 218 (~(uint64_t)0) >> (qdev->slot_id_bits + qdev->slot_gen_bits); 219 220 qdev->mem_slots = 221 kmalloc(qdev->n_mem_slots * sizeof(struct qxl_memslot), 222 GFP_KERNEL); 223 > 224 if (!qdev->memslots) 225 return -ENOMEM; 226 227 idr_init(&qdev->release_idr); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --k1lZvvs/B4yU6o8G Content-Type: application/octet-stream Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 jBM5oDC8iB2DaUDJ8Kf9o9P/A1UAQ+KaIAEA --k1lZvvs/B4yU6o8G--